[R] multinomial logistic regression with equality constraints?

Roger Levy rlevy at ucsd.edu
Sun Feb 4 01:55:51 CET 2007


Many thanks for pointing this out to me!

I'm still a bit confused, however, as to how to use multinomRob.  For 
example I tried to translate the following example using nnet:


x1 <- c(1,1,1,1,0,0,0,0,0,0,0,0)
x2 <- c(0,0,0,0,1,1,1,1,0,0,0,0)
y <- factor(c("a","b","b","c","a","b","c","c","a","a","b","c"))
library(nnet)
d <- data.frame(x1,x2,y)
summary(multinom(y ~ x1 + x2, data=d))


into multinomRob as follows:


x1 <- c(1,1,1,1,0,0,0,0,0,0,0,0)
x2 <- c(0,0,0,0,1,1,1,1,0,0,0,0)
y <- factor(c("a","b","b","c","a","b","c","c","a","a","b","c"))
y1 <- ifelse(y=="a",1, 0)
y2 <- ifelse(y=="b", 1, 0)
y3 <- ifelse(y=="c", 1, 0)
d <- data.frame(x1,x2,y,y1,y2,y3)
summary(multinomRob(list(y1 ~ x1 + x2,y2 ~ x1 + x2, y3 ~ x1 + x2),data=d))

but the last command gives me the error message:


[1] "multinomMLE: Hessian is not positive definite"
Error in obsformation %*% opg : non-conformable arguments


though it's not obvious to me why.  I also tried a couple other variants:


 > summary(multinomRob(list(y1 ~ 0,y2 ~ x1 + x2,y3 ~ x1 + x2),data=d))
Error in multinomT(Yp = Yp, Xarray = X, xvec = xvec, jacstack = 
jacstack,  :
         (multinomT): invalid specification of Xarray (regressors not 
allowed for last category
 > summary(multinomRob(list(y1 ~ 0,y2 ~ x1 ,y3 ~ x2),data=d))
Error in multinomT(Yp = Yp, Xarray = X, xvec = xvec, jacstack = 
jacstack,  :
         (multinomT): invalid specification of Xarray (regressors not 
allowed for last category


Any advice would be much appreciated!


Many thanks,

Roger

Walter Mebane wrote:
> By default, with print.level=0 or greater, the multinomRob program
> prints the maximum likelihood estimates with conventional standard
> errors before going on to compute the robust estimates.
> 
> Walter Mebane
> 
> Jasjeet Singh Sekhon writes:
>  > 
>  > Hi Roger,
>  > 
>  > Yes, multinomRob can handle equality constraints of this type---see
>  > the 'equality' option.  But the function assumes that the outcomes are
>  > multinomial counts and it estimates overdispersed multinomial logistic
>  > models via MLE, a robust redescending-M estimator, and LQD which is
>  > another high breakdown point estimator.  It would be a simple matter
>  > to edit the 'multinomMLE' function to work without counts and to do
>  > straight MNL instead, but right now it estimates an overdispersed MNL
>  > model.
>  > 
>  > Cheers,
>  > Jas.
>  > 
>  > =======================================
>  > Jasjeet S. Sekhon                     
>  >                                       
>  > Associate Professor             
>  > Travers Department of Political Science
>  > Survey Research Center          
>  > UC Berkeley                     
>  > 
>  > http://sekhon.berkeley.edu/
>  > V: 510-642-9974  F: 617-507-5524
>  > =======================================
>  > 
>  > 
>  > 
>  > Roger Levy writes:
>  >  > I'm interested in doing multinomial logistic regression with equality 
>  >  > constraints on some of the parameter values.  For example, with 
>  >  > categorical outcomes Y_1 (baseline), Y_2, and Y_3, and covariates X_1 
>  >  > and X_2, I might want to impose the equality constraint that
>  >  > 
>  >  >    \beta_{2,1} = \beta_{3,2}
>  >  > 
>  >  > that is, that the effect of X_1 on the logit of Y_2 is the same as the 
>  >  > effect of X_2 on the logit of Y_3.
>  >  > 
>  >  > Is there an existing facility or package in R for doing this?  Would 
>  >  > multinomRob fit the bill?
>  >  > 
>  >  > Many thanks,
>  >  > 
>  >  > Roger
>  >  > 
>  >  > 
>  >  > -- 
>  >  > 
>  >  > Roger Levy                      Email: rlevy at ucsd.edu
>  >  > Assistant Professor             Phone: 858-534-7219
>  >  > Department of Linguistics       Fax:   858-534-4789
>  >  > UC San Diego                    Web:   http://ling.ucsd.edu/~rlevy
>  >  > 
>  >  > 
>



More information about the R-help mailing list