Я пытаюсь оценить нелинейную модель кажущихся несвязанными регрессий (SUR) с 5 уравнениями в R
, и я работал над пакетом 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 нелинейных уравнений и больше параметров.
Кто-нибудь может мне помочь, пожалуйста, о том, как выполнить нелинейную оценку SUR с ограничениями в R?
Большое спасибо в заранее.