ここでは、社会心理学のための統計学(清水裕士先生、荘島宏二郎先生)の重回帰分析(P73~)について、HADとRを使って計算する方法を解説しています。単回帰分析の理解をHADとRで深めるを読んでない場合は、まずはそちらをご覧ください。
さらに心理学的研究における重回帰分析の適用に関わる諸問題を読むことをお勧めします。
データは、こちらからダウンロードできます。ここでは第5章のCSVファイルをダウンロードします。
CSVファイルのデータをすべてコピーして、HADのデータシートに貼り付けます。以下のようになります。ただし、データは一部しか表示されていませんのでご注意ください。
データの読みこみと、使用変数についてはこちらで解説しています。
まずは表5-2「重回帰分析による投資モデルの検証結果」をHADを使って確認してみましょう。モデリングシートは以下のようになります。使用変数が全投入ではない点に注意してください。コミットメントを選択した状態で「目的変数を投入」をクリックします。あわせて、「主効果を全投入」します。目的変数とモデルが下図のようになっていることを確認して「分析実行」をクリックします。
以上の作業で表5-2が確認できるはずです。続いて、表5-3を確認するため、使用変数とモデルに交際期間を追加します。
交際期間の係数は0.007(p = 0.530) と非常に小さくコミットメントへの影響はほぼ無視できることが分かります。
ではHAD2Rを使って、Rのスクリプトを確認してみましょう。これは交際期間ありの場合です。
dat <- read.csv("CSVファイルの指定")
subdat <- subset(dat, select = c(コミットメント,満足度,他の満足度,投資量,交際期間))
result <- lm(コミットメント~満足度+他の満足度+投資量+交際期間, subdat)
summary(result)
さて、書籍に詳細な説明があるように、偏回帰係数は説明変数の単位に依存します。単位の影響を受けないのは標準化された偏回帰係数(標準化効果量)ですが、上のRスクリプトではこれは出力されません。(HADでは出力されます)
これについての詳細な説明は、水本篤先生の重回帰分析の説明が分かりやすいです。上記のコミットメントの例では、次のようなスクリプトで標準化偏回帰係数を出力することができます。
z <- scale(dat) # 得点を標準化
z <- data.frame(z) # データフレーム形式に戻す
result2 <- lm(コミットメント~満足度+他の満足度+投資量+交際期間, z)
summary(result2)
HADの結果と一致していることを確認してください。ちなみに、Rでは満足度の標準化偏回帰係数が、3.900e-01のように出力されます。これは
3.9 × 10のマイナス1乗(あるいは、3.9×0.1)
を意味していて、小数点を一つ左側に動かしてやるとHADの結果である0.39と一致します。
もうひとつ別の方法も紹介しておきます。
標準化偏回帰係数 = 偏回帰係数 x 説明変数の標準偏差/目的変数の標準偏差
ちなみに書籍(第3刷)では誤植があり、分子と分母が反対になっています。
Rで上の式を使って満足度の標準化偏回帰係数を算出してみましょう。
result$coefficients[2] * sd(subdat$満足度)/sd(subdat$コミットメント)
自由度調整済み決定係数は、summary(result)で出力されていますが、書籍にならって算出するならば、次の通りです。
a <- sum((result$residuals - mean(result$residuals))^2) # 残差平方和
1-(a/result$df.residual)/var(subdat$コミットメント)
書籍のP84 5.3.3に相関行列の説明があります。Rを使って簡単に出力できます。書籍の説明にもありますが、回帰分析を行う前に相関行列を見ておくようにしましょう。多重共線性の問題を防ぐためにも重要です。
cor(subdat)
なお、HADでは分散拡大係数(VIF)が出力されるので、その数値を参照して多重共線性が生じていないかを確認することが可能です。