如何在 R 中没有比例优势假设的情况下固定序数逻辑回归中的系数?

机器算法验证 r 回归 物流
2022-03-14 04:20:54

我想在没有比例优势假设的情况下在 R 中进行序数逻辑回归。我知道这可以通过设置直接使用vglm()函数来完成Rparallel=FALSE

但我的问题是如何在这个回归设置中修复一组特定的系数?例如,说因变量Y是离散和有序的,可以取值Y=1,2, 或者3. 如果回归器是X1X2,则回归方程为

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

我想设置β11β221. 请让我知道如何实现这一目标。另外,如果R不能做到这一点,您能否让我知道我是否可以在任何其他统计软件中实现这一点?

1个回答

当他/她说“我不能使用offset,因为它完全从回归中删除了相应的回归量”时,我不确定我是否理解 OP 的意思。您可以使用 R 中的函数修复参数offset()。我在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