При використанні природних (тобто обмежених) кубічних сплайнів базові функції, створені вкрай колінеарними, і при використанні в регресії, здається, створюють дуже високу статистику 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
ОНОВЛЕННЯ:
Я звернувся до доктора Харрелла, автора пакету Hmisc в R (та інших), і він відповів, що поки алгоритм не сходиться (наприклад, логістична регресія) і стандартні помилки не вибухнули (як Маартен сказав нижче) - і модель добре підходить, найкраще показана на тестовому наборі, тоді з цією колінеарністю немає жодних проблем.
Крім того, він заявив (і це є на стор. 65 його чудової книги " Регресійне моделювання стратегій" ), що колінеарність між змінними, побудованими алгебраїчно, як обмежені кубічні сплайни, не є проблемою, оскільки мультиколінеарність має значення лише тоді, коли ця колінеарність змінюється від зразка до зразка.
rcsgen
Stata використовує ортогоналізатор Грам-Шмідта)