在 R 中仅将 lm() 与一个变量一起使用
Using lm() with just one variable in R
我有一些棒球统计数据,每个赛季的打点数,比方说:
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() 进行简单的线性回归,以预测他们在第 4 季的 RBI #s。我在这里需要另一个变量来创建我的公式吗?我将如何最简单地完成此线性回归?
我正在尝试完成本教程 (http://www.r-bloggers.com/wp-content/uploads/2009/11/simpleLinRegExample1.txt),这似乎我可能需要第二个变量,(显然我是线性回归的新手)但我想不通出它应该是什么。这三个季节数据的最佳拟合线的斜率?
以下是在 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
提供答案并不代表我认可您选择的方法。
我有一些棒球统计数据,每个赛季的打点数,比方说:
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() 进行简单的线性回归,以预测他们在第 4 季的 RBI #s。我在这里需要另一个变量来创建我的公式吗?我将如何最简单地完成此线性回归?
我正在尝试完成本教程 (http://www.r-bloggers.com/wp-content/uploads/2009/11/simpleLinRegExample1.txt),这似乎我可能需要第二个变量,(显然我是线性回归的新手)但我想不通出它应该是什么。这三个季节数据的最佳拟合线的斜率?
以下是在 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
提供答案并不代表我认可您选择的方法。