在浏览互联网,相关问题并尝试数天而没有任何成功之后,我希望您可以帮助我在R中包含optim()
或polr()
函数。
我想要做的是设置一些约束(系数的下限和/或上限)。如果你有一个如何运作的一般例子,我会非常高兴。
让我们考虑以下虚假和无意义的数据:
set.seed(3)
my.df <- data.frame(id = 1:1000, y = sample(c(1,2,3), 1000, replace = TRUE),
a = rnorm(5000, 1, 0.1), b = rnorm(100, 1.9, 0.5), c = rnorm (10, 0.8, 1.2))
和这样的polr函数:
model <- polr(y ~ a + b + c, method = 'logistic')
我确实得到了c的系数,这是负数(尽管不显着),但我知道它与y是正的关系。因此,我想将它的系数限制为正数,我想我可以用optim()来做到这一点。
我希望包含一些内容:
optim(model, method = "L-BFGS-B", lower = c(a = -1, b = -1, c = 0))
哪个不起作用。
我认为可能有一些选项可以将optim()
函数包含到 polr
函数中使用(对我而言)奥术...
但我不能弄清楚如何。有什么想法吗?
非常感谢,不管你信不信,我真的很努力。