将felm R对象强制转换为lm形式或以其他方式将其打印在LaTeX表格中



我正在使用R中的lfe包进行一些具有许多固定效应的回归,因此直接的lm是不可能的(由于固定效应不是个体水平,plm也是)。我得到的输出没有任何问题,但现在我想在LaTeX表中使用它。但是,我尝试过的包(如xtableapsrtableHmisc中的latex命令等)都没有felm类对象的方法。所以我的问题是,我该怎么办?有没有一种方法可以访问lm.method并扭曲它,使其可以读取felm对象?有没有办法将felm对象强制转换为lm形式?有什么想法吗?

对felm对象进行一些移植手术可能会成功。确定这种嵌合体的创建是否对重要的潜在假设造成暴力是你的责任:

# with the first example in the lfe::
est <- lfe::felm(y ~ x+x2+G(id)+G(firm))
class(est) <- c("felm", "lm")
require(xtable)
 xtable(est)
#----------------
% latex table generated in R 2.14.0 by xtable 1.6-0 package
% Sun Mar 18 10:42:04 2012
begin{table}[ht]
begin{center}
begin{tabular}{rrrrr}
  hline
 & Estimate & Std. Error & t value & Pr($>$$|$t$|$) \ 
  hline
x & 1.0937 & 0.0971 & 11.26 & 0.0000 \ 
  x2 & 0.4597 & 0.1177 & 3.91 & 0.0002 \ 
   hline
end{tabular}
end{center}
end{table}

在进行课堂雕刻之前,我确实观察了felm物体,看看它是否像lm物体,它确实像。summary(est)还返回lm用户所期望的输出。(这实际上并没有达到你的要求。它唯一能做的就是允许以lm为目标的函数尝试完成它们的工作。)

我不是S4方法的特别成功的用户,但在帮助页面中点击几个链接并制作MOD,这是我忽略警告后得到的:

 require(stats)
 setOldClass(c("felm", "lm"))
 setMethod("modelInfo", "summary.felm", function(x) {
   env <- sys.parent()
   digits <- evalq(digits, env)
   model.info <- list(
                      "$N$"=formatC(sum(x$df[1:2]),format="d"),
                      "Resid. sd" = formatC(x$sigma,format="f",digits=digits))
   class(model.info) <- "model.info"
   return(model.info)
 } )
#in method for ‘modelInfo’ with signature ‘"summary.felm"’: no definition for class “summary.felm”
#[1] "modelInfo"
 apsrtable(est,est, digits=1, align="l", 
           stars=1, model.counter=0, order="rl",
           coef.rows=1, col.hspace="3em", float="sidewaystable")
#----------------------
begin{sidewaystable}[!ht]
caption{}
label{} 
begin{tabular}{ l D{.}{.}{1}D{.}{.}{1}@{hspace{3em}}D{.}{.}{1}D{.}{.}{1} } 
hline 
  & multicolumn{ 2 }{ c }{ Model 0 } & multicolumn{ 2 }{ c }{ Model 1 } \ hline
 x      & 1.1 ^* & (0.1)  & 1.1 ^* & (0.1) \ 
x2     & 0.5 ^* & (0.1)  & 0.5 ^* & (0.1)  \
 $N$       & multicolumn{2}{c}{172} & multicolumn{2}{c}{172}\ 
Resid. sd & multicolumn{2}{c}{   } & multicolumn{2}{c}{   } \ hline
 multicolumn{5}{l}{footnotesize{Robust standard errors in parentheses}}\
multicolumn{5}{l}{footnotesize{$^*$ indicates significance at $p< 0.05 $}} 
end{tabular} 
 end{sidewaystable}

作为lfe包的作者,我可以对此有所了解。felm对象确实模仿了lm对象,但有一些不同。

它不包含数据矩阵的副本。lfe包适用于GB类的非常大的数据集。因此,已经做出了一些努力来保存记忆。另一个不同之处在于,felm对象不以与lm相同的方式包含关于系统秩的信息,也不包含lm使用的qr分解。felm不使用qr分解,秩可能是一个有点复杂的问题。这样做的结果是,一些标准方法可以在felm对象上工作,而其他方法则不行。lfe的早期版本实际上将"lm"作为"felm"的继承类,但由于这会给人留下它实际上是lm对象的印象,所以我将其删除。

这有点晚了,但我建议使用stargazer包从回归包中生成LaTeX输出。Stargazerfelm对象(以及其他对象lm等)上运行良好。

你可以在这里通过CRAN找到包裹。

相关内容

最新更新