Can survival models be used for modeling progression along a sequence of events? I am wondering whether survival analysis can be used to model situations where the subject progresses through stages.
Here is an example of what I mean:
Suppose I want to track the progress of student reading performance. Students come in at the same baseline level (beginner) and eventually progress to intermediate, advanced, and proficient reading levels. Each week students take a reading comprehension test that measures which reading level they are at. Students have to pass from one order to the next (no skipping) -- but the exact day that they progress to the next level may not be observed since they are only tested once a week.
One option is to specify multiple models, modeling the time from each level to the next. I think it would be better to model the entire sequence of events but am not sure whether survival models can be used in this setting. 
 A: You can use a stratified counting process model for recurrent events. This will treat the different levels as separate events that can only occur in their proper sequence. The data layout should be like this:
 id level t0 t1 event x1 x2
  1     1  0  4     1  0 43
  1     2  4  6     1  0 43
  1     3  6 12     1  0 43
  1     4 12 15     1  0 43
  2     1  0  3     1  1 37
  2     2  3 12     1  1 37
  2     3 12 14     1  1 37
  2     4 14 16     0  1 37
  3     1  0 12     1  0 21
  3     2 12 16     0  0 21

id is the unique identifier for each subject. Level is a factor representing beginner/intermediate/advanced/proficient. t0 is the starting times and t1 end times. As you can see, when a new level is reached, a new row start with t0 as the time when the event occurred and t1 when the next level occurs, or when the study ends (at week 16 in this case). Event is when a level is reached. x1 is a binary independent variable and x2 is a continuous independent variable, both of which will be included in the analysis.
So subject 1 reached the beginner level at week 4, intermediate at week 6, advanced at week 12 and proficient at week 15. Since this is the last level, subject 1 is eliminated from the risk set after week 15. Subject 2 reaches beginner level at week 3, intermediate level at week 12 and advanced level at week 14. Subject 2 still hasn't reached proficient level at week 16 which is the last week of the study. Poor subject 3 reaches beginner level at week 12, and by the end of the study he/she still hasn't reached the next level and is censored at week 16.
The model, using R code, might look like this:
coxph(Surv(t0, t1, event) ~ strata(level) + x1 + x2 + cluster(id))

The cluster is a way to adjust the standard errors to take into account that there are multiple rows per subject.
Using this approach, you will assume that x1 and x2 have the same effects (hazard ratios) for all the events to occur, and this may or may not be a reasonable assumption. If you think there are different effects of the independent variables per level, I think you can either do separate analyses or you might be able to include interaction terms between the independent variables and the level variable (used as dummy variables). I haven't tried this, but I think it should work the way you want to. The code in R would then be something like this:
coxph(Surv(t0, t1, event) ~ strata(level) + x1*factor(level) +
x2*factor(level) + cluster(id))

As I said, I'm not entirely sure this would work, but I think so. But you will have an additional six parameters to estimate in this scenario (three per interaction), so sample size might become an issue depending on the size of your data.
Finally, one thing I haven't addressed is that you only measure individuals once per week and not daily. This is called interval censoring. I'm haven't worked with interval censored data so I may be wrong, but I think it's acceptable to assume that the test result marks the progress to the next level even though we don't know the exact date when the subject progressed. The alternative is to take the mean between the last test and the test when a new level is reached, but I can't see why that would be a preferable approach. But on a second thought,  if a student misses one or more tests, and then progresses, it might be more reasonable to assume that progress happened midway between the tests. Anyway, I think you should choose one approach and then also do the other one as a sensitivity analysis to make sure that it doesn't affect your results.
I can recommend the books Survival Analysis: A Self-Learning Text by Kleinbaum and Klein as an accessible text to learn more about this.
I hope this helps!
