需要帮助将回归模型应用于 R 中的数据集(体育数据)
Need help applying regression model to dataset in R (sports data)
更新:已解决!
我目前正在尝试创建一个足球回归模型,根据球队的传球码数和冲球码数预测球队的总得分。我能够一路找出回归方程,但从这里我不知道如何 "plug in" 公式。
数据 table 基本上是行中列出的所有 32 支 NFL 球队和列中列出的进攻统计数据
代码:
# 1. Import
Offense <- read.csv(file.choose(), header=TRUE)
#2 View
show (Offense)
#3 Attach so headers can be referenced
attach (Offense)
#4 Create Regression Model
mod1 <-lm(Total.Points ~ Pass.Yds + Rush.Yds)
summary(mod1)
#Formula obtained from summary: -255.60178 + .10565(Pass) + .12154(Rush)
#Plug in the Regression Equation
predict(mod1)
我看到它最后将回归方程应用于所有 32 行,但我如何
- 让它显示在运行链接列表中
- 让它显示团队名称和预计得分(这样我就不用想知道团队“1”或“2”指的是什么
既然我有方程式,我是否也可以只写一个循环函数,运行 我拥有的每一行数据的方程式并打印结果?
我是初学者,非常感谢!
更新:想出了这个
####Part 2. Interpretation
#1. Examining quality of model
summary(mod1)
cor(Pass.Yds, Rush.Yds)
#2. Formula obtained from summary: -255.60178 + .10565(Pass) + .12154(Rush)
#3. Predicted Points (Descending Order)
proj <- sort(predict(mod1), decreasing = TRUE)
proj
#4. Corresponding Name (Descending)
name <- Team[order(predict(mod1), decreasing = TRUE)]
name
#Data Frame
Projections <- data.frame(name, proj)
Projections
虽然 bbrot 提供了一个更简单的版本
假设 Teams
是团队名称的向量,像 cbind(Teams[order(predict(mod1), decreasing = TRUE)], sort(predict(mod1), decreasing = TRUE))
这样的东西应该做...
编辑: 您的 Teams
向量似乎是一个因素。在这种情况下,以下命令将起作用:
# returns a character matrix
cbind(as.character(Teams)[order(predict(mod1), decreasing = TRUE)],
sort(predict(mod1), decreasing = TRUE))
# returns a data frame
data.frame(Teams = Teams[order(predict(mod1), decreasing = TRUE)],
Points = sort(predict(mod1), decreasing = TRUE))
更新:已解决!
我目前正在尝试创建一个足球回归模型,根据球队的传球码数和冲球码数预测球队的总得分。我能够一路找出回归方程,但从这里我不知道如何 "plug in" 公式。
数据 table 基本上是行中列出的所有 32 支 NFL 球队和列中列出的进攻统计数据
代码:
# 1. Import
Offense <- read.csv(file.choose(), header=TRUE)
#2 View
show (Offense)
#3 Attach so headers can be referenced
attach (Offense)
#4 Create Regression Model
mod1 <-lm(Total.Points ~ Pass.Yds + Rush.Yds)
summary(mod1)
#Formula obtained from summary: -255.60178 + .10565(Pass) + .12154(Rush)
#Plug in the Regression Equation
predict(mod1)
我看到它最后将回归方程应用于所有 32 行,但我如何
- 让它显示在运行链接列表中
- 让它显示团队名称和预计得分(这样我就不用想知道团队“1”或“2”指的是什么
既然我有方程式,我是否也可以只写一个循环函数,运行 我拥有的每一行数据的方程式并打印结果?
我是初学者,非常感谢!
更新:想出了这个
####Part 2. Interpretation
#1. Examining quality of model
summary(mod1)
cor(Pass.Yds, Rush.Yds)
#2. Formula obtained from summary: -255.60178 + .10565(Pass) + .12154(Rush)
#3. Predicted Points (Descending Order)
proj <- sort(predict(mod1), decreasing = TRUE)
proj
#4. Corresponding Name (Descending)
name <- Team[order(predict(mod1), decreasing = TRUE)]
name
#Data Frame
Projections <- data.frame(name, proj)
Projections
虽然 bbrot 提供了一个更简单的版本
假设 Teams
是团队名称的向量,像 cbind(Teams[order(predict(mod1), decreasing = TRUE)], sort(predict(mod1), decreasing = TRUE))
这样的东西应该做...
编辑: 您的 Teams
向量似乎是一个因素。在这种情况下,以下命令将起作用:
# returns a character matrix
cbind(as.character(Teams)[order(predict(mod1), decreasing = TRUE)],
sort(predict(mod1), decreasing = TRUE))
# returns a data frame
data.frame(Teams = Teams[order(predict(mod1), decreasing = TRUE)],
Points = sort(predict(mod1), decreasing = TRUE))