Как зафиксировать коэффициент в порядковой логистической регрессии без предположения пропорциональных шансов в R?

11

Я хочу сделать порядковую логистическую регрессию в R без предположения о вероятности пропорциональности. Я знаю, что это можно сделать напрямую, используя vglm()функцию в Rнастройках parallel=FALSE.

Но моя проблема в том, как исправить определенный набор коэффициентов в этой настройке регрессии? Например, допустим, что зависимая переменная является дискретной и порядковой и может принимать значения Y = 1 , 2 или 3 . Если регрессорами являются X 1 и X 2 , то уравнения регрессииYY=123X1X2

logit(P(Y1))=α1+β11X1+β12X2logit(P(Y2))=α2+β21X1+β22X2

Я хочу установить и р 22 к 1 . Пожалуйста, дайте мне знать, как я могу этого достичь. Кроме того, если вы не можете этого сделать, не могли бы вы, пожалуйста, сообщить мне, могу ли я добиться этого в любом другом статистическом программном обеспечении?β11β221R

Шэнкер
источник
Является ли непрерывным или категоричным? Если последнее, то вы можете получить что-то близкое к тому, что вы хотите, запустив стратифицированный анализ. X1
Питер Флом - Восстановить Монику
Спасибо за ответ, Питер. И X1, и X2 непрерывны.
Шанкер
Так значит ли это, что вы просто хотите оптимизировать подгонку этой модели по альфа?
gung - Восстановить Монику
2
1
1
β11β221R

Ответы:

2

Я не уверен, что понимаю, что имел в виду ОП, когда он говорит: «Я не могу использовать, offsetпотому что он полностью удаляет соответствующий регрессор из регрессии». Вы можете исправить параметр, используя offset()функцию R. Я использую lm()ниже, но это должно работать и в вашей модели.

dat  <- data.frame(x=rnorm(30))
dat$y <- dat$x * 2 + rnorm(30) 
free <- lm(y ~ x,dat)
fixed1<- lm(y ~ offset(2 * x),dat)

summary(free)
#Coefficients:
#            Estimate Std. Error t value Pr(>|t|)    
#(Intercept)  0.03899    0.17345   0.225    0.824    
#x            2.17532    0.18492  11.764 2.38e-12 ***

summary(fixed1)
#Coefficients:
#            Estimate Std. Error t value Pr(>|t|)
#(Intercept)  0.05043    0.17273   0.292    0.772

Фиксированный параметр не отображается в выходных данных, но он по-прежнему зафиксирован на уровне 2. Далее я зафиксирую xпараметр в его оценочном значении в freeмодели.

fixed2<- lm(y ~ offset(2.17532 * x),dat)
summary(fixed2)
#Coefficients:
#            Estimate Std. Error t value Pr(>|t|)
#(Intercept)  0.03899    0.17002   0.229     0.82

Обратите внимание, что точка пересечения fixed2оценивается с тем же значением, что и в freeмодели.

ndoogan
источник