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