Multilevel quantile regression

Ryan Seals writes:

I’m an epidemiologist at Emory University, and I’m working on a project of release patterns in jails (basically trying to model how long individuals are in jail before they’re release, for purposes of designing short-term health interventions, i.e. HIV testing, drug counseling, etc…). The question lends itself to quantile regression; we’re interested in the # of days it takes for 50% and 75% of inmates to be released. But being a clustered/nested data structure, it also obviously lends itself to multilevel modeling, with the group-level being individual jails.

So: do you know of any work on multilevel quantile regression? My quick lit search didn’t yield much, and I don’t see any preprogrammed way to do it in SAS.

My reply:

To start with, I’m putting in the R keyword here, on the hope that some readers might be able to refer you to an R function that does what you want. Beyond this, I think it should be possible to program something in Bugs. In ARM we have an example of a multilevel ordered logit, which doesn’t sound so different from what you’re doing. I’ve never done a full quantile regression, but I imagine that you have to take some care in setting up the distributional form.

To start, you could fit some multilevel logistic regressions using different quantiles as cut-off points and plot your inferences to see generally what’s going on.

6 thoughts on “Multilevel quantile regression

  1. If you want something out of the box, this won't do, but you might want to check out Flexible Bayesian Quantile Regression for Independent and Clustered Data. If you just Google for it, you can find a pre-print version.

  2. At a suggestion, I'd say you may need to define your terms a bit better.

    "Jail" typically is a short-term/pre-trial holding, as run by counties. Prisons and penitentiaries are typically run as post-trial/conviction by state and federal governments.

    And some people technically are jail inmates for a matter of minutes; you can be booked into jail on, say, a charge of writing a bad check, pay a fine of some hundreds of dollars, and be released quickly. Other people can pay bail for more serious charges, such as burglary.

    So right off the top you may need to clean your data, e.g., get rid of everyone who spent less than, say, 2 days in jail.

    Depending on the format of data you get it in, it may make more sense to crunch the numbers in SQL. I previously have used SQL to look at delays in women returning for biopsies after getting mammograms; not sure if I still have that code hanging around.

  3. You may want to look at the SGP package written by Damian Betebenner (you can find it in the normal place at CRAN). It was written with a different goal in mind, but some of the ideas may be of interest.

Comments are closed.