如何在 r 中通过 lm() 函数使用数据帧的子集


在使用lm()函数拟合 R 中的回归模型时,可以使用dataset参数仅使用数据框的子集:

 fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 ))

此特定示例对应于使用作为响应变量、人群分钟作为预测变量的回归模型。

子集参数指定在拟合回归模型时仅应使用数据框中分钟变量大于 10 的行。

以下示例展示了如何在实践中使用此语法。

示例:如何在 R 中通过 lm() 使用数据帧子集

假设我们在 R 中有以下数据框,其中包含有关 10 名篮球运动员的上场时间、犯规总数和总得分的信息:

 #create data frame
df <- data. frame (minutes=c(5, 10, 13, 14, 20, 22, 26, 34, 38, 40),
                 fouls=c(5, 5, 3, 4, 2, 1, 3, 2, 1, 1),
                 points=c(6, 8, 8, 7, 14, 10, 22, 24, 28, 30))

#view data frame
df

   minutes fouls points
1 5 5 6
2 10 5 8
3 13 3 8
4 14 4 7
5 20 2 14
6 22 1 10
7 26 3 22
8 34 2 24
9 38 1 28
10 40 1 30

假设我们要拟合以下多元线性回归模型:

积分 = β 0 + β 1 (分钟)+ β 2 (犯规)

但是,假设我们只想使用数据框中分钟变量大于 10 的行。

我们可以使用带有子集参数的lm()函数来拟合此回归模型:

 #fit multiple linear regression model (only for rows where minutes>10)
fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 ))

#view model summary
summary(fit)

Call:
lm(formula = points ~ fouls + minutes, data = df, subset = (minutes > 
    10))

Residuals:
      3 4 5 6 7 8 9 10 
 1.2824 -2.5882 2.2000 -1.9118 2.3588 -1.7176 0.1824 0.1941 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -11.8353 4.9696 -2.382 0.063046 .  
fouls 1.8765 1.0791 1.739 0.142536    
minutes 0.9941 0.1159 8.575 0.000356 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.255 on 5 degrees of freedom
Multiple R-squared: 0.9574, Adjusted R-squared: 0.9404 
F-statistic: 56.19 on 2 and 5 DF, p-value: 0.0003744

我们可以使用nobs()函数来查看数据框中有多少观测值实际用于拟合回归模型:

 #view number of observations used to fit model
nobs(fit)

[1] 8

我们可以看到数据框的8行用于拟合模型。

如果我们查看原始数据框,我们可以看到正好有8行的分钟变量值大于 10,这意味着在拟合回归模型时仅使用了这些行。

我们还可以在子集参数中使用&运算符,根据多个条件对数据框进行子集化。

例如,我们可以使用以下语法仅使用数据框中分钟数大于 10 且故障数小于 4 的行来拟合回归模型:

 #fit multiple linear regression model (only where minutes>10 & fouls<4)
fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 & fouls< 4 ))

#view number of observations used to fit model
nobs(fit)

[1] 7

从结果中我们可以看到数据框的7行被用来拟合这个特定的模型。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在 R 中执行简单线性回归
如何在 R 中执行多元线性回归
如何在 R 中创建残差图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注