UnsplashのEugene Golovesovが撮影した写真
の続きです。
今回は、Rで回帰分析をしてみたいと思います。
被説明変数を gdp : 県内総生産額にして、説明変数を num_jin, sta_num, sal_sta, inp_num, out_inp, add_staにしてみます。
まず、変数どうしの相関係数を確認します。
一番相関係数の高いペアはsta_numとinp_numの0.699です。多重共線性の心配はないようです。
Rでは、lm()関数で簡単に回帰分析ができます。
結果は、summary()関数で見ることができます。
一番下にあるp-valueの値が、このモデル全体のp値になります。2.826e-07と0.01よりもかなり低いので、このモデルは有意なモデルです。
係数の値が大きくて読みにくいので、gdpの単位を変更します。
gdpは今は百万円単位になっているので、100000で割って1000億円単位にしましょう。
もう一度、lm()関数で回帰分析を実行します。
summary()関数で結果を表示します。
さきほどの結果と比べると、係数や標準誤差の桁数が違うだけで、t値とp値は同じであることがわかります。
p値が0.05よりも小さい統計的に有意な変数は、
num_jin : 人口10万人当たりの事業所数(単位は1事業所)
sta_num : 事業所1か所当たりの従業員数(単位は1人)
sal_sta : 従業員1人当りの給与総額(単位は百万円)
の3つの変数です。
num_jinの係数は、-1.15ですから、人口10万人当たりの事業所が1増えると、他の変数の値が変わらないとすると県内総生産額は1150億円減る、ということです。
sta_numの係数は、-8.54ですから事業所当たりの従業員数が1人増えると、他の変数が変わらないとすると県内総生産額は8540億円減る、ということです。
sal_staの係数は、284です。従業員1人の給与総額が百万円増えると、他の変数が変わらないとすると県内総生産額は28兆4000億円増える、ということです。
線形回帰分析をするときは、一番注意しなければならないのが Heteroskedasticity です。残差の分散が説明変数と関連していてはいけないということです。
残差は、resid()関数で求まります。残差は平均は0なので、残差の2乗は残差の分散です。
チェックしてみましょう。
結果を見ると、残差の2乗は、num_jin, sta_num, sal_staと関連していますね、
つまり、gdp = b0 + b1*num_jin + b2*sta_num + b3*sal_sta + b4*inp_num + b5*out_inp + b6*add_sta + u のモデルは、Heteroskedasticity になっているので、線形回帰分析では正しく係数を推計できない、ということです。
どうしましょうか。。。次回考えましょう。
今回は以上です。
次回は
です。
初めから読むには、