crosshyou

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

都道府県別の定期健康診断結果報告のデータ分析6 - R言語で回帰モデルの不均一分散に適応した標準誤差やF検定をする。

UnsplashGanapathy Kumarが撮影した写真 

www.crosshyou.info

の続きです。

前回の重回帰モデルに年と都道府県を説明変数に加えて、l_numの係数がどうなるかを見てみます。

まず、yearをas.factor()関数でファクター型に変換した変数をつくります。

yfがファクター型に変換した変数ですが、summary()関数で処理すると、最大値などの統計値ではなくて度数が出てきますので、ファクター型に変換されたとわかります。

pref: 都道府県名は既にファクター型に変換したあるので、そのまま使います。

それでは、lm()関数で回帰分析をしてみます。

l_numの係数が-0.079と大きく変化しました。

誤差項が均一分散かどうかを見てみます。

誤差項の2乗が説明変数と相関していることがわかりますので、reg4の回帰モデルは不均一分散です。

不均一分散の時は、通常の標準誤差は無効なので、不均一分散に対応した標準誤差を使わないといけないです。

carパッケージとlmtestパッケージを読み込んで、lmtestパッケージのcoeftest()関数を使います。

coeftest()関数を使って、reg2, reg3, reg4のl_numの係数を表示します。

coeftest()関数の中に vcov = hccm を加えると不均一分散に適応した標準誤差を計算します。rbind()関数はベクトルやマトリックスを縦方向につなげます。

reg4のl_numの係数は-0.07935907ですが、p値が2.24e-01, つまり0.224なので有意ではないです。つまり、年と都道府県を加えて回帰分析すると、tworatioとl_numには関連性は無いということです。

reg4の回帰モデルで、prefが有意かどうかを調べます。

linearHypothesis()関数を使います。

p値が2.2e-16とほとんどゼロですので、prefは全体として有意です。

yrが全体として有意かどうかも調べます。

p値が0.0005923と小さいのでyfは全体として有意です。

今回は以上です。

今回使用した関数は

as.factor()関数 -- ファクター型に変換

lm()関数 -- 線形回帰モデルを作る

summary()関数 -- 回帰モデルのサマリーを表示

carパッケージとlmtestパッケージ -- 不均一分散用の標準誤差を算出するのに使う

rbind()関数 -- ベクトルやマトリックスを縦に結合

coeftest()関数 -- 回帰モデルの係数を表示

linearHypothesis()関数 -- 回帰モデルでF検定をするときに使う

です。

次回は

www.crosshyou.info

です。

初めから読むには、

www.crosshyou.info

です。