我正在使用lfe
R 中的包进行一些带有许多固定效果的回归,所以直接lm
是不可能的(而且由于固定效果不是个体级别的,所以也是如此plm
)。我得到的输出没有问题,但现在我想在LaTeX
表格中使用它。但是,我尝试过的所有包(如xtable
、apsrtable
、latex
命令 inHmisc
等)都没有类对象的方法felm
。所以我的问题是,我该怎么办?有没有办法访问 lm.method 并扭曲它以便它可以读取felm
对象?有没有办法将felm
对象强制转换为lm
形式?有任何想法吗?
3 回答
对 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}
作为 lfe-package 的作者,我可以对此有所了解。确实,felm 对象模仿了 lm 对象,但有一些差异。
它不包含数据矩阵的副本。lfe 包适用于千兆字节级的非常大的数据集。因此,已经做出了一些努力来节省内存。另一个区别是 felm-object 不包含与 lm 相同的系统等级信息,也不包含 lm 使用的 qr-decomposition。felm 不使用 qr 分解,排名可能有点复杂。这样做的结果是一些标准方法将适用于 felm 对象,而其他方法则不会。早期版本的 lfe 实际上将 'lm' 作为 'felm' 的继承类,但是因为这给人的印象是它实际上是一个 lm 对象,所以我删除了它。
这次聚会有点晚了,但我建议使用该包从回归包stargazer
中生成输出。适用于对象(以及其他对象,等)。 LaTeX
Stargazer
felm
lm
您可以在此处通过 CRAN 找到该软件包。