Есть ли проблема с мультиколлинеарностью и регрессией сплайнов?

12

При использовании естественных (то есть ограниченных) кубических сплайнов созданные базовые функции являются в высокой степени коллинеарными, и при использовании в регрессии, по-видимому, они дают очень высокую статистику 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 его превосходной книги « Стратегии регрессионного моделирования» ), что коллинеарность между переменными, построенными алгебраическим образом, такими как ограниченные кубические сплайны, не является проблемой, поскольку мультиколлинеарность имеет значение только тогда, когда эта коллинеарность изменяется от образца к образцу.

B_Miner
источник
1
Вы всегда можете ортогонализировать сгенерированные сплайны (например, команда rcsgenStata использует ортогонализацию Грамма-Шмидта)
boscovich

Ответы:

7

Мультиколлинеарность может привести к численным проблемам при оценке такой функции. Вот почему некоторые используют B-сплайны (или вариации на эту тему) вместо ограниченных кубических сплайнов. Итак, я склонен видеть ограниченные кубические сплайны как один потенциально полезный инструмент в большем наборе инструментов.

Мартен Буис
источник
Привет, Мартен, когда ты говоришь о численных проблемах, ты имеешь в виду конвергенцию или что-то подобное? Если регрессия сошлась и, кажется, преуспевает на тестовом наборе - считаете ли вы, что ситуация не является проблемой?
B_Miner
Если существуют численные проблемы, то отсутствие сходимости является вероятным (но не обязательным) следствием. Нереалистичные оценки коэффициентов и / или нереально высокие стандартные ошибки являются другими возможными последствиями.
Мартен Буис
1
Такие методы, как QR-разложение, очень помогли. Тем не менее, вы все еще можете сломать современное программное обеспечение, это стало труднее сделать.
Мартен Буис
1
Это не может быть проблемой. Но если существует численная проблема, scale=TRUEаргумент для некоторых из функций подгонки в rmsпакете R будет стандартизировать все столбцы перед подгонкой и нестандартные коэффициенты после подгонки так, что пользователю не нужно учитывать.
Фрэнк Харрелл
2
Не смотрите на индивидуальные коэффициенты и стандартные ошибки. Посмотрите на всю подогнанную кривую.
Фрэнк Харрелл