как наложить ограничения на оценку параметров в R?

Я устанавливаю модель logit на R с помощью пакета mlogit. Все параметры фиктивных переменных (var1, var2, var3) имеют нормальное распределение. Как я могу наложить ограничение на одну переменную (var1), чтобы сделать ее параметр равным нулю? Текущий код возвращает ненулевое среднее значение для var1. Спасибо!

model <- mlogit(outcome ~ var1 + var2 + var3 | 0 , 
                 data=data, 
                 rpar = c(var1 = "n",
                          var2 = "n",
                          var3 = "n"), 
                 correlation = FALSE, 
                 R = 100, 
                 halton = NA)

Я знаю, что в STATA относительно легко наложить ограничения на параметры. для моей модели мой код в STATA:

constraint 1 _b[var1]=0
mixlogit  choice var1 var2 var3, group(qid) id(id) constraint(1)

Я просто хочу знать, как сделать то же самое в R. Спасибо!


person JustinMS    schedule 12.06.2018    source источник


Ответы (1)


на основе пакета gmnl мы можем ограничить оценку с помощью maxLik. На этот вопрос

A <- matrix (c(1,0,0,0,0,0, -1,0,0,0,0,0))
B <- matrix (c(0, 0))

model <- gmnl(outcome ~ var1 + var2 + var3 | 0 , 
                 data=data, 
                 rpar = c(var1 = "n",
                          var2 = "n",
                          var3 = "n"), 
                 constraints = list (eqA=A, eqB=B),
                 model = "mixl",
                 correlation = FALSE, 
                 R = 100, 
                 halton = Null)

Ограничения в математике

1* mean(var1) + 0*mean(var2) + 0*mean(var3) + 0*sd(var1) + 0*sd(var2) > + 0*sd(var3) = 0;

и

-1* mean(var1) + 0*mean(var2) + 0*mean(var3) + 0*sd(var1) + 0*sd(var2) + 0*sd(var3) = 0

так что среднее значение var1 должно быть 0 в оценке.

person JustinMS    schedule 11.08.2018