there are ways to implement constraints on parameter estimates in ordinal logistic regression in R. Here are a few approaches:
The rms package (Regression Modeling Strategies) by Frank Harrell offers the lrm function which can handle constraints through its penalty parameter, though it's primarily designed for regularization. For more flexible constraints, you can use the constrOptim or optim functions from base R along with a custom likelihood function for ordinal logistic regression. The VGAM package provides the vglm function with family cumulative that can handle certain types of constraints. For Bayesian approaches, you can use brms or rstan to impose informative priors that effectively constrain parameters. Here's a simple example using the VGAM package: > library(VGAM) > library(foreign) > > # Load data > dat <- foreign::read.dta("https://stats.idre.ucla.edu/stat/data/ologit.dta") > > # Unconstrained model (for comparison) > model_unconstrained <- vglm(apply ~ pared + public + gpa, > family = cumulative(parallel = TRUE), > data = dat) > summary(model_unconstrained) > > # Constrained model (example: constraining pared coefficient to be positive) > # This uses the "constraint" matrix approach > constraint <- rbind( > c(0, 1, 0, 0), # This row corresponds to pared coefficient > c(0, 0, 0, 0), # These rows do nothing (identity constraints for other > parameters) > c(0, 0, 0, 0) > ) > model_constrained <- vglm(apply ~ pared + public + gpa, > family = cumulative(parallel = TRUE), > constraints = constraint, > data = dat) > summary(model_constrained) For more complex constraints, you might need to work with optimization functions directly. r/ Gregg On Tuesday, April 8th, 2025 at 11:20 AM, Christofer Bogaso <bogaso.christo...@gmail.com> wrote: > > > Hi, > > I have below fit with ordinal logistic regression > > dat = foreign::read.dta("https://stats.idre.ucla.edu/stat/data/ologit.dta") > > summary(MASS::polr(formula = apply ~ pared + public + gpa, data = dat)) > > However, instead of obtaining unconstrained estimates of model > parameters, I would like to impose certain constraints on each of the > model parameters, based on some non-sample information. > > Is there any R function to estimate model coefficients with imposing > some unser-defined constraints on the model parameters? > > Any pointer will be very helpful. > > ______________________________________________ > 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 https://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.
signature.asc
Description: OpenPGP digital signature
______________________________________________ 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 https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.