квантильная регрессия + фиктивная переменная

Я использовал пакет quantreg в R для вычисления модели квантильной регрессии. В модели зависимая переменная (Y) - это NAS_DELAY, а независимая переменная (Xs) - это SEANSON1TO4, SEANSON2TO4, SEANSON3TO4.
Модель:

NAS_DELAY=aSEANSON1TO4+bSEANSON2TO4+cSEANSON3TO4+d

_7 _, _ 8 _, _ 9_ - фиктивные переменные, 0 или 1. Я использую R для вычисления точки пересечения и другого коэффициента регрессии, но результат показал, что

"ошибка в матрице единственного плана rq.fit.br (x, y, tau = tau, ....); дополнительно: Предупреждающие сообщения 1: in summary.rq (xi, ....): 278951 non-positivr fis ".

Я не могу понять почему.

"fit2<-summary(rq(NAS_DELAY ~SEASON1TO4+SEASON2TO4+SEASON3TO4,tau=c(0.1,0.2,0.3,0.4,0.5),data=fddata))
Error in base::backsolve(r, x, k = k, upper.tri = upper.tri, transpose = transpose,  :   singular matrix in 'backsolve'. First zero in diagonal [1]"
In addition: Warning messages:
1: In rq.fit.br(x, y, tau = tau, ...) : Solution may be nonunique
2: In rq.fit.br(x, y, tau = tau, ...) : Solution may be nonunique
3: In rq.fit.br(x, y, tau = tau, ...) : Solution may be nonunique
4: In rq.fit.br(x, y, tau = tau, ...) : Solution may be nonunique
5: In rq.fit.br(x, y, tau = tau, ...) : Solution may be nonunique
6: In summary.rq(xi, ...) : 188771 non-positive fis

Что я делаю неправильно?


person shitong    schedule 28.10.2014    source источник


Ответы (2)


Из-за созданных факторов в вашем наборе данных матричная композиция сингулярна.

См. Объяснения сингулярности: здесь, здесь и здесь. По существу, Quantreg зависит от инвертирования матрицы данных, а из-за формы факторов матрица необратима.

Если у вас достаточно данных / если это имеет смысл для ваших данных, этот поток указывает на некоторые возможные решения, если они подходят для ваших данных.

person AzadA    schedule 07.05.2015

У меня была лишь частично такая же проблема, но это могло кому-то помочь. Я пытался:

myFactor <- as.factor(myData$myVariable)
myDummies = model.matrix(~myFactor)
summary.rq(q <- rq(myTarget ~ myOtherPredictor1+myOtherPredictor2+myDummies))

Это привело к Error in rq.fit.br(x, y, tau = tau, ...) : Singular design matrix

Однако выполнение
summary.rq(q <- rq(myTarget ~ myOtherPredictor1+myOtherPredictor2+myFactor))

Ошибок не выдавал. Преобразование в пустышки перед вызовом rq может быть проблематичным, когда есть и другие предикторы.

person mikki    schedule 20.02.2019