从线性回归中提取p-值和r-平方

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (100)

你如何从一个简单的线性回归模型中提取p值(对于单个解释变量系数的显着性为非零)和R-平方值?

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平方值,但是我想把它们加入到其他变量中。

提问于
用户回答回答于

可以直接从摘要对象返回r平方值。summary(fit)$r.squared,见names(summary(fit))有关可以直接提取的所有项的列表。

勾勒出返回p值的函数:

lmp <- function (modelobject) {
    if (class(modelobject) != "lm") stop("Not an object of class 'lm' ")
    f <- summary(modelobject)$fstatistic
    p <- pf(f[1],f[2],f[3],lower.tail=F)
    attributes(p) <- NULL
    return(p)
}

> lmp(fit)
[1] 1.622665e-05

可以从anova(fit)对象的形式与上面的摘要对象类似。

用户回答回答于

注意summary(fit)生成包含所需所有信息的对象。β,Se,t和p向量存储在它中。通过选择系数矩阵的第4列(存储在摘要对象中)获得p值:

summary(fit)$coefficients[,4] 
summary(fit)$r.squared

试一试str(summary(fit))若要查看此对象包含的所有信息,请执行以下操作。

所属标签

扫码关注云+社区