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


11

我想在R中进行序数逻辑回归,而没有比例赔率假设。我知道可以通过设置vglm()功能直接完成此操作。Rparallel=FALSE

但是我的问题是如何在此回归设置中固定一组特定的系数?例如,假设因变量是离散的和有序和可以取的值,,或3。如果回归变量为X_ {1}X_ {2},则回归方程为ÿÿ=1个23X1个X2

ØG一世ŤPÿ1个=α1个+β11X1个+β12X2ØG一世ŤPÿ2=α2+β21X1个+β22X2

我想将和为。请让我知道如何实现这一目标。另外,如果不能执行此操作,是否还可以让我知道是否可以在任何其他统计软件中实现?β11β221个R


是连续的还是分类的?如果是后者,那么通过运行分层分析,您可能会得到与您想要的东西接近的东西。X1个
彼得·弗洛姆

感谢彼得的答复。X1和X2都是连续的。
Shanker 2012年

那么,您只是想优化该模型在Alpha上的拟合度就可以了吗?
gung-恢复莫妮卡

2
@Shanker,如果要将系数固定为,则在模型中不希望使用它-您只想在方程的右侧添加相应的变量,这就是offset的作用。1个
2012年

1
@Shanker,抱歉-我误读了您的报价“我想将和为 ”β11β221个 -我认为这两个方程式中的这些变量都对应于相同的变量,但事实并非如此。可能有人R在这里为您提供了正确的代码,但是我怀疑不存在这样的代码,并且该问题的答案(您可能不希望听到)是编写适合该模型的自己的代码。这不会很复杂,如果您需要帮助来推导似然方程等,那么您可以考虑将其作为一个单独的问题发布。
2012年

Answers:


2

我不确定我是否理解OP在他/她说“我不能使用,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模型中的值相同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.