私はlfe
Rのパッケージを使用して、多くの固定効果でいくつかの回帰を行っているため、直接lm
は問題外です(固定効果は個人レベルではないため、そうですplm
)。LaTeX
問題なく出力が得られますが、テーブルで使用したいと思います。ただし、私が試したパッケージ ( xtable
、apsrtable
、latex
コマンドHmisc
など) には、クラス のオブジェクトのメソッドはありませんfelm
。だから私の質問は、私は何をしますか? オブジェクトを読み取れるように lm.method にアクセスしてひねる方法はありfelm
ますか? felm
オブジェクトを強制的にlm
形にする方法はありますか? 何か案は?
3 に答える
フェルムオブジェクトに移植手術を行うと成功する可能性があります。そのようなキメラの作成が重要な根底にある仮定に暴力を振るっていないかどうかを判断することはあなたの責任です:
# 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-targeted関数が彼らの仕事をしようとすることを許可することです。)
私は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-package の作成者として、私はこれに光を当てることができます。確かに、felm-object は lm-object を模倣していますが、いくつかの違いがあります。
データマトリックスのコピーは含まれていません。lfe パッケージは、ギガバイト クラスの非常に大きなデータセットを対象としています。したがって、メモリを節約するための努力がなされてきました。もう 1 つの違いは、felm オブジェクトには、lm と同じ方法でシステムのランクに関する情報が含まれておらず、lm で使用される qr 分解も含まれていないことです。felm は qr 分解を使用せず、ランクはやや複雑な問題になる可能性があります。この結果、一部の標準的な方法はフェルムオブジェクトで機能し、他の方法は機能しないということになります。初期のlfeではfelmの継承クラスにlmがあったのですが、これがlmオブジェクトの印象を与えてしまうので削除しました。