Hi Zhao, This is not a direct answer to your question, but a suggestion for a different approach. The ordinal package was designed to cope with issues like this (parameter constraints in ordinal regression models) - try the following:
> library(ordinal) > data(wine, package="ordinal") > ## Fit model for reference: > fm1 <- clm(rating ~ temp + contact, data=wine) > # summary(fm1) > coef(fm1) 1|2 2|3 3|4 4|5 tempwarm contactyes -1.344383 1.250809 3.466887 5.006404 2.503102 1.527798 > > ## Now fit the same model by manually optimizing a clm-environment: > env <- clm(rating ~ temp + contact, data=wine, doFit=FALSE) > # ls.str(env) ## view contents of env > ## Define negative log-likelihood function: > nll <- function(par, envir) { + envir$par <- par + envir$clm.nll(envir) + } > ## optimize with nlminb: > nlminb(start=env$par, objective=nll, envir=env)$par [1] -1.344385 1.250812 3.466887 5.006404 2.503102 1.527798 > > # Now optimize under parameter constraints: > nlminb(start=env$par, objective=nll, envir=env, + upper = c(Inf, Inf, Inf, Inf, 2, 1), + lower = rep(-Inf, 6))$par [1] -1.6124363 0.8060461 2.8052591 4.2401832 2.0000000 1.0000000 > Cheers Rune On 26 January 2017 at 20:41, Liu, Zhao <zhao....@fmglobal.com> wrote: > Hi, > > I am working on proportional odds logistic regression, and trying to figure > out how to specify the constraint for several predictors. Those non-negative > constraints for some predictors are for practical purpose. > > I have seen some one posted passing box constraint with L-BFGS-B with > logistic regression. > > What I did not is to use polr() to solve the proportional odds, and modify > the source code for polr() by passing the lower bounds to the optim() and > change the method to L-BFGS-B. > > Then I realized that polr() generate a start value for all coefficients with > glm.fit, which can still start from negative. > > So my question is that does the start value having negative while the > optimization has a lower bound as 0.00001. Does it matter? > > Or is there another way of implementation to solve proportional odds while > forcing some coefficients as non-negative. > > Thanks so much! > > Zhao > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.