Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

都道府県別の保護統計調査のデータの分析7 - R言語で回帰分析モデルの不均一分散をチェックする。

UnsplashMaitheli Maitraが撮影した写真 

www.crosshyou.info

の続きです。

前回は、回帰分析をしました。今回はその続きで、回帰分析したモデルの残差が均一分散かどうかをチェックします。

lmtestパッケージのbptest()関数で簡単にチェックできます。

bptest()関数は、Breush-Pagan Test を実行する関数です。

p値が0.3075と0.05よりも大きい値なので、均一分散だと言えます。

bptest()関数を使わない方法は、resid()関数で残差をだして、その2乗を説明変数で回帰分析します。

こちらの方法では、p値は0.2587です。こちらの方法でも、残差の2乗とr_two, r_fourは関連が無いことが確認できました。

reg3も調べてみます。

p値は0.3195と0.05よりも大きいので、reg3のモデルも均一分散と言えます。

bptest()関数を使わない方法でもやってみます。

p値は0.2717なので、この方法でも均一分散であることが確認できました。

回帰分析の残差が均一分散か不均一分散かをテストする方法は、Breusch-Pagan Testの他に、White Testもあります。これは残差の2乗を回帰モデルから算出された予測値と予測値の2乗で回帰分析するものです。

これもbptest()関数で簡単にできます。

p値は0.2542なので、均一分散であると言えます。

bptest()関数を使わないでやってみます。

p値が0.2064なので均一分散であると言えます。

reg3のモデルでもWhiteの検定をやってみましょう。

p値が0.1557なので均一分散であると言えます。

bptestを使わないでWhiteの検定をやってみます。

p値は0.09717と0.05よりも大きいので均一分散であると言えます。

次に残差の2乗とr_fourの散布図を描いて、本当に残差の2乗、つまり残差の分散がr_fourと関係していないかを視覚的に確認しましょう。

まず、moderndiveパッケージの読み込みをしておきます。

moderndiveパッケージのget_regression_points()という関数が便利です。

このように、回帰モデルのオブジェクトから、残差やy_hatも含めたデータフレームを作ってくれます。ここから散布図を作ります。

回帰直線の傾きは、右肩下がりでも右肩上がりでもとれるような感じです。

reg3でも散布図を描いてみます。

こちらも同じような散布図ですね。

moderndiveパッケージには、get_regression_table()という関数も用意されていて、

これで、回帰モデルの係数の信頼区間を見ることができます。

reg1のr_fourの係数の信頼区間は、-1.62 ~ -0.345で、reg3のほうは、-1.65 ~ -0.388です。

両者の信頼区間は、だいたい同じですね。

今回は以上です。

次回は、

www.crosshyou.info

です。

初めから読むには、

www.crosshyou.info

です。