我正在尝试通过R
中的5个方程式来估计一个非线性的看似无关的回归(SUR)模型,而我正在研究软件包systemfit
。一切顺利,直到需要对我的方程式设置一些限制为止。使用软件包systemfit
,函数nlsystemfit()
适用于非线性方程。但是restrict.matrix
不允许使用选项/参数nlsystemfit()
(它对函数systemfit()
中的线性方程式有效。)>
一个简化的例子是(我认为此处显示的数据无关紧要):
EQ_1 <- Y1 ~ (c1 - x)*Q + c11*G11 + c12*G12 + c13*G13 EQ_2 <- Y2 ~ (c2 - x)*Q + c21*G11 + c22*G12 + c23*G13 EQ_3 <- Y3 ~ (c3 - x)*Q + c31*G11 + c32*G12 + c33*G13 start.values <- c(c1 = 0,c2= 0,c3 = 0, c11 = 0,c12 = 0,c13 = 0, c21 = 0,c22 = 0,c23 = 0, c31 = 0,c32 = 0,c33 = 0) model <- list(EQ_1 ,EQ_2 ,EQ_3) model.sur <- nlsystemfit(method = "SUR", eqns = model, startvals = start.values, data = as.data.frame(dat))
到目前为止,估算效果很好。但是现在,我需要设置以下约束:
Rest_1 <- c11 + c12 + c13 = 0 Rest_2 <- c21 + c22 + c23 = 0 Rest_3 <- c31 + c32 + c33 = 0 Rest_4 <- c1 + c2 + c3 = -1
显然,这里的模型是线性的,带有3个方程,但这是因为我正在尝试简化这个想法。但是当前模型有5个非线性方程和更多参数。
任何人都可以指导我有关如何在R中限制执行非线性SUR估算?
非常感谢。
我正在尝试使用R中的5个方程式来估计一个非线性的看似无关的回归(SUR)模型,并且我正在研究package systemfit。一切顺利,直到需要设置一些...
经过几个小时的研究并打扰了一些人,我意识到我的问题的答案非常明显(对于更有经验的人,不是我)。因此,我回答了我的问题,以帮助与我处于同一职位的其他人。