小编典典

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

all

您如何从简单的线性回归模型中提取 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 平方值,但我希望能够将它们粘贴到其他变量中。


阅读 119

收藏
2022-06-09

共1个答案

小编典典

r-squared :您可以直接从 summary object 中返回 r-squared
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 值。

2022-06-09