Come fissare un coefficiente in una regressione logistica ordinale senza ipotesi di probabilità proporzionale in R?


11

Voglio fare una regressione logistica ordinale in R senza l'assunzione delle probabilità di proporzionalità. So che questo può essere fatto direttamente usando la vglm()funzione Rimpostando parallel=FALSE.

Ma il mio problema è come risolvere un particolare insieme di coefficienti in questa configurazione di regressione? Ad esempio, supponiamo che la variabile dipendente sia discreta e ordinale e possa assumere valori , 2 o 3 . Se i regressori sono X_ {1} e X_ {2} , le equazioni di regressione lo sonoY = 1 2 3 X 1 X 2YY=123X1X2

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

Voglio impostare β11 e β22 su 1 . Per favore fatemi sapere come posso raggiungere questo obiettivo. Inoltre, se Rnon puoi farlo, potresti farmi sapere se posso farlo in qualsiasi altro software statistico?


è continuo o categorico? In quest'ultimo caso, potresti ottenere qualcosa di simile a quello che desideri eseguendo un'analisi stratificata. X1
Peter Flom - Ripristina Monica

Grazie per la risposta Peter. Sia X1 che X2 sono continui.
Shanker,

Quindi il punto è che vuoi solo ottimizzare l'adattamento di questo modello alfa?
gung - Ripristina Monica

2
@Shanker, se vuoi fissare il coefficiente a , allora non lo vuoi nel modello: vuoi solo aggiungere la variabile corrispondente sul lato destro dell'equazione, che è ciò che fa l'offset. 1
Macro

1
@Shanker, scusa, ho letto male la tua frase "Voglio impostare e su "β11β221 - Ho pensato che corrispondessero alla stessa variabile in entrambe le equazioni, ma vedo che non è così. Qualcuno potrebbe avere il Rcodice giusto per aiutarti qui, ma sospetto che non esista tale codice e la risposta alla domanda (che potresti non voler sentire), è scrivere il tuo codice per adattarlo a questo modello. Questo non sarebbe terribilmente complicato e se hai bisogno di aiuto per derivare le equazioni di probabilità, ecc., Potresti considerare di postarlo come una domanda separata.
Macro

Risposte:


2

Non sono sicuro di capire cosa significasse l'OP quando dice "Non posso usare offsetperché rimuove completamente il regressore corrispondente dalla regressione". Puoi correggere un parametro usando la offset()funzione in R. Sto usando di lm()seguito, ma dovrebbe funzionare anche nel tuo modello.

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

Il parametro fixed non viene visualizzato nell'output, ma è ancora fisso su 2. Successivamente riparerò il xparametro sul valore stimato nel freemodello

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

Si noti che l'intercetta in fixed2è stimata con lo stesso valore del freemodello.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.