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

24 浏览
0 Comments

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

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

admin 更改状态以发布 2023年5月23日
0
0 Comments

请注意,summary(fit)生成了一个包含所有所需信息的对象。其中beta、se、t和p向量都存储在其中。通过选择系数矩阵的第4列(存储在summary对象中),可以获得p值:

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

尝试str(summary(fit))来查看此对象包含的所有信息。

编辑:我误读了Chase的答案,基本上告诉你如何到达我在此处给出的地方。

0
0 Comments

r-squared: 您可以直接从摘要对象summary(fit)$r.squared中返回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值。

0