¿Cómo fijar un coeficiente en una regresión logística ordinal sin suposición de probabilidades proporcionales en R?

11

Quiero hacer una regresión logística ordinal en R sin el supuesto de proporcionalidad. Sé que esto se puede hacer directamente usando la vglm()función Rconfigurando parallel=FALSE.

Pero mi problema es cómo solucionar un conjunto particular de coeficientes en esta configuración de regresión. Por ejemplo, supongamos que la variable dependiente es discreta y ordinal y puede tomar valores , o . Si los regresores son y , entonces las ecuaciones de regresión sonYY=123X1X2

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

Quiero establecer y en . Por favor, hágame saber cómo puedo lograr esto. Además, si no puede hacer esto, ¿podría decirme si puedo lograr esto en cualquier otro software estadístico?β11β221R

Shanker
fuente
¿ es continuo o categórico? Si es lo último, entonces podría obtener algo cercano a lo que desea al ejecutar un análisis estratificado. X1
Peter Flom - Restablece a Monica
Gracias por la respuesta Peter. Tanto X1 como X2 son continuos.
Shanker
Entonces, ¿el punto es que solo quieres optimizar el ajuste de este modelo sobre alfa?
gung - Restablece a Monica
2
@Shanker, si desea fijar el coeficiente en , entonces no lo quiere en el modelo, solo desea agregar la variable correspondiente al lado derecho de la ecuación, que es lo que hace el desplazamiento. 1
Macro
1
@Shanker, lo siento. Leí mal su cita "Quiero establecer y en " β 22 1β11β221 . Pensé que correspondían a la misma variable en ambas ecuaciones, pero puedo ver que ese no es el caso. Alguien puede tener el Rcódigo correcto para ayudarlo aquí, pero sospecho que no existe dicho código y la respuesta a la pregunta (que es posible que no quiera escuchar), es escribir su propio código para que se ajuste a este modelo. Esto no sería terriblemente complicado y si necesita ayuda para derivar las ecuaciones de probabilidad, etc., entonces puede considerar publicar eso como una pregunta separada.
Macro

Respuestas:

2

No estoy seguro de entender lo que quiso decir el OP cuando dice "No puedo usar offsetporque elimina completamente el regresor correspondiente de la regresión". Puede corregir un parámetro usando la offset()función en R. Estoy usando a lm()continuación, pero también debería funcionar en su modelo.

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

El parámetro fijo no aparece en la salida, pero aún está fijo en 2. A continuación, fijaré el xparámetro a su valor estimado en el freemodelo.

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

Observe que la intersección en fixed2se estima con el mismo valor que en el freemodelo.

ndoogan
fuente