【问题标题】:R: Hide dummies outputR:隐藏假人输出
【发布时间】:2015-04-13 16:53:45
【问题描述】:

我是使用 R 运行回归的新手。通过实践和查看不同的在线教程来学习,这就是我正在做的 atm 将 y 回归到 x1 并为 x2x3 设置假人(但没有互动假人):

myDataTable[, x2.f := factor(x2)]
myDataTable[, x3.f := factor(x3)]
ols <- myDataTable[, lm(y ~ x1 + x2.f +x3.f)]

现在,我想看看我的回归输出,但它很长,因为x3 有很多(想想数千个)值,summary(ols) 是不可读的。

如何查看回归输出,隐藏两个因子变量的输出?这应该是相当标准的,但如果我理解正确的话,summary.lm 中的任何参数都不允许这样做。

也就是说,排除阶乘变量,输出将只针对x1

> summary(ols, exclude=list(x2.f, x3.f)

Call:
lm(y ~ x1 + x2.f +x3.f)

Residuals:
   Min     1Q Median     3Q    Max 
-55.99 -38.66 -10.05  33.91 132.18 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) 49.5283522  0.6035625  82.060  < 2e-16 ***
x1          -0.0002951  0.0000633  -4.663  3.2e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

【问题讨论】:

  • anova(ols) 你在找什么吗?
  • @JohnPaul 不,我正在寻找 summary 给我的输出(估计值、标准错误、t 值),但只是针对某些变量,而不是针对所有变量。
  • @FooBar 那么请提供更多详细信息,说明您在问题中真正想要什么。您的上一条评论让我不太清楚您在寻找什么。
  • @Dason 我添加了一些预期的输出

标签: r regression


【解决方案1】:

您可以存储summary 的输出,然后获取您想要的部分。如果您只想要部分系数表 - 这是一个示例:

#make example data with 26 factors
X<-rnorm(26000)
Y<-rnorm(26000)
Z<-rep(letters,1000)

#do analysis, store summary and pull rows 1:5 of coefficient table
MyLM<-lm(X~Y+Z)
MySum<-summary(MyLM)
MySum$coef[1:5,]
#### or this produces the same output ###
coef(MySum)[1:5,]

这将为您提供前五行,您可以使用其他索引方法来获取您想要的任何内容,因为MySum$coefcoef(MySum) 的输出是一个矩阵。

例如,我存储了 lmsummary 的结果,但如果需要,您可以将所有这些组合在一行中,例如summary(lm(x...))$coef[1:5,]

【讨论】:

    【解决方案2】:

    您可以通过将部分输出保存为 DataFrame 来完成您需要的操作。然后只访问需要的部分。这有助于显示系数及其 p 值。 首先,您需要存储估计结果:

    res<-lm(y ~ x1 + x2.f +x3.f)
    

    然后你从系数输出中制作 data.frame(系数是完整输出的第 4 个元素):

    res1<-data.frame(summary(res))[4])
    

    使用数据框,您现在可以访问/限制您需要的任何内容。例如,如果只需要前两个系数及其 p 值:

    res1[1:2,]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-10
      • 2011-06-17
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      相关资源
      最近更新 更多