No.13235 偏相関係数について  【ナースっす】 2010/08/08(Sun) 18:49

偏相関係数を求めるのにここで公開されているmy.corを使用しているのですが,
時折,
以下にエラー solve.default(r) :
システムは数値的に特異です:条件数の逆数 = 1.24224e-18
と表示されます。これはなぜでしょうか?解説お願いします。

No.13236 Re: 偏相関係数について  【青木繁伸】 2010/08/08(Sun) 20:29

偏相関係数を求めるに当たり,行列の逆行列を求める必要があります。逆行列を求められないときにこのエラーが出ま す。逆行列を求められないのは,データが一次従属であること,わかりやすく言えばある変数が他のいくつかの変数と線形関係にある,たとえば A=B+C のような場合(A≒B+C のような場合を含む)。また,データ組数(n)より変数の個数が多いような場合。特に後者は,データ解析における常識に反している場合ですね。
> d1 <- data.frame(a=rnorm(5), b=rnorm(5))
> d1$c <- rowSums(d1)
> print(d1) # c=a+b の関係がある
a b c
1 0.3326217 -0.8915216 -0.5588998
2 0.2306336 0.9183412 1.1489748
3 -1.6918624 -0.4527006 -2.1445631
4 0.6597919 -1.7483723 -1.0885804
5 -1.0236236 1.7699041 0.7462805
> my.cor(d1)
以下にエラー solve.default(r) :
システムは数値的に特異です:条件数の逆数 = 1.8398e-17
> (d2 <- as.data.frame(matrix(rnorm(12), 3))) # データ数より変数の数の方が多い
V1 V2 V3 V4
1 -2.3774069 -0.6309679 1.0406232 0.9159921
2 0.5728115 0.4442871 0.4840994 0.8006224
3 1.0172492 0.4391304 -0.2448838 -0.9365690
> my.cor(d2)
以下にエラー solve.default(r) :
システムは数値的に特異です:条件数の逆数 = 1.1969e-17
このいずれにも該当しない場合,そのデータを提示してみてください。

No.13299 Re: 偏相関係数について  【ナースっす】 2010/08/21(Sat) 00:32

どうも一次従属になっていたようです。
ありがとうございました。

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