UnsplashのYoksel 🌿 Zokが撮影した写真
の続きです。
前回は tworatio: 2回以上実施した事業場数の割合をnum: 検査を実施した事業所の数で回帰分析してみました。その結果、事業所の数が大きいほど、割合は低下している傾向があることがわかりました。
続いて、回帰モデルの誤差項が均一分散かどうかを調べます。
resid()関数で回帰モデルの誤差項を算出して、plot()関数でnumとの散布図を描いています。この散布図を見ただけでは、均一分散かどうかわからないですね。
lm()関数で誤差項の2乗したものをnumで回帰分析して、summary()関数で結果を表示してみます。
numのp値が0.0177と0.05よりも低い値です。つまり、reg1の回帰モデル、
towratio = beta0 + beta1*num + u は不均一分散ということです。
reg2の回帰モデル、tworatio = beta0 + beta1*log(num + u も同じようにやってみます。
l_numのp値は0.095です。0.05よりも大きいので不均一分散とは言えないです。ただ、0.1よりは小さいので、そんなに自信をもって不均一分散ではない、とは言えないですね。
tworatioを説明するのにnumだけでは不十分のようです。他の説明変数も加えてみましょう。
どの変数を加えたらいいかを判断したいので、変数どうしの相関係数をcor()関数で調べてみます。
l_numと相関係数の高い変数は加えてもあまり意味なないので、ritsu: 所見のあった割合を加えてみます。
ritsuの係数は0.1でp値は0.383と0.05よりも大きいので有意な推定結果ではないですね。
とりあえず、均一分散かどうかを確認してみます。
l_num, ritsuのp値は0.05よりも大きく、モデル全体のp値も0.2094と0.05よりも大きいので、reg3の回帰モデルは均一分散という帰無仮説を棄却できないです。つまり、均一分散といえますね。
reg2とreg3の回帰モデルを見やすい表にして比較してみます。
stargazerパッケージを使います。
まず、library()関数でstargazerパッケージを読み込みます。
stargazer()関数で回帰モデルの比較表ができます。
l_numはnumの対数変換値なので、numが1%大きくなると、tworatioはreg1のモデルでは0.034ポイント低下、reg2のモデルでは0.032ポイント低下すると解釈できます。
今回は以上です。
今回使用した関数は、
resid()関数 -- 回帰モデルの誤差項を算出
plot() -- 散布図を描く
lm() -- 回帰モデルの推計
summary() -- 回帰モデルの結果サマリーを表示
cor() -- 相関係数を算出
library() -- パッケージを読み込む
stargazer() -- 複数の回帰モデルの結果の表を作成
です。
次回は
です。
初めから読むには、
です。