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

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

都道府県別の食料自給率のデータ分析6 - R言語のrlm関数でrobust linear regression

 

www.crosshyou.info

の続きです。今回はR言語のrlm関数でrobust linear regressionをやってみます。

 

 こちらが参考図書です。

最初にpairs関数で散布図マトリックスを描きます。

f:id:cross_hyou:20200511181022j:plain

f:id:cross_hyou:20200511181036j:plain

cor関数で相関係数マトリックスをだします。

f:id:cross_hyou:20200511181134j:plain

 

robust linear regressionを実行する関数は、rlm関数ですが、これはMASSパッケージに入っているので、MASSをlibrary関数で読み込みます。

f:id:cross_hyou:20200511181251j:plain

rlm関数を実行します。

f:id:cross_hyou:20200511181443j:plain


robust linear regression はデータポイントの中で回帰線から外れているデータのウェイトを小さくして回帰するそうです。

lm関数で普通の線形回帰も実行します。

f:id:cross_hyou:20200511181703j:plain


Rsidual standard errorがrlm関数のモデルは、2.762で、lm関数のモデルは3.467ですので、rlm関数のモデルのほうが小さいです。

coef関数で係数を比較します。

f:id:cross_hyou:20200511181856j:plain

chgPopuとchgIncomeはrlm関数のほうが傾きが急ですね。

predict関数で、モデルからの予測値を計算します。

f:id:cross_hyou:20200511182037j:plain

実際のavgCalの値と、予測値の散布図を描きます。

f:id:cross_hyou:20200511183125j:plain

f:id:cross_hyou:20200511183137j:plain


残差プロットも描きましょう。

f:id:cross_hyou:20200511183309j:plain

f:id:cross_hyou:20200511183319j:plain



実際のavgCalの値と、モデルの予測値の相関係数を計算してみます。

f:id:cross_hyou:20200511191010j:plain

lm関数のほうが相関係数は高いです。当たり前ですけどね。

MSEも計算してみます。

f:id:cross_hyou:20200511191117j:plain

MSEもlm関数のほうが小さいです。これも当たり前ですね。トレーニングで使ったデータで相関係数、MSEを計算していますからね。

rlm関数では、どのデータのウェイトを小さくして回帰分析したのか見てみましょう。モデル名$wでわかります。

f:id:cross_hyou:20200511191334j:plain

f:id:cross_hyou:20200511191403j:plain

46番目のデータはかなりウェイトが小さいです。

実際にどのデータか、確認します。

f:id:cross_hyou:20200511191515j:plain

山形県、山梨県、秋田県、北海道のウェイトが小さいことがわかりました。

特に北海道は小さなウェイトですね。

今回は以上です。