您如何从简单的线性回归模型中提取 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 平方值,但我希望能够将它们粘贴到其他变量中。
summary(fit)
r-squared :您可以直接从 summary object 中返回 r-squared 值summary(fit)$r.squared。请参阅names(summary(fit))查看您可以直接提取的所有项目的列表。
summary(fit)$r.squared
names(summary(fit))
模型 p 值: 如果您想获得整体回归模型的 p 值, 这篇博文概述了一个返回 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
在具有一个预测变量的简单回归的情况下,模型 p 值和系数的 p 值将相同。
系数 p 值: 如果您有多个预测变量,则以上将返回模型 p 值,并且可以使用以下方法提取系数的 p 值:
summary(fit)$coefficients[,4]
anova(fit)或者,您可以以与上述摘要对象类似的方式从对象中获取系数的 p 值。
anova(fit)