【R】stargazerで回帰分析表を出力する

インストールと呼び出し

 重回帰分析の推定結果を綺麗に出力するstargazerのパッケージをインストールして、読み込みます。

# パッケージのインストール(初回のみ)
install.packages("stargazer")
 
# パッケージの呼び出し
library(stargazer)

 

準備:回帰分析をする

 同じ出力を再現できるように次のコードを実行してください。

# 回帰分析をする
install.packages("wooldridge")
library(wooldridge)
MLR1 <- lm(wage ~ educ + IQ, data=wage2)

 

text形式での出力

# 回帰分析MLR1の結果を、text形式で出力
stargazer(MLR1, type="text")

 

カスタマイズ

stargazer(MLR1,  #回帰分析の名前。"MLR1,MLR2,MLR3"と並べると、複数の結果を比較で得切る。
 type = "latex", #出力形式。text、latex、htmlが選べる。R Markdownで出力場合はlatexし、チャンクの中にresults='asis'をいれてください。
 title = "", #表のタイトル
 out = NULL, #htmlで出力する場合は"name.html"のように名前を入れる
 covariate.labels = NULL, #説明変数の名前を変える c("Years of education","IQ","Intercept")のように書く
 dep.var.caption = NULL, #Dependent variableの部分を変えられる
 dep.var.labels = NULL,  #Dependent variableの下のwageを変えられる
 ci = FALSE, #TRUEにすると標準誤差ではなく信頼区間を出力する
 ci.level = 0.95, #95%信頼区間
 intercept.bottom = TRUE, #TRUEにすると定数項が一番下に来ます
 intercept.top = FALSE, #TRUEにすると定数項が一番上に来ます
 notes = NULL, #表の下のnoteに文章を付け加えられます
 omit.stat = NULL #統計量を省けます。n=サンプル・サイズ、rsq=決定係数、adj.rsq=自由度調整済み決定係数、ser =残差の標準誤差、f=f統計量
)

 例↓

stargazer(MLR1, 
 type = "html", 
 title = "TITLE", 
 out = "mlr.html", 
 covariate.labels = c("Years of education","IQ","Intercept"), 
 dep.var.caption = "Outcome variable",
 dep.var.labels = "wage(dollars)", 
 omit.stat = c("adj.rsq","ser","f") )

日本語化

 上のカスタマイズで、日本語を打つとバグる場合が多いです。日本語入力をしたい場合のおすすめは、(1)日本語入力ができるように調整されたR Markdown上に出力するか、(2)英語のままlatexコードで出力しlatex編集ソフト上で日本語化することです。(2)で編集した例が下です。

\begin{table}[!htbp] \centering 
  \caption{推定結果} 
  \label{} 
\begin{tabular}{@{\extracolsep{5pt}}lc} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
 & \multicolumn{1}{c}{目的変数} \\ 
\cline{2-2} 
\\[-1.8ex] & 賃金 \\ 
\hline \\[-1.8ex] 
教育年数 & 42.058$^{***}$ \\ 
  & (6.550) \\ 
  & \\ 
知能指数 & 5.138$^{***}$ \\ 
  & (0.956) \\ 
  & \\ 
定数項 & $-$128.890 \\ 
  & (92.182) \\ 
  & \\ 
\hline \\[-1.8ex] 
サンプル・サイズ & 935 \\ 
決定係数 & 0.134 \\ 
\hline 
\hline \\[-1.8ex] 
\textit{メモ:}  & \multicolumn{1}{r}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\ 
\end{tabular} 
\end{table}