No.09120 標準化偏回帰係数について  【ゆねこ】 2009/02/05(Thu) 05:31

はじめまして。統計学およびRの初心者です。

重回帰分析(ダミー変数を含む)をRで行なった後,標準化偏回帰係数を求めようとしました。しかし,Rを用いて計算しようとしたところ,うまく計算することができませんでした。
Rで標準化偏回帰係数を計算する場合どういった指令を打ち込めばいいのか,値の例とともに示していただくことはできないでしょうか?

また,とあるRの参考書に標準化偏回帰係数の求め方の公式が「標準偏回帰係数=偏回帰係数×(独立変数の標準偏差/従属変数の標準偏差)」…と示されていたのですが,これは正しいのでしょうか?青木先生のHP上の公式とは異なっていたので,疑問に感じました。

No.09126 Re: 標準化偏回帰係数について  【青木繁伸】 2009/02/05(Thu) 10:20

> 青木先生のHP上の公式とは異なっていたので,疑問に感じました

私のページでは,
標準化偏回帰係数 = 偏回帰係数×√(独立変数の変動 / 従属変数の変動)
と書いているわけです。
√の中の分子・分母をデータ数(n)マイナス1で割ってやると(変動を n-1 で割ると,不偏分散)
標準化偏回帰係数 = 偏回帰係数×√(独立変数の不偏分散 / 従属変数の不偏分散)
         = 偏回帰係数×√独立変数の不偏分散 / √従属変数の不偏分散
         = 偏回帰係数×独立変数の標準偏差 / 従属変数の標準偏差
となり,同じですよね。

実例
df <- data.frame(
Y =c(44, 47, 41, 49, 56, 41, 58, 47, 60, 57),
X1=c(39, 47, 53, 45, 48, 48, 61, 47, 49, 64),
X2=c(52, 49, 41, 37, 56, 50, 63, 47, 56, 50),
X3=c(42, 47, 41, 53, 54, 41, 47, 59, 61, 54))
このデータフレームは,以下のような形式になる。
    Y X1 X2 X3
1 44 39 52 42
2 47 47 49 47
3 41 53 41 41
4 49 45 37 53
5 56 48 56 54
6 41 48 50 41
7 58 61 63 47
8 47 47 47 59
9 60 49 56 61
10 57 64 50 54

ans <- lm(Y ~ X1+X2+X3, df) # 重回帰分析
coefficients(ans)[2:4]*sd(df[2:4])/sd(df[1]) # 標準化偏回帰係数
得られる結果は以下のようになる
       X1        X2        X3 
0.3080710 0.4472201 0.6072801
注:coefficients 関数は lm 関数が返すオブジェクトから,偏回帰係数を取り出す関数
  sd(df[2:4]) が X1, X2, X3 の標準偏差,sd(df[1]) が Y の標準偏差

No.09128 Re: 標準化偏回帰係数について  【ゆねこ】 2009/02/05(Thu) 12:55

丁寧な返信,ありがとうございました。先生の示してくださっている公式をちゃんと理解できていなかったのですね。とてもすっきりしました。

標準化偏回帰変数,早速計算してみたいと思います。では,失礼します。

● 「統計学関連なんでもあり」の過去ログ--- 042 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る