我有一些棒球统计数据,按季节打点,让我们说:
player s1 s2 s3
Brian_Giles 66 68 70
Joe_Thomas 71 72 71
Robin_Yount 71 69 68
Jim_Jones 66 66 65
我想对这些数据使用lm()进行简单的线性回归,以预测第四季的RBI#。我需要另一个变量来创建我的公式吗?我怎样才能最简单地完成这种线性回归?
我正在尝试使用本教程(http://www.r-bloggers.com/wp-content/uploads/2009/11/simpleLinRegExample1.txt),这似乎我可能需要第二个变量,(我很明显是线性回归),但我无法弄清楚是什么它应该是。这三个季节数据的最佳拟合线斜率?
答案 0 :(得分:0)
以下是如何在R中执行此操作:
DF <- read.table(text = "player s1 s2 s3
Brian_Giles 66 68 70
Joe_Thomas 71 72 71
Robin_Yount 71 69 68
Jim_Jones 66 66 65", header = TRUE)
library(reshape2)
DF <- melt(DF, id = "player", variable.name = "season")
DF$season <- as.integer(DF$season)
fit <- lm(value ~ season * player, data = DF)
summary(fit)
setNames(predict(fit, newdata = data.frame(player = unique(DF$player),
season = 4)),
unique(DF$player))
#Brian_Giles Joe_Thomas Robin_Yount Jim_Jones
# 72.00000 71.33333 66.33333 64.66667
通过提供答案,我不赞同您选择的方法。