自然(制限付き)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上に存在するブック)制限三次スプラインなどの代数的な方法で構築された変数間の共線は多重共など問題ではないという場合にのみ、サンプルからサンプルへの共線の変更を重要。
rcsgen
StataコマンドはGram-Schmidt直交化を使用します)