No.11871 複数の制御変数を用いて偏相関を求めるときの前提  【たっく】 2010/01/28(Thu) 02:31

統計の偏相関についての質問です。

A-B,A-C,B-Cの間にそれぞれ相関がある時に「A-C,B-C」の相関の影響を除いたA-Bの相関係数を求めるのが,Cを制御変数としてAとBの偏相関を求めるということだと認識しています。

この場合,分析の前提となるのは,AとC,BとCの間に相関があることだと思うのですが,制御変数をもう一つ増やして,CとDを制御変数としたAとBの偏相関係数を求めるといった分析をする場合,CとDは独立な変数である必要がありますか?

Cと似た変数(相関の強い変数)Dを制御変数として同時に使用してもいいものなのでしょか?

ご教授願います。

No.11872 Re: 複数の制御変数を用いて偏相関を求めるときの前提  【青木繁伸】 2010/01/28(Thu) 05:52

> A-B,A-C,B-Cの間にそれぞれ相関がある時に
> 「A-C,B-C」の相関の影響を除いたA-Bの相関係数を求めるのが,
> Cを制御変数としてAとBの偏相関を求めるということだと認識しています。
> この場合,(1) 分析の前提となるのは,AとC,BとCの間に相関があることだと思うのですが,

(1) の条件は不要です。

偏相関係数の説明として,「二変数それぞにおいて制御変数を独立変数として重回帰(単回帰)分析をした残差どうしの相関係数」というのがあります。
A, B, C の変数があって,「A を従属変数,C を独立変数とした単回帰の残差」,「B を従属変数,C を独立変数とした単回帰の残差」の相関係数が,C を制御変数とした A と B の偏相関係数になるということです
> set.seed(123)
> A <- rnorm(10)
> B <- sample(10)
> C <- rlnorm(10)
> r.AB <- cor.test(A, B)$estimate # 相関係数
> r.AC <- cor.test(A, C)$estimate
> r.BC <- cor.test(B, C)$estimate
> cat(sprintf("r.AB=%.5f, r.AC=%.5f, r.BC=%.5f\n", r.AB, r.AC, r.BC))
r.AB=0.36448, r.AC=-0.28707, r.BC=0.56066
> resid.AC <- lm(A ~ C)$residuals # 残差
> resid.BC <- lm(B ~ C)$residuals
> cor.test(resid.AC, resid.BC)$estimate # 残差どうしの相関係数
cor
0.6624196
> (r.AB-r.AC*r.BC)/sqrt(1-r.AC^2)/sqrt(1-r.BC^2) # 偏相関係数の定義式 (2)
cor
0.6624196
こ の定義から言っても,変数 A, C,および,変数 B, C が完全に無相関なら,それぞれの単回帰式の係数は 0 となり,従ってそれぞれの従属変数の残差は C の平均値を引いただけのものになり,したがって,その残差どうしの相関係数はもとの変数 A, B の相関係数に等しくなるだけです。
また,偏相関係数を求める公式(2)をみれば,A:C 間の相関係数 r.AB と B:C の相関係数 r.BC が共に 0 のときには,偏相関係数は単に r.AB になるだけであるということがわかるでしょう。なお,蛇足ですが,偏相関係数を求める際の条件は,(2) を見ればわかりますが,制御される変数と残りの変数の相関係数のうちどれか一つでも 1 ならば,偏相関係数は定義されないということです。

> CとDを制御変数としたAとBの偏相関係数を求めるといった分析をする場合,CとDは独立な変数である必要がありますか?

質問したいのは「(3) A:C, A:D, B:C, B:D 間に相関があることが必要で,その上さらに,(4) C:D 間の相関についてはどのような条件が必要か」ということでしょうか。
上述の 3 変数の場合と同じく,(3) の条件は不要です。また,(4) についても不要(何の条件もない)ということです。C:D 間の相関があればそれも調整した偏相関係数になるだけです。

以下を参照してみてください。
http://aoki2.si.gunma-u.ac.jp/lecture/Soukan/partial-corr.html

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