我正在使用R中的lfe
包进行一些具有许多固定效应的回归,因此直接的lm
是不可能的(由于固定效应不是个体水平,plm
也是)。我得到的输出没有任何问题,但现在我想在LaTeX
表中使用它。但是,我尝试过的包(如xtable
、apsrtable
、Hmisc
中的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
输出。Stargazer
在felm
对象(以及其他对象lm
等)上运行良好。
你可以在这里通过CRAN找到包裹。