在R中使用lm()只有一个变量

时间:2015-07-27 14:23:11

标签: r linear-regression

我有一些棒球统计数据,按季节打点,让我们说:

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),这似乎我可能需要第二个变量,(我很明显是线性回归),但我无法弄清楚是什么它应该是。这三个季节数据的最佳拟合线斜率?

1 个答案:

答案 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

通过提供答案,我不赞同您选择的方法。