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

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

都道府県別の工業統計調査のデータの分析7 - RでHeteroskedasticity Robust Inference とWLS(Weighted Least Square)

UnsplashWolfgang Hasselmannが撮影した写真 

www.crosshyou.info

の続きです。

前回は、Rのlm()関数で線形回帰分析をしました。そして、そのモデルはHeteroskedasticityだとわかりました。このときの対処方法は、ひとつは、Heteroskedasticity Robustな標準誤差を計算する方法とWLS(Weighted Least Square)で推定する方法です。

まずは、Heteroskedasticity Robustな標準誤差を計算してみます。

lmtestパッケージとcarパッケージを読み込んで、coeftest(lmオブジェクト, vcov = hccm)とする方法です。

num_jin とsta_num はp値が0.05よりも大きくなり有意ではなくなりましたが、sal_staはp値は0.02612と0.05なので有意なのはかわらないです。

他の変数が変わらなければ、sal_staが1,つまり従業員一人当たりの給与総額が100万円上昇すれば、県内総生産額は28兆4000億円増える、ということですね。

次は、WLS(Weighted Least Square)でモデルの係数を推定しましょう。

方法は

Step1 : 推定したいモデルをlm()関数で推定して、残差 : u を求める

Step2 : log(u^2)を計算する

Step3 : log(u^2) をモデルの説明変数で lm()関数で回帰分析して、fitted values : g を求める

Step4 : h = exp(g) として h を求める

Step5 : lm()関数の中で、weight = 1/h としてモデルを推定する

という手順になります。

それでは順番にやってみます。

推定結果をsummary()関数でみてみましょう。

sal_staの係数は77とかなり小さくなりましたが、p値は0.002なので有意な変数であることはかわらないです。

一人当りの給与総額が100万円増えると、他の変数の値が変わらないとすれば、県内総生産額は7兆7000億円増える、ということです。

今回は以上です。

今回は(というか今回も)、

 

 

を参考にしました。

 

初めから読むには、

 

www.crosshyou.info

です。