0
votes

I am fitting a logit model on R using mlogit package. All the parameters of the dummy variables (var1, var2, var3) are normally distributed. How can I put a constraint on one variable (var1) to make its parameter zero-mean? The current code returns a non-zero mean for var1. Thanks!

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

I know it is relatively easy in STATA to put constraints on parameters. for my model, my code in STATA is:

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

I just want to know how to do the same thing in R. Thanks!

1

1 Answers

0
votes

based on gmnl package, we can constrain the estimation using maxLik. For this question,

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)

The constraints mean in math

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

and

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

so that the mean of var1 has to be 0 in the estimation.