从线性回归中提取P值和R平方。

232

如何从简单线性回归模型中获取 p 值(用于衡量单个自变量系数是否显著)和 R-squared 值?例如...

x = cumsum(c(0, runif(100, -1, +1)))
y = cumsum(c(0, runif(100, -1, +1)))
fit = lm(y ~ x)
summary(fit)
我知道summary(fit)显示出p值和R-squared值,但我希望能够把这些信息放到其他变量中。

只有当你不将输出分配给一个对象时才会显示值(例如, r <- summary(lm(rnorm(10)~runif(10))) 不会显示任何内容)。 - Joshua Ulrich
12个回答

2
使用:

(summary(fit))$coefficients[***num***,4]

其中num是一个数字,表示系数矩阵的行号。它取决于你的模型中有多少个特征以及你想要提取哪个特征的p值。例如,如果你只有一个变量,那么截距项将有一个p值[1,4],而下一个实际变量将有一个p值[2,4]。因此,你的num将为2。


1
x = cumsum(c(0, runif(100, -1, +1)))
y = cumsum(c(0, runif(100, -1, +1)))
fit = lm(y ~ x)
> names(summary(fit))
[1] "call"          "terms"        
 [3] "residuals"     "coefficients" 
 [5] "aliased"       "sigma"        
 [7] "df"            "r.squared"    
 [9] "adj.r.squared" "fstatistic"   
[11] "cov.unscaled" 
    summary(fit)$r.squared

1
能否简要地解释一下为什么这段代码有效? - António Ribeiro
这个如何改进现有的答案(特别是被接受的答案)? - Ben Bolker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接