首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何只打印(调整)回归模型的R平方?

如何只打印(调整)回归模型的R平方?
EN

Stack Overflow用户
提问于 2018-05-28 18:17:02
回答 1查看 2.5K关注 0票数 1

我是R的初学者,我有一个关于空气污染的数据集。这些柱是现场测量的浓度和可能影响浓度的80个变量(v1-v80)。我想用自己的代码建立一个基于R平方/adj的前向逐步回归模型(所以我不想使用step()或regsubset()之类的东西)。因变量为浓度,变量v1-v80为自变量。我为第一步编写了以下代码(简化了数据集):

  site concentration         v1         v2         v3
1    1   -0.84085548  1.7114409 -0.2857736 -1.0803926
2    2    1.38435934 -0.6029080  0.1381082 -0.1575344
3    3   -1.25549186 -0.4721664  1.2276303 -1.0717600

for (j in names(df)){
  model <- lm(concentration ~ df[[j]], data = df)
  print(j)
  print(summary(model))
}

这很有效,但我只对R平方和调整后的R平方感兴趣。我尝试只打印(调整后的)R平方:

for (j in names(df)){
  model <- lm(concentration ~ df[[j]], data = df)
  print(j)
  print(summary(model$r.squared))
  print(summary(model$adj.r.squared))
}

但之后我会得到输出(这只是其中的一部分):

[1] "v1"
Length  Class   Mode 
     0   NULL   NULL 
Length  Class   Mode
     0   NULL   NULL
[1] "v2"
Length  Class   Mode 
     0   NULL   NULL 
Length  Class   Mode
     0   NULL   NULL  

等等。

对于for循环中产生的每个模型,我如何才能仅获得相关变量的名称和(调整后的)R平方?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 18:20:55

library(broom)
glance(model)[c(1,2)]

Input = ("site concentration         v1         v2         v3
          1    1   -0.84085548  1.7114409 -0.2857736 -1.0803926
          2    2    1.38435934 -0.6029080  0.1381082 -0.1575344
          3    3   -1.25549186 -0.4721664  1.2276303 -1.0717600")

df = read.table(textConnection(Input),header=TRUE)

for (j in names(df)){
    model <- lm(concentration ~ df[[j]], data = df)
    print(j)
    print(glance(model)[c(1,2)])
}

[1] "site"
    r.squared adj.r.squared
 1 0.02132635    -0.9573473
[1] "concentration"
    r.squared adj.r.squared
  1         1             1
[1] "v1"
  r.squared adj.r.squared
1 0.1717716    -0.6564568
[1] "v2"
  r.squared adj.r.squared
1 0.1482473    -0.7035055
[1] "v3"
  r.squared adj.r.squared
1 0.9762587     0.9525174
Warning message:
  In stats::summary.lm(x) :
  essentially perfect fit: summary may be unreliable

使用base R

summary(model)$adj.r.squared
summary(model)$r.squared
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50564111

复制
相关文章

相似问题

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