#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