Como fixar um coeficiente em uma regressão logística ordinal sem premissa proporcional de probabilidades em R?

11

Eu quero fazer uma regressão logística ordinal em R sem a suposição de probabilidades de proporcionalidade. Eu sei que isso pode ser feito diretamente usando a vglm()função R, definindo parallel=FALSE.

Mas meu problema é como corrigir um conjunto específico de coeficientes nessa configuração de regressão? Por exemplo, digamos que a variável dependente seja discreta e ordinal e possa assumir os valores Y = 1 , 2 ou 3 . Se os regressores são X 1 e X 2 , as equações de regressão sãoYY=123X1X2

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

Eu quero definir e β 22 para 1 . Por favor, deixe-me saber como posso conseguir isso. Além disso, se não puder fazer isso, você também pode me informar se posso conseguir isso em qualquer outro software estatístico?β11β221R

Shanker
fonte
É contínua ou categórica? Nesse último caso, você pode obter algo próximo do que deseja executando a análise estratificada. X1
Peter Flom - Restabelece Monica
Obrigado pela resposta Peter. X1 e X2 são contínuos.
217 Shanker
Então é o ponto, então, que você apenas deseja otimizar o ajuste desse modelo em relação ao alfa?
gung - Restabelece Monica
2
1
1
β11β221R

Respostas:

2

Não sei se entendi o que o OP quis dizer quando disse: "Não posso usar offsetporque remove completamente o regressor correspondente da regressão". Você pode corrigir um parâmetro usando a offset()função em R. Estou usando lm()abaixo, mas deve funcionar no seu modelo também.

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

O parâmetro fixo não aparece na saída, mas ainda é fixado em 2. A seguir, fixarei o xparâmetro no valor estimado no 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 a interceptação fixed2é estimada com o mesmo valor que no freemodelo.

ndoogan
fonte