の続きです。今回はR言語のrlm関数でrobust linear regressionをやってみます。
こちらが参考図書です。
最初にpairs関数で散布図マトリックスを描きます。
cor関数で相関係数マトリックスをだします。
robust linear regressionを実行する関数は、rlm関数ですが、これはMASSパッケージに入っているので、MASSをlibrary関数で読み込みます。
rlm関数を実行します。
robust linear regression はデータポイントの中で回帰線から外れているデータのウェイトを小さくして回帰するそうです。
lm関数で普通の線形回帰も実行します。
Rsidual standard errorがrlm関数のモデルは、2.762で、lm関数のモデルは3.467ですので、rlm関数のモデルのほうが小さいです。
coef関数で係数を比較します。
chgPopuとchgIncomeはrlm関数のほうが傾きが急ですね。
predict関数で、モデルからの予測値を計算します。
実際のavgCalの値と、予測値の散布図を描きます。
残差プロットも描きましょう。
実際のavgCalの値と、モデルの予測値の相関係数を計算してみます。
lm関数のほうが相関係数は高いです。当たり前ですけどね。
MSEも計算してみます。
MSEもlm関数のほうが小さいです。これも当たり前ですね。トレーニングで使ったデータで相関係数、MSEを計算していますからね。
rlm関数では、どのデータのウェイトを小さくして回帰分析したのか見てみましょう。モデル名$wでわかります。
46番目のデータはかなりウェイトが小さいです。
実際にどのデータか、確認します。
山形県、山梨県、秋田県、北海道のウェイトが小さいことがわかりました。
特に北海道は小さなウェイトですね。
今回は以上です。