Команда Abline не показывает линию регрессии?

#r #linear-regression #abline

Вопрос:

Я новичок в программировании на R и пытаюсь построить линию регрессии для этого набора данных, но, похоже, это не работает.
Я точно следил за тем, что использовал мой профессор, однако, похоже, это не работает. Я также поменял местами команду abline(lm(batters$EMH~batters$TB)) abline с аналогичными результатами.

Вот мой код для этого:

 batters<-read.table(header=TRUE, text="
X   AVG EBH  TB   OPS K.to.BB.Ratio
1     LeMahieu 0.327  61 312 0.893          1.95
2      Urshela 0.314  55 236 0.889          3.48
3       Torres 0.278  64 292 0.871          2.64
4        Judge 0.272  46 204 0.921          2.21
5      Sanchez 0.232  47 208 0.841          3.13
6         Wong 0.285  40 202 0.784          1.76
7       Molina 0.270  34 167 0.711          2.52
8  Goldschmidt 0.260  60 284 0.821          2.13
9        Ozuna 0.243  53 230 0.804          1.84
10      DeJong 0.233  62 259 0.762          2.39
11      Altuve 0.298  61 275 0.903          1.98
12     Bregman 0.296  80 328 1.015          0.69
13    Springer 0.292  62 283 0.974          1.69
14     Reddick 0.275  36 205 0.728          1.83
15    Chirinos 0.238  40 162 0.791          2.45
16   Bellinger 0.305  84 351 1.035          1.14
17      Turner 0.290  51 244 0.881          1.72
18      Seager 0.272  64 236 0.817          2.23
19      Taylor 0.262  45 169 0.794          3.11
20       Muncy 0.251  58 251 0.889          1.65
21     Meadows 0.291  69 296 0.922          2.43
22      Garcia 0.282  47 227 0.796          4.03
23        Pham 0.273  56 255 0.818          1.52
24        Choi 0.261  41 188 0.822          1.69
25      Adames 0.254  46 222 0.735          3.32
26      Yelich 0.329  76 328 1.101          1.48
27       Braun 0.285  55 232 0.849          3.09
28   Moustakas 0.254  66 270 0.845          1.85
29     Grandal 0.246  56 240 0.848          1.28
30       Arcia 0.223  32 173 0.633          2.53")

plot(batters$EBH,batters$TB,main="Attribute Pairing 5",xlab="EBH",ylab="TB")
lm(formula = batters$EBH~batters$TB)
#Call:
#lm(formula = batters$EBH ~ batters$TB)

#Coefficients:
#(Intercept)   batters$TB  
#    -4.1275       0.2416  

lin_model_1<-lm(formula = batters$EBH~batters$TB)
summary(lin_model_1)

abline(-4.12752, 0.24162)
 

Я приношу извинения за беспорядочное кодирование, это для класса.

Комментарии:

1. Вы изобразили EBH как x, а TB как y, но затем поменяли их роли в регрессии. Так и должно было быть lm(formula = TB ~ EBH, data=batters) . Если бы вы использовали аргумент формулы как в сюжете, так и в фильме, было бы легче сохранить их роли прямыми.

Ответ №1:

Ваша формула в обратном порядке в lm() вызове функции. Зависимая переменная находится слева от «~».
На вашем графике ось y (зависимая переменная) равна TB, но в модели линейной регрессии она определена как независимая переменная. Поэтому, чтобы модель линейной регрессии работала, нужно поменять местами EBH и TB.

 plot(batters$EBH,batters$TB,main="Attribute Pairing 5",xlab="EBH",ylab="TB")
model <-lm(formula = batters$TB ~batters$EBH)

model
 

Вызов: lm(формула = отбивающие$TB ~ отбивающие$EBH)

Коэффициенты: (Перехват) отбивающих$EBH
46,510 3,603

  abline(model)
 #or
 abline (46.51, 3.60)
 

Также, если вы передадите «модель» abline , вы сможете избежать необходимости указывать наклон и перехват с abline