首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从线性回归中提取p值和r平方

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

Stack Overflow用户
提问于 2011-04-08 05:07:25
回答 7查看 308.2K关注 1票数 218

如何从简单的线性回归模型中提取p值(单个解释变量的系数不为零的显着性)和R平方值?例如..。

代码语言:javascript
复制
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平方值,但我希望能够将它们放入其他变量中。

EN

回答 7

Stack Overflow用户

发布于 2011-04-08 07:03:15

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

代码语言:javascript
复制
summary(fit)$coefficients[,4] 
summary(fit)$r.squared

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

编辑:我误读了Chase的答案,它基本上告诉你如何获得我在这里给出的内容。

票数 171
EN

Stack Overflow用户

发布于 2011-04-08 05:13:51

您可以通过调用str(summary(fit))查看summary()返回的对象的结构。每一块都可以使用$进行访问。F统计量的p值更容易从anova返回的对象中获得。

简而言之,您可以这样做:

代码语言:javascript
复制
rSquared <- summary(fit)$r.squared
pVal <- anova(fit)$'Pr(>F)'[1]
票数 48
EN

Stack Overflow用户

发布于 2011-04-08 05:30:54

虽然上面的两个答案都很好,但提取对象部分的过程更一般。

在许多情况下,函数返回列表,可以使用str()访问各个组件,该命令将打印组件及其名称。然后,您可以使用$运算符访问它们,即myobject$componentname

对于lm对象,有许多预定义的方法可以使用,比如coef()resid()summary()等,但你并不总是那么幸运。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5587676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档