多重共線性とスプライン回帰に問題はありますか?


12

自然(制限付き)3次スプラインを使用する場合、作成される基底関数は非常に共線的であり、回帰で使用すると、非常に高いVIF(分散インフレーション係数)統計を生成し、多重共線性を示します。予測のためにモデルのケースを検討している場合、これは問題ですか?スプライン構造の性質により、常にそうなるようです。

Rの例を次に示します。

library(caret)
library(Hmisc)
library(car)
data(GermanCredit)

spl_mat<-rcspline.eval(GermanCredit$Amount,  nk=5, inclx=TRUE) #natural cubic splines with 5 knots

class<-ifelse(GermanCredit$Class=='Bad',1,0) #binary target variable
dat<-data.frame(cbind(spl_mat,class))

cor(spl_mat)

OUTPUT:
              x                              
    x 1.0000000 0.9386463 0.9270723 0.9109491
      0.9386463 1.0000000 0.9994380 0.9969515
      0.9270723 0.9994380 1.0000000 0.9989905
      0.9109491 0.9969515 0.9989905 1.0000000


mod<-glm(class~.,data=dat,family=binomial()) #model

vif(mod) #massively high

OUTPUT:
x         V2         V3         V4 
319.573 204655.833 415308.187  45042.675

更新:

R(およびその他)のHmiscパッケージの作成者であるHarrell博士に連絡し、アルゴリズムが収束(ロジスティック回帰など)し、標準誤差が爆発しない限り(Maartenが以下で述べているように)応答しました。モデルはうまく適合しており、テストセットに最もよく示されているため、この共線性に問題はありません。

さらに、彼は述べた(これは彼の優れた回帰モデル戦略のページ65上に存在するブック)制限三次スプラインなどの代数的な方法で構築された変数間の共線は多重共など問題ではないという場合にのみ、サンプルからサンプルへの共線の変更を重要。


1
生成されたスプラインをいつでも直交化できます(たとえば、rcsgenStataコマンドはGram-Schmidt直交化を使用します)
-boscovich

回答:


7

多重共線性は、そのような関数を推定するときに数値問題を引き起こす可能性があります。これが、制限付き3次スプラインの代わりにBスプライン(またはそのテーマのバリエーション)を使用する理由です。そのため、制限された3次スプラインは、より大きなツールボックスで有用なツールの1つと見なされる傾向があります。


こんにちはマールテン、数値問題を言うとき、収束などを指しますか?回帰が収束し、テストセットでうまくいくように見える場合、状況は問題ではないと結論付けますか?
B_Miner

数値的な問題がある場合、収束の欠如はありそうな(しかし、必要ではない)結果です。非現実的な係数推定値および/または非現実的に高い標準誤差は、他の考えられる結果です。
マールテンビュス

1
QR分解などの方法が非常に役立ちました。ただし、最新のソフトウェアを破壊することはできますが、破壊するのが難しくなっています。
マールテンビュス

1
それは問題ではないかもしれません。ただし、数値の問題がある場合scale=TRUE、R rmsパッケージの一部のフィット関数の引数は、フィットする前にすべての列を標準化し、ユーザーが考慮する必要のない方法でフィット後に係数を非標準化します。
フランクハレル

2
個々の係数や標準誤差をあまり見ないでください。フィット曲線全体を見てください。
フランクハレル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.