Rで重回帰分析して、出力します。
なお、この記事の内容はすぐに再現できます。なぜなら、たった2行のコードで使えるデータを用いるからです。ご自身でデータを用意する必要や、どこかからcsvデータ・エクセルデータをダウンロードしてくる必要はありません。具体的には、パッケージwooldridgeを使います。
要約
Rのlm関数で重回帰分析して、summaryでいろいろ試し、stargazerで綺麗に出力します。
データ
分析用のデータは、wooldridgeのwage2を使います。
# パッケージのインストール(初回のみ)
install.packages("wooldridge")
# パッケージの呼び出し
library(wooldridge)
# 使うデータの確認
wage2
重回帰分析とlm関数
次の重回帰分析を行います。
$$Y=\beta_0+\beta_1 X_1 +\beta_2 X_2 + u$$
$$ Y=賃金wage、X_1=教育年数educ、X_2=IQ$$
# 目的変数wage、説明変数educ、IQで重回帰分析。使うデータはwage2
lm(wage ~ educ + IQ, data=wage2)
重回帰分析とsummary
(1)回帰分析の詳細を知る
# 重回帰分析にMLR1と名前をつけてサマリーする
MLR1 <- lm(wage ~ educ + IQ, data=wage2)
summary(MLR1)

(2)回帰係数の95%信頼区間
# 回帰係数の95%信頼区間を計算
confint(MLR1,level=0.95)

(3)回帰係数だけ抜き出す
# coef(名前)で抜き出せる
coef(MLR1)
MLR1$coef #でも可能
# coef(名前)["説明変数名"]で抜き出せる
coef(MLR1)["educ"]

(4)推定量、標準誤差、t値、P値を取り出す
# summary(名前)$coefficientsで抜き出せます
summary(MLR1)$coef
# educのP値を抜き出します
summary(MLR1)$coef["educ","Pr(>|t|)"]

(5)予測値と残差
予測値と残差は次のコードで出力できます。
#予測値
predict(MLR1)
#残差
residuals(MLR1)
重回帰分析とstargazer
(1)パッケージ
重回帰分析の推定結果を綺麗に出力するstargazerのパッケージを読み込みます。
# パッケージのインストール(初回のみ)
install.packages("stargazer")
# パッケージの呼び出し
library(stargazer)
(2)最も基本的な出力方法
# 回帰分析MLR1の結果を、text形式で出力
stargazer(MLR1, type="text")

(3)カスタマイズ
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") )

(4)日本語化する
上のカスタマイズで、日本語を打つとバグる場合が多いです。日本語入力をしたい場合のおすすめは、(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}
カテゴリー