从R中的lm输出中移除系数

  • 本文关键字:输出 中的 lm lm
  • 更新时间 :
  • 英文 :


我想从R中普通最小二乘lm()模型的输出中删除所有as.factor元素。最后一行不起作用,但例如:

frame <- data.frame(y = rnorm(100), x= rnorm(100), block = sample(c("A", "B", "C", "D"), 100, replace = TRUE))
mod <- lm(y ~ x + as.factor(block), data = frame)
summary(mod)
summary(mod)$coefficients[3:5,] <- NULL

有没有办法删除所有这些元素,使保存的"lm"对象不再具有这些元素?谢谢

一个选项是在lfe包中使用felm函数。

如包装中所述:

该软件包适用于具有多组固定效应的线性模型,即具有2个或多个因子和大量水平的线性模型。它执行与lm类似的功能,但它使用了一种特殊的方法来从正规方程中投影出多组固定效应,因此速度更快

set.seed(123)
frame <- data.frame(y = rnorm(100), x= rnorm(100), block = sample(c("A", "B", "C", "D"), 100, replace = TRUE))
id<-as.factor(frame$block)
mod <- lm(y ~ x + id, data = frame) #lm
summary(mod)
Call:
lm(formula = y ~ x + id, data = frame)
Residuals:
     Min       1Q   Median       3Q      Max 
-2.53394 -0.68372  0.04072  0.67805  2.00777 
Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  0.18115    0.17201   1.053   0.2950  
x           -0.08310    0.09604  -0.865   0.3891  
idB          0.04834    0.24645   0.196   0.8449  
idC         -0.51265    0.25052  -2.046   0.0435 *
idD          0.04905    0.26073   0.188   0.8512  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.9002 on 95 degrees of freedom
Multiple R-squared:  0.06677,   Adjusted R-squared:  0.02747 
F-statistic: 1.699 on 4 and 95 DF,  p-value: 0.1566

library(lfe)
est <- felm(y ~ x| id)
summary(est)
Call:
   felm(formula = y ~ x | id, data = frame) 
Residuals:
     Min       1Q   Median       3Q      Max 
-2.53394 -0.68372  0.04072  0.67805  2.00777 
Coefficients:
  Estimate Std. Error t value Pr(>|t|)
x -0.08310    0.09604  -0.865    0.389
Residual standard error: 0.9002 on 95 degrees of freedom
Multiple R-squared(full model): 0.06677   Adjusted R-squared: 0.02747 
Multiple R-squared(proj model): 0.00782   Adjusted R-squared: -0.03396 
F-statistic(full model):1.699 on 4 and 95 DF, p-value: 0.1566 
F-statistic(proj model): 0.7487 on 1 and 95 DF, p-value: 0.3891 

附言:Stata的一个类似程序是reghdfe。

最新更新