No.08541 非線形回帰における多重共線性  【eruza】 2008/12/06(Sat) 17:49

お世話になっております。

 非線形回帰において,多重共線性が発生していると判断する方法としては,単に相関係数を見る以外に,どのような方法があるか,ご教授いただければ幸いです。
 そもそも,非線形モデルを最尤法推定している場合,多重共線性は問題となるのでしょうか?初心者のため,的外れな質問かもしれませんが,お教えいただければ幸いです。

No.08542 Re: 非線形回帰における多重共線性  【青木繁伸】 2008/12/06(Sat) 20:10

multicollinearity というくらいですから,本来は線形関係のことをいうのでしょうね。
非線形でも,相関が高いの低いのというのは,線形関係を基準として言っているわけではありますが。

No.08548 Re: 非線形回帰における多重共線性  【eruza】 2008/12/08(Mon) 14:57

青木 先生

 ご回答いただき,ありがとうございます。非線形モデルを最尤法推定しようとしている のですが,その際,相関の高い2つの独立変数のうち,どちらか一方をモデルから落とすべきか悩んでおりました。非線形モデルの場合は,そのような処理を行 う必要はないと判断してもよろしいということでしょうか?
 逆に,線形モデルの場合で,vifの値が高いような独立変数は,モデルから落とす方が よろしいでしょうか?真のモデルを,両方の独立変数が含まれているものと想定している場合に,多重共線性の発生を理由に,1つの独立変数をモデルから落と すということに,若干の抵抗を感じるのですが,そのような場合の対処法について,ご意見等をお聞かせいただければ幸いでございます。

No.08558 Re: 非線形回帰における多重共線性  【青木繁伸】 2008/12/08(Mon) 17:03

予測をするというようなときには,多重共線性のことなどお構いなしという流儀もあるようですよ。

No.08559 Re: 非線形回帰における多重共線性  【eruza】 2008/12/08(Mon) 17:55

青木先生

貴重なご意見,ありがとうございました。とても助かりました。参考にさせていただきます。

No.08592 Re: 非線形回帰における多重共線性  【kai】 2008/12/10(Wed) 18:49

非線形回帰は実務では今のところ使用したことがありませんが,使う可能性があるのでこの問題は興味があります.

SASでは非線形回帰を実行したときAsymptotic Correlation Matrix(漸近的相関行列?)というもので多重共線性を検証できるようです.

http://koko15.hus.osaka-u.ac.jp/~takai/StudyArchive/Nlin2.pdf

No.08595 Re: 非線形回帰における多重共線性  【青木繁伸】 2008/12/10(Wed) 19:15

33ページにある Asymptotic Correlation Matrix は,R では以下のようにして計算できます
> (d <- data.frame(time=seq(0, 60, by=10), temp=c(98, 54, 32, 25, 23, 22, 21)))
time temp
1 0 98
2 10 54
3 20 32
4 30 25
5 40 23
6 50 22
7 60 21
> ans <- nls(temp ~ A+B*exp(-C*time), data=d, start=list(A=20, B=80, C=0.08))
> summary(ans)

Formula: temp ~ A + B * exp(-C * time)

Parameters:
Estimate Std. Error t value Pr(>|t|)
A 20.415478 0.820301 24.89 1.55e-05 ***
B 77.905557 1.421098 54.82 6.63e-07 ***
C 0.088821 0.004164 21.33 2.86e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.259 on 4 degrees of freedom

Number of iterations to convergence: 4
Achieved convergence tolerance: 3.336e-06

> v <- vcov(ans)
> s <- sqrt(diag(v))
> (AsymptoticCorrelationMatrix <- v / s%o%s)
A B C
A 1.0000000 -0.4877992 0.6996291
B -0.4877992 1.0000000 -0.1039234
C 0.6996291 -0.1039234 1.0000000

No.08600 Re: 非線形回帰における多重共線性  【kai】 2008/12/11(Thu) 08:36

JMPでは推定値の相関に出力されました.Rと同じ結果になってますね.

VIFは10以上がだめという目安があります.
こちらの相関係数は1,-1に近いとだめということですが,どれくらいまで許されるんでしょうね?


No.08601 Re: 非線形回帰における多重共線性  【青木繁伸】 2008/12/11(Thu) 10:00

VIFは重回帰分析のときの,独立変数の相関係数行列の逆行列の対角成分
Asymptotic Correlation Matrix は,パラメータ間の相関係数行列だが,パラメータはモデル式においては重回帰分析の独立変数に相当。ということで,VIFに相当するものは,
> (VIF <- diag(solve(AsymptoticCorrelationMatrix)))
A B C
2.973208 1.534452 2.290476
になるのだと推測します。どうでしょうか?

No.08602 Re: 非線形回帰における多重共線性  【kai】 2008/12/11(Thu) 10:48

Rが使えないので,EXCELのMINVERSE関数で計算しました.

2.9730 1.2476 -1.9503
1.2476 1.5345 -0.7134
-1.9503 -0.7134 2.2903

質 問者の方の想定している[非線形回帰における多重共線性]とはこのデータでいうところのtimeのような変数が2つ以上ある場合のことを想定しているのか なと考えていましたが,非線形ではこのような変数は1つしか使わないようですね(私が持っている本ではどれも1つしか使っていません)

非線形回帰のパラメータはモデル式においては重回帰分析の独立変数に相当するというところがまだ完全には理解できていませんが,非線形の回帰診断項目が一つわかりましたので勉強になりました.

No.08603 Re: 非線形回帰における多重共線性  【kai】 2008/12/11(Thu) 11:08

すみません.
変数が2つ以上あっても非線形で解が求められますね...

相関が少し高い(0.7ぐらい)の2つの変数で非線形のあてはめを行ったら,Asymptotic Correlation Matrix の逆行列の対角線が異常に高い値になりました...

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