如何从R中的回归模型中提取回归系数,系数的标准误差,t分数和p值?

R中的回归分析输出为我们提供了很多值,但是如果我们认为我们的模型足够好,我们可能只希望提取系数,标准误以及t分数或p值,因为这些是最终重要的值,特别是系数,因为它们有助于我们解释模型。我们可以使用delta $运算符从回归模型摘要中提取这些值。

示例

请看以下数据-

> set.seed(99)
> x1<-rpois(50,2)
> x2<-rpois(50,10)
> x3<-rpois(50,25)
> x4<-rnorm(50,1)
> x5<-rnorm(50,2.5)
> x6<-rnorm(50,1.5)
> x7<-runif(50,2,20)
> y<-sample(1:1000,50,replace=TRUE)

创建回归模型-

> Regression_Model<-lm(y~x1+x2+x3+x4+x5+x6+x7)

获取模型的输出和减号

> summary(Regression_Model)
Call:
lm(formula = y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7)
Residuals:
Min 1Q Median 3Q Max
-580.06 -268.03 71.54 248.45 450.20
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 885.966696 336.412681 2.634 0.0118 *
x1 -33.463082 34.748162 -0.963 0.3411
x2  -8.056429 13.866217 -0.581 0.5643
x3  -0.003585  9.641347  0.000 0.9997
x4 -62.751405 47.195104 -1.330 0.1908
x5 -53.421667 40.706602 -1.312 0.1965
x6 -46.645285 41.017385 -1.137 0.2619
x7   7.705532  8.543121  0.902 0.3722
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 309.4 on 42 degrees of freedom
Multiple R-squared: 0.1242, Adjusted R-squared: -0.02181
F-statistic: 0.8506 on 7 and 42 DF, p-value: 0.5526

从模型中提取所有回归系数,系数的标准误差,t分数和p值-

> summary(Regression_Model)$coefficients
Estimate Std. Error t value Pr(>|t|)
(Intercept) 885.966696369 336.412681 2.6335710454 0.01177664
x1 -33.463081817 34.748162 -0.9630173179 0.34105093
x2  -8.056428960 13.866217 -0.5810113022 0.56433788
x3  -0.003584907  9.641347 -0.0003718264 0.99970509
x4 -62.751404764 47.195104 -1.3296168453 0.19082124
x5 -53.421667389 40.706602 -1.3123588063 0.19652614
x6 -46.645285482 41.017385 -1.1372076842 0.26189795
x7   7.705532157  8.543121  0.9019575482 0.37222303

从模型中提取单个回归系数,系数的标准误差,t分数和p值-

> summary(Regression_Model)$coefficients[1,2]
[1] 336.4127
> summary(Regression_Model)$coefficients[1,1]
[1] 885.9667
> summary(Regression_Model)$coefficients[1,4]
[1] 0.01177664
> summary(Regression_Model)$coefficients[3,1]
[1] -8.056429
> summary(Regression_Model)$coefficients[7,1]
[1] -46.64529
> summary(Regression_Model)$coefficients[7,4]
[1] 0.261898
> summary(Regression_Model)$coefficients[8,4]
[1] 0.372223
> summary(Regression_Model)$coefficients[1,3]
[1] 2.633571
> summary(Regression_Model)$coefficients[2,1]
[1] -33.46308
> summary(Regression_Model)$coefficients[2,2]
[1] 34.74816
> summary(Regression_Model)$coefficients[2,4]
[1] 0.3410509
> summary(Regression_Model)$coefficients[4,4]
[1] 0.9997051
> summary(Regression_Model)$coefficients[4,3]
[1] -0.0003718264
> summary(Regression_Model)$coefficients[5,4]
[1] 0.1908212
> summary(Regression_Model)$coefficients[5,1]
[1] -62.7514
> summary(Regression_Model)$coefficients[5,2]
[1] 47.1951
> summary(Regression_Model)$coefficients[6,1]
[1] -53.42167
> summary(Regression_Model)$coefficients[6,4]
[1] 0.1965261