Consider a case where instead of observing actual variable values, we are observing variable range. The possible range-values could be enumerated (i.e. could be a fixed set of values, for e.g. fixed age-group ranges) or could be observation specific (and might overlap).

In the former case, the variable could be treated as an ordinal variable. (Based on @whuber's comments, treating this variable as an ordinal variable seems an unnecessary restriction). Is anything similar possible for the latter case? Are there any other methods to analyze such data?

I am interested in general treatment for analyzing interval data variables - as an output variable as well as an input variable to a model. Also, if there are any exploratory data analysis methods for such variables.

  • $\begingroup$ Could you expand on what you mean by "observe" a range? Making multiple observations and recording only their range may be conceptualized, modeled, and analyzed differently than, say, making a single observation of an interval value (as occurs in many kinds of censoring, for instance or in recording binned values like age groups). I find your suggestion to treat (possibly overlapping) ranges as "ordinal variables" to be particularly confusing because I see neither how it would be done nor what, if any, advantage it might have for data analysis. $\endgroup$
    – whuber
    Jul 22, 2013 at 20:02
  • 1
    $\begingroup$ @whuber, I meant observing an interval value, similar to age-groups one can have salary-ranges and here, I am assuming the ranges to be non-overlapping (and hence treating them as ordinal). The other case where range values are observation specific, I meant the end values are decided by the user and hence may or may not overlap. I am sorry for not being able to put this succinctly. Let me know if this is now clear. $\endgroup$
    – steadyfish
    Jul 22, 2013 at 20:19
  • 1
    $\begingroup$ Your second case often is fundamentally different from the first: there may be an association between the endpoints chosen by the user and other variables; this possibility should be part of the modeling and the analysis. Such situations also occur when variables are binned in a post hoc manner based on their values. At a minimum that causes a loss of "degrees of freedom" in statistical tests. In your first case, I still see no good reason to recommend treating binned values as ordinal solely because they are binned. $\endgroup$
    – whuber
    Jul 22, 2013 at 20:27
  • $\begingroup$ Are you looking for ordinal regression, or is that too obvious? en.wikipedia.org/wiki/Ordinal_regression $\endgroup$ Jul 23, 2013 at 7:34
  • 1
    $\begingroup$ I we may have different conceptions of what an "ordinal" variable is. When data are binned or otherwise expressed as intervals, that does not necessarily make them ordinal: it merely limits their precision. Not only can such data still be compared (provided their ranges do not overlap), but the values represented by the ranges maintain whatever meanings they originally had: if originally differences or ratios of those values made sense, then differences and ratios of the interval-valued expressions make equal sense. You seem to rule this out by fiat, creating an unnecessary restriction. $\endgroup$
    – whuber
    Jul 23, 2013 at 14:31

2 Answers 2


In Stata, both cases can be handled with the interval regression command intreg, which is generalization of the Tobit. It can handle point, interval, or left/right censored data (or a mixture of them all). It does assume error term normality, but the log transformation can often work if your data require and permit it.

I am not sure if there are canned non-Stata implementations, but there are formulas and references at the end of the manual link. It is a fairly straight-forward likelihood function that should be fairly easy to maximize. There's also a nice comparison between the ordered probit approach and interval regression using the value of the log likelihood for the first case scenario.

Here's a very simple simulation with $N=5000, Y=\alpha + \beta \cdot X + \varepsilon =\frac{1}{2} + 1 \cdot X + \mathcal{N}[0,1]$:

clear all;

set seed 10011979;
set obs 5000;

gen x = rnormal();
gen ystar = 0.5 + 1*x + rnormal();
gen ylb = ystar - int((5-1)*runiform());
gen yub = ystar + int((5-1)*runiform());

intreg ylb yub x;

Every observation has a variable interval constructed by adding/subtracting a random uniform number to the true value, so the intervals may overlap. The data basically looks like this:

First 10 Observations

As you can see, 2 observations are uncensored (i.e., point data).

The output is:

Interval regression                               Number of obs   =    5000
                                                  LR chi2(1)      =    2102.49 
Log likelihood = -3580.5326                       Prob > chi2     =     0.0000

             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
           x |    .979912   .0192016    51.03   0.000     .9422775    1.017546
       _cons |   .4757097   .0190327    24.99   0.000     .4384063    .5130131
    /lnsigma |   .0336532   .0143186     2.35   0.019     .0055893    .0617171
       sigma |   1.034226   .0148086                      1.005605    1.063661

  Observation summary:         0  left-censored observations
                             326     uncensored observations
                               0 right-censored observations
                            4674       interval observations

It seems like all the parameters, including the standard deviation of the error, are fairly close to the true values.

  • $\begingroup$ Thanks for your answer. I checked out the link you've mentioned, just based on examples provided, it seems this command only allows interval response variables with non-overlapping range. Do you happen to know whether this is true? Any references? $\endgroup$
    – steadyfish
    Jul 23, 2013 at 13:09
  • $\begingroup$ Just to add, I am interested in analyzing interval data variable in general, not just as a response variable.. $\endgroup$
    – steadyfish
    Jul 23, 2013 at 13:13
  • $\begingroup$ The examples in the manuals are usually simple. In any case, I added an example that I hope is convincing. If you want the interval variable on the right hand side, I would try to enter them as a set of dummies. Obviously this will only work with a coarser interval scheme since you can't have a dummy for every observation. $\endgroup$
    – dimitriy
    Jul 23, 2013 at 18:07

You are looking for interval regression: In R you can use the survival package as explained here

Or you can try with the intReg package using the intReg function

  • $\begingroup$ Thanks for your answer. I checked out both the packages. Just based on examples provided, it seems survival package only allows interval response variables with non-overlapping range. The intReg package though does seem to allow arbitrary user specific interval variables. $\endgroup$
    – steadyfish
    Jul 23, 2013 at 13:06
  • $\begingroup$ Just to add, I am interested in analyzing interval data variable in general, not just as a response variable.. $\endgroup$
    – steadyfish
    Jul 23, 2013 at 13:14
  • $\begingroup$ Using interval data as a predictor seems more conflictive since you are introducing measurement error with each observation. $\endgroup$
    – Aghila
    Jul 23, 2013 at 19:19
  • $\begingroup$ Yes, every observation will have measurement error, but i think, it's better to somehow incorporate such variables rather than not using them at all. $\endgroup$
    – steadyfish
    Aug 8, 2013 at 17:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.