crosshyou

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

都道府県別の睡眠・食事・仕事の平均時間のデータ分析5 - R言語のlm関数とrlm関数で回帰分析

 

www.crosshyou.info

 の続きです。

今回は各変数の2006年度から2011年度の変化幅を作成します。

f:id:cross_hyou:20200518093922j:plain

始めのコードで2011年度から2006年度を引き算し、

2行目のコードでpaste関数を使ってもともとの変数名に_Chgを使たしています。

3行名のコードでgsub関数で余計な空白を列名から削除しています。

4行名のコードで都道府県名の列を付け足し、

5行目のコードで都道府県名の列の変数名をPrefにし、

6行目のコードで行名を削除し、

7行目のコードで作成したデータフレームのはじめの6行を表示しています。

summary関数でサマリを表示しましょう。

f:id:cross_hyou:20200518094103j:plain

数字が多すぎてよくわからないです。

hist関数でヒストグラムを描きます。

f:id:cross_hyou:20200518092813j:plain

f:id:cross_hyou:20200518094207j:plain

Popu_Chg, Area_Chg, Income_Chg, lg_Area_Chgはかなり偏った分布です。

log_Income_Chgと相関のある変数は何かみてみます。

f:id:cross_hyou:20200518094448j:plain

per_Income_Chgとの相関が高いのは当たりまえだとして、次はlog_Popu_Chgです。

 

こんどは、per_Income_Chgと相関のある変数は何かをみてみます。

f:id:cross_hyou:20200518095243j:plain

負の相関ではMitsu_Chg, Popu_Chg, Temp_Chgが比較的相関がありそうです。

per_Income_ChgをMitsu_Chg, Popu_Chg, Temp_Chgで回帰分析してみましょう。

f:id:cross_hyou:20200518095734j:plain

Temp_Chgは有意ですが、Mitsu_Chg, Popu_Chgは有意ではないですね。

Popu_Chgを削除します。

f:id:cross_hyou:20200518100020j:plain

anova関数で、lm1とlm2を比較しました。Pr(>F)が0.6959ですから、lm1とlm2は有意な違いはありません。なので、単純なlm2のほうが好ましいです。

f:id:cross_hyou:20200518100248j:plain

Popu_Chgを削除したたMitsu_Chgが有意になりました。係数の符号はMitsu_Chg, Temp_Chgともに負です。人口密度が増えた都道府県ほど、平均気温が上昇した都道府県ほど1人当りの県内総生産は減少するという結果になりました。
それぞれの散布図を描きます。

f:id:cross_hyou:20200518100853j:plain

f:id:cross_hyou:20200518100908j:plain

散布図を見ると、Mitsu_chgは右下のプロットが外れ値で、これが大きく回帰モデルに影響を与えているような気がします。

MASSパッケージのrlm関数でrobust linear modelで外れ値を考慮した回帰分析をしてみます。

f:id:cross_hyou:20200518102008j:plain

t-valueが小さいPopu_Chgを削除します。

f:id:cross_hyou:20200518102408j:plain

Mitsu_ChgもTemp_Chgもt-valueが2よりも大きくなりました

どの都道府県のデータがウェートが低いのか見てみます。

f:id:cross_hyou:20200518103036j:plain

rlm関数は、福島県、愛知県、鳥取県のデータのウェートを低くして回帰分析をしたようです。