R中线性回归模型的拟合

R中线性回归模型的拟合,r,regression,linear-regression,lm,R,Regression,Linear Regression,Lm,我对R中的线性回归分析有一个问题: 我有几个自变量(大约20-30个)和一个因变量。为了达到最佳模型,我尝试“所有”自变量的相关组合,以最大化我的调整后的R^2。然而,这是一个很大的工作。所以我的问题是:是否有一种方法可以自动拟合R中的回归模型,即自动选择存储在数据框中的这些自变量,从而产生对因变量变化的最佳描述 谢谢你的帮助 您可以使用步骤功能,但是如果检查您的工作的人反对数据挖掘,那么使用这种方法进行的分析可能会遇到一些困难。下面是步骤中的一个示例 > summary(lm1 <

我对R中的线性回归分析有一个问题:

我有几个自变量(大约20-30个)和一个因变量。为了达到最佳模型,我尝试“所有”自变量的相关组合,以最大化我的调整后的R^2。然而,这是一个很大的工作。所以我的问题是:是否有一种方法可以自动拟合R中的回归模型,即自动选择存储在数据框中的这些自变量,从而产生对因变量变化的最佳描述


谢谢你的帮助

您可以使用
步骤
功能,但是如果检查您的工作的人反对数据挖掘,那么使用这种方法进行的分析可能会遇到一些困难。下面是
步骤
中的一个示例

> summary(lm1 <- lm(Fertility ~ ., data = swiss))

Call:
lm(formula = Fertility ~ ., data = swiss)

Residuals:
     Min       1Q   Median       3Q      Max 
-15.2743  -5.2617   0.5032   4.1198  15.3213 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)      66.91518   10.70604   6.250 1.91e-07 ***
Agriculture      -0.17211    0.07030  -2.448  0.01873 *  
Examination      -0.25801    0.25388  -1.016  0.31546    
Education        -0.87094    0.18303  -4.758 2.43e-05 ***
Catholic          0.10412    0.03526   2.953  0.00519 ** 
Infant.Mortality  1.07705    0.38172   2.822  0.00734 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 7.165 on 41 degrees of freedom
Multiple R-squared:  0.7067,    Adjusted R-squared:  0.671 
F-statistic: 19.76 on 5 and 41 DF,  p-value: 5.594e-10

> slm1 <- step(lm1)
Start:  AIC=190.69
Fertility ~ Agriculture + Examination + Education + Catholic + 
    Infant.Mortality

                   Df Sum of Sq    RSS    AIC
- Examination       1     53.03 2158.1 189.86
<none>                          2105.0 190.69
- Agriculture       1    307.72 2412.8 195.10
- Infant.Mortality  1    408.75 2513.8 197.03
- Catholic          1    447.71 2552.8 197.75
- Education         1   1162.56 3267.6 209.36

Step:  AIC=189.86
Fertility ~ Agriculture + Education + Catholic + Infant.Mortality

                   Df Sum of Sq    RSS    AIC
<none>                          2158.1 189.86
- Agriculture       1    264.18 2422.2 193.29
- Infant.Mortality  1    409.81 2567.9 196.03
- Catholic          1    956.57 3114.6 205.10
- Education         1   2249.97 4408.0 221.43
> summary(slm1)

Call:
lm(formula = Fertility ~ Agriculture + Education + Catholic + 
    Infant.Mortality, data = swiss)

Residuals:
     Min       1Q   Median       3Q      Max 
-14.6765  -6.0522   0.7514   3.1664  16.1422 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)      62.10131    9.60489   6.466 8.49e-08 ***
Agriculture      -0.15462    0.06819  -2.267  0.02857 *  
Education        -0.98026    0.14814  -6.617 5.14e-08 ***
Catholic          0.12467    0.02889   4.315 9.50e-05 ***
Infant.Mortality  1.07844    0.38187   2.824  0.00722 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 7.168 on 42 degrees of freedom
Multiple R-squared:  0.6993,    Adjusted R-squared:  0.6707 
F-statistic: 24.42 on 4 and 42 DF,  p-value: 1.717e-10
>摘要(lm1 | t |)
(截距)66.91518 10.70604 6.250 1.91e-07***
农业-0.17211 0.07030-2.448 0.01873*
检查-0.25801 0.25388-1.016 0.31546
教育-0.870940.18303-4.7582.43e-05***
天主教0.10412 0.03526 2.953 0.00519**
婴儿死亡率1.07705 0.38172 2.822 0.00734**
---
签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
剩余标准误差:41个自由度上的7.165
倍数R平方:0.7067,调整后的R平方:0.671
F-统计量:5和41 DF的19.76,p-值:5.594e-10
>slm1汇总表(slm1)
电话:
lm(公式=生育率~农业+教育+天主教+
婴儿死亡率,数据=瑞士)
残差:
最小1季度中值3季度最大值
-14.6765  -6.0522   0.7514   3.1664  16.1422 
系数:
估计标准误差t值Pr(>t)
(截距)62.101319.60489 6.466 8.49e-08***
农业-0.15462 0.06819-2.267 0.02857*
教育-0.98026 0.14814-6.617 5.14e-08***
天主教0.12467 0.02889 4.315 9.50e-05***
婴儿死亡率1.07844 0.38187 2.824 0.00722**
---
签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
剩余标准误差:42个自由度上的7.168
倍数R平方:0.6993,调整后的R平方:0.6707
F-统计量:4和42 DF上的24.42,p-值:1.717e-10

您应该尝试逐步回归,通过不同的方法选择最佳组合-正向选择或反向选择。此外,您可以尝试使用正则化。这个问题值得对进行模型选择的优点和最佳方法进行长期、详细的讨论。要获得简短的答案,请查看
step()
的帮助,包
跳跃
,更好的是,使用名为lasso回归的方法(包
glmnet