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.

Reply via email to