crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

都道府県別の定期健康診断結果報告のデータ分析5 - R言語で回帰モデルの均一分散を調べたり、複数の回帰モデルの表を作成する。

UnsplashYoksel 🌿 Zokが撮影した写真 

 

www.crosshyou.info

の続きです。

前回は 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() -- 複数の回帰モデルの結果の表を作成

です。

次回は

www.crosshyou.info

です。

初めから読むには、

www.crosshyou.info

です。