0

我正在使用lfeR 中的包进行一些带有许多固定效果的回归,所以直接lm是不可能的(而且由于固定效果不是个体级别的,所以也是如此plm)。我得到的输出没有问题,但现在我想在LaTeX表格中使用它。但是,我尝试过的所有包(如xtableapsrtablelatex命令 inHmisc等)都没有类对象的方法felm。所以我的问题是,我该怎么办?有没有办法访问 lm.method 并扭曲它以便它可以读取felm对象?有没有办法将felm对象强制转换为lm形式?有任何想法吗?

4

3 回答 3

4

对 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-object 以查看它是否类似于 lm-object,并且确实如此。它似乎还summary(est)返回了 lm 用户期望的输出。(这实际上并没有按照您的要求进行。它唯一做的就是允许 lm 目标函数尝试完成它们的工作。)

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

 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}
于 2012-03-18T14:47:48.733 回答
2

作为 lfe-package 的作者,我可以对此有所了解。确实,felm 对​​象模仿了 lm 对象,但有一些差异。

它不包含数据矩阵的副本。lfe 包适用于千兆字节级的非常大的数据集。因此,已经做出了一些努力来节省内存。另一个区别是 felm-object 不包含与 lm 相同的系统等级信息,也不包含 lm 使用的 qr-decomposition。felm 不使用 qr 分解,排名可能有点复杂。这样做的结果是一些标准方法将适用于 felm 对​​象,而其他方法则不会。早期版本的 lfe 实际上将 'lm' 作为 'felm' 的继承类,但是因为这给人的印象是它实际上是一个 lm 对象,所以我删除了它。

于 2013-04-04T12:48:52.287 回答
1

这次聚会有点晚了,但我建议使用该包从回归包stargazer中生成输出。适用于对象(以及其他对象,等)。 LaTeXStargazerfelmlm

您可以在此处通过 CRAN 找到该软件包。

于 2018-08-22T18:31:31.250 回答