の続きです。
前回は外れ値を取り除きましたからそれを使って回帰分析をしてみたいと思います。
まずは、外れ値をデータフレームとして、一つにまとめます。data.frame関数でデータフレームは作成できます。
変数同士の相関係数を見てみます。cor関数を使います。
一番相関係数が絶対値で大きいのは、outFireとoutEduですね。
散布図マトリックスを描きましょう。pairs関数を使います。
outGDPはoutFire, outEdu, outPoliceとはあまり相関が無いようですね。
outGDPをresponse variableに、他の変数をexplanatory variablesにして線形回帰分析をしてみます。lm関数を使います。
一番下の行にあるp-valueが0.3767となっていますから、このモデルは有意ではないです。
まず、outFire:outPoliceを削除してみます。
Pr(>F)が0.4011と0.05よりも大きいので、lm1とlm2には有意な違いはありません。
lm2をsummary関数で見てみましょう。
p-valueが0.3346ですので、lm2も有意なモデルではないです。
outFire:outEdu:outPoliceを削除してみます。
Pr(>F)が0.2599なので、lm2とlm3は有意な違いはありません。
lm3を見てみます。
lm3のp-valueは0.35ですから有意なモデルではないですね。
step関数でlm3をもっと単純化しましょう。
p-valueが0.04776と0.05よりも小さいので、これは有意なモデルです。outEduだけが有意な変数として残りましたね。教育部門の人数が少ない都道府県のほうが県内総生産は多い傾向があるようです。といってもMultiple R-squaredが0.09675ですので、このモデルでは、outGDPの値を9.7%しか説明できません。
lm4の残差プロットを描きましょう。
愛知県、埼玉県、奈良県がモデルから予測される値と実際の値の差が大きいことがわかります。
こんどは、外れ値も含んだ47都道府県全部のデータで同じように回帰分析してみましょう。
おなじようにデータフレームを作ります。
lm関数で回帰分析します。
p-valueが3.306e-07なので有意なモデルです。
step関数で単純化します。
p-valueは2.195e-08なので有意なモデルです。perFire:perPolice, perEdu:perPoliceというinteractionも残っていますね。Multiple R-squaredは0.6471ですから、このモデルでperGDPの値を64.7%説明できます。外れ値を除外して分析したモデルとはかなり違いますね。
残差プロットを描いてみます。
右端にあるプロットが東京都ですね。
lm4(外れ値を除外したモデル)の残差とlma2(外れ値も含んだモデル)の残差を箱ひげ図で比較してみましょう。
lma2(外れ値も入れて回帰分析したモデル)のほうが箱ひげ図の箱本体も、ひげも小さいですね。外れ値も含めて分析したほうがいいときもあるのですね。というか本当に外れ値だったのでしょうか?これは勉強不足で私はわかりません。
今回は以上です。