crosshyou

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

小売物価統計調査のデータ分析5 - R言語のlm()関数で重回帰分析をする。そして、scatterplot3d()関数で3D散布図を描く

f:id:cross_hyou:20220416072738j:plain

Photo by Ian Parker on Unsplash 

www.crosshyou.info

の続きです。

今回は、R言語のlm()関数で重回帰分析をしてみます。

前回までは、sougou: 総合をhouse: 住居、utility: 水道・光熱費とそれぞれ一つの説明変数で回帰分析していました。今回は、house: 住居と utility: 水道・光熱費を同時に説明変数にして回帰分析します。

f:id:cross_hyou:20220416073536p:plain

utility: 水道・光熱費は単回帰分析のときは有意な説明変数ではありませんでしたが、house: 住居と一緒に重回帰分析をすると有意な説明変数になるのですね。

前回と同じように、SST(Total Sum of Squares), SSE(Explained Sum of Squares), SSR(Residual Sum of Squares), R2(R-Squared)を計算しました。

f:id:cross_hyou:20220416074109p:plain

R2が0.688と算出されましたが、summary()関数での出力結果のR2と同じ値になりました。

f:id:cross_hyou:20220416074548p:plain

続いて、SER(Standard Error of the Regression)を計算しました。

f:id:cross_hyou:20220416074604p:plain

SERは0.884と計算されました。これもsummary()関数の出力結果と一致しました。

f:id:cross_hyou:20220416074746p:plain

Adjusted R-squaredを計算してみます。Adjusted R-squaredは説明変数の数を調整したR2です。

f:id:cross_hyou:20220416075439p:plain

0.6867と算出されました。これもsummary()関数の出力結果と一致しました。

f:id:cross_hyou:20220416075607p:plain

次は、それぞれの説明変数のStandard Error を計算してみます。

house: 住居のStandard Error から計算してみます。

f:id:cross_hyou:20220416075843p:plain

単回帰分析のStandard Error と違うのは、house: 住居をその他の説明変数(今回はutility: 水道・光熱費だけですが)で回帰分析をしてそのR2を利用することですね。分子のほうにこのR2が入っていて、1 - R2_house となっていますから、このR2が大きくなればなるほど、つまり対象の説明変数がその他の説明変数と相関が大きくなればなるほどStandard Error の値も大きくなる、ということですね。0.004817 と算出されました。

これも、summary()関数の出力結果と一致しました。

f:id:cross_hyou:20220416080507p:plain

utility: 水道・光熱費のStandard Error も計算してみます。

f:id:cross_hyou:20220416080640p:plain

0.00839 と算出されました。これもsummry()関数の出力結果と一致します。

f:id:cross_hyou:20220416080800p:plain

回帰分析の特徴である、残差の平均値が 0 であることを確認します。

f:id:cross_hyou:20220416081215p:plain

次は、残差が Homoskedasticity であるかどうかを確認します。残差の2乗が house: 住居、utility: 水道・光熱費と関係なければ Homoskedasticity です。日本語だと、等分散、分散の均一性といいますね。

f:id:cross_hyou:20220416081710p:plain

house: 住居のp値が0.0122と0.05 よりも小さく、回帰式全体のp値も0.04282 と0.05よりも小さいので、Homoskedasticity ではなくて、Heteroskedasticity ですね。

なので、通常のStandard Error よりも Heteroskedasticity-Robust Standard Error のほうがより適切です。carパッケージとlmtestパッケージを読み込んで、Heteroskedasticity Robust Standard Error を求めてみます。

f:id:cross_hyou:20220416082056p:plain

coeftest()関数で Standard Error を出力します。

f:id:cross_hyou:20220416082330p:plain

上のものが通常の Standard Error で、下のものが Heteroskedasticity-Robust Standard Error です。house: 住居のほうはHeteroskedasticity-Robust のほうが小さくなって、utility: 水道・光熱費のほうは大きくなっていますが、p値の結論はかわらず、どちらの説明変数も有意な説明変数です。

最後に3Dの散布図を描いてみましょう。scatterplot3dパッケージのscatterplot3d()関数を使うのが簡単です。

f:id:cross_hyou:20220416085819p:plain

f:id:cross_hyou:20220416085758p:plain

今回は以上です。

初めから読むには、

 

www.crosshyou.info

です。