如何从简单的线性回归模型中提取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平方值,但我希望能够将它们放入其他变量中。
发布于 2011-04-07 23:03:15
请注意,summary(fit)
会生成一个包含所需所有信息的对象。其中存储了beta、se、t和p向量。通过选择系数矩阵的第4列(存储在摘要对象中)获得p值:
summary(fit)$coefficients[,4]
summary(fit)$r.squared
尝试使用str(summary(fit))
查看此对象包含的所有信息。
编辑:我误读了Chase的答案,它基本上告诉你如何获得我在这里给出的内容。
发布于 2011-04-07 21:13:51
您可以通过调用str(summary(fit))
查看summary()
返回的对象的结构。每一块都可以使用$
进行访问。F统计量的p值更容易从anova
返回的对象中获得。
简而言之,您可以这样做:
rSquared <- summary(fit)$r.squared
pVal <- anova(fit)$'Pr(>F)'[1]
发布于 2011-04-07 21:30:54
虽然上面的两个答案都很好,但提取对象部分的过程更一般。
在许多情况下,函数返回列表,可以使用str()
访问各个组件,该命令将打印组件及其名称。然后,您可以使用$运算符访问它们,即myobject$componentname
。
对于lm对象,有许多预定义的方法可以使用,比如coef()
、resid()
、summary()
等,但你并不总是那么幸运。
https://stackoverflow.com/questions/5587676
复制