ошибка при выполнении резюме polr в r - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь сделать модель логистической регрессии с пропорциональными коэффициентами в форме:

dsnac <- polr (формула = DS1 ~ AC1, data = pddat1, method = c ("logistic"))dsnac) </p>

Регрессия прошла нормально, однако, когда я реализую функцию сводки, я получаю ошибку:

svd (X): бесконечные или отсутствующие значения в 'x'

Я проверил, есть ли какие-либо пропущенные значения в столбце «AC1» (при условии, что AC1 равен «x», как указано в ошибке), но нет пропущенных значений.Диапазон AC1 составляет от 1,3 до 170000. DS1 - это фактор с уровнями 0,1 и 2.

Было бы очень полезно, если бы кто-то мог помочь мне в этом.Спасибо

Воспроизводимый пример:

pddat1 <- data.frame(cbind(DS1=c(rep(0,400),rep(1,60),rep(2,40)),
                           AC1=runif(500,1,170000)))
pddat1$DS1 <- as.factor(pddat1$DS1)
dsnac <- polr(formula=DS1~AC1, data = pddat1, method=c("logistic")) 

summary(dsnac)

1 Ответ

0 голосов
/ 15 ноября 2018

Простое преобразование решило проблему. SVD (X) относится к разложению ковариатной матрицы по сингулярному значению.

dsnac <- polr(DS1~scale(AC1) , data = pddat1, method=c("logistic")) 
summary(dsnac)

Однако это как-то связано с вашими данными. Вызов функции clm из порядкового пакета приводит к тем же выводам с предупреждением, например, «Модель почти неопознаваема: очень большое собственное значение - Масштабировать переменные?»

library(ordinal)
dsnac <- clm(as.factor(DS1) ~ AC1, data=pddat1)
summary(dsnac)

Если вы уменьшите максимальное значение в команде runif, все будет нормально

pddat1 <- data.frame(cbind(DS1=factor(c(rep(0,400),rep(1,60),rep(2,40))),
                           AC1=runif(500,1,15)))
str(pddat1)
pddat1$DS1 <- as.factor(pddat1$DS1)
dsnac <- polr(DS1 ~ AC1, data = pddat1, method=c("logistic")) 
summary(dsnac)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...