Избежание матрицы сингулярности в регрессии - PullRequest
0 голосов
/ 03 мая 2020

Я хочу запустить квантильную регрессию для следующего многомерного кода (n = 123, p = 945) .. но я получаю сообщение об ошибке, говоря, что матрица дизайна является единственной и не может вычислять. Ниже показано, как я извлек данные с помощью пакета PRIMsr c.

library(PRIMsrc)
data(Real.2)
df<-Real.2
y<-df$y
X<-data.matrix(df[2:946])
library(quantreg)
rq1 = rq(y ~X,tau=1)

Это, похоже, проблема с самими данными, поэтому я попытался добавить некоторый шум в ответ, используя jitter () с базовый пакет, но это не решило проблему. Есть идеи?

1 Ответ

1 голос
/ 03 мая 2020

У вас слишком много переменных, чтобы соответствовать слишком маленьким наблюдениям. Невозможно получить оценку для всех из них. В вашем случае я предлагаю вам попробовать лассо:

library(PRIMsrc)
data(Real.2)
df<-Real.2
y<-df$y
X<-data.matrix(df[2:946])
library(quantreg)
rq1 = rq.fit.lasso(y=y,x=X,tau=0.5)

Коэффициенты можно найти в:

rq1$coefficients

Для прогнозов и т. Д. c, это должно работать нормально. Для выводов, основанных на коэффициентах и ​​т. Д. c, вам может потребоваться больше обдумать

...