0
$\begingroup$

From a social network survey (name generator and name interpretor) I have data about frequencies of interaction ("How often are you in contact with person X?") on a scale I would interpret as interval scale, though this is certainly debatable ("less than monthly", "monthly", "several times a month", "weekly", "several times a week", "daily"). I transcoded responses to 1/[waiting time] with lower bound 1/365.

               Category                     Coded Freq
1     less than monthly 0.0027777778-0.0322580645  131
2               monthly 0.0333333333-0.0333333333  171
3 several times a month        0.0344827586-0.125  118
4                weekly     0.14285714-0.14285714  149
5  several times a week          0.1666666667-0.5  70
6                 daily                       1-1  85

I now would like to fit a distribution function in order to compare subgroups of respondents and in order to draw waiting times for the next encounter in agent-based simulations of social influence.

I tried logspline::oldlogspline in R but it seems to underestimate e.g. frequencies between .2 and .5: enter image description here

$\endgroup$
2
  • 1
    $\begingroup$ The large number of frequencies coded as exactly $1$ suggests this exercise may be futile, because it is inconsistent with a distribution that has a density there. Could you explain how you originally obtained these data and tell us why you want to estimate a density for them? $\endgroup$
    – whuber
    Dec 28, 2015 at 14:18
  • $\begingroup$ Thanks whuber. I edited the question to hopefully provide a better insight into my project. Unfortunately, I don't understand why the high number of frequencies coded as 1 is a problem. Nevertheless, an alternative would be coding answers for "daily" as [0.75-1] (and "several times a week" as [0.1547619 - 0.75) and so on...). $\endgroup$
    – Sascha
    Dec 28, 2015 at 17:14

1 Answer 1

1
$\begingroup$

This is a bit technical, but I think you should consider using a fully parametric model in this case.

As you have described it, you are using interval censored data; i.e. for each observation, you know that the event time falls within an interval [$l, r$], where $l$ is the lower end of the interval and $r$ is the upper end of the interval. Your dataset also includes uncensored data, which is represented by [$t,t$], where $t$ is the event time (i.e. "daily" = [1,1]).

You are using the log spline estimator, a non-parametric density estimator for interval censored data which requires a selection of the number of knots for a log-spline. The number of knots selected is decided by AIC, but there are many cases with interval censored data where this is not a very good method for doing this. What you've described is just about the worst case scenario when using AIC to decide number of knots. Not your fault by any means; getting a general effective method for knot selection for interval censored data is very much an open question, and it's not too hard to find cases where the default settings behave extremely poorly. For example, almost any sample of current status data (this where each observation is examined only once, and all that is recorded is whether the event has already occurred or not, resulting in all data being either left or right censored) will cause the default settings to produce extremely unreliable density estimation.

If you are really interested as to why this is, it would be several pages of writing on my part. I can write it up, but only would do so if you really are interested.

If you are interested in fitting parametric models for interval censored data, this can be done easily using ic_par in the package icenReg (note: this is the author).

$\endgroup$

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.