Hi All,
Been searching through the archives, but i decided to punt and post as i think my question is a bit more specific (i think). I have students that have up to 3 measures across a school year (beginning, middle and end). The measures are taken at the same time for all students, though some students may not have data for all 3 times points. The dependent variable is ordinal, with a rating of “Below”, “At” or “Above” a pre-determined criterion at each time point, but the criterion shifts across time. I've stacked the data into a vertical format with time nested within student. For purposes of investigating my code, and ‘cross-checking’ with basic PROC FREQ crosstab tables of time points, I have the following code where I treat time as a class variable, treating time 0 as the reference group. I also have a treatment variable (1=treatment or intervention). See code below.
My specific question/concern is around the random statement that I currently have commented out. Without treating the student as a random effect, I get results from my estimate statements that seem to make some sense to me. However, when I remove the comment and include the random effect, I get results that are much less comforting (i.e., the ilink Mu values are extremely small – scientific notation of 0), as the Below reference category is the largest response category. I’m wondering if these extremely small values make sense in the presence of that random effect, since when I examine PROC FREQ crosstabs, students that were Below at time 0 tend also to be Below at time 1. 93% of those that were Below at time 1 were again at time 2. So, do the small Mu that I’m seeing reflect the fact that, within students on average, probabilistically students maintain their categorization across time (i.e., there is little increase in likelihood they will surpass the threshold to be categorized at a higher level)?
I've taken a snapshot of 3 crosstab tables showing beginning to middle, middle to end, and beginning to end. As you'll see, most students maintain their categorization from one timepoint to the next, which makes me think that these really small probabilities may be right. Snapshot of model output also attached.
Any help is greatly appreciated.
proc sort data=dibel_sub_v; by student_id orf_n time; proc glimmix data=dibel_sub_v method=laplace; nloptions gconv=0; class orf_n (ref=last) time_c(ref=first) ; model orf_n(ref=last)= time_c tx time_c*tx/ dist=multinomial link=clogit solution; *random int / subject=student_id type=un; covtest 'Need Ran Int?' 0; estimate "At or Above: time-0: Control" intercept 1 0 time_c 0 0 1 tx 0 time_c*tx 0 0 0/ilink cl; estimate "Below Bench: time-0: Control" intercept 0 1 time_c 0 0 1 tx 0 time_c*tx 0 0 0/ilink cl; estimate "At or Above: time-1: Control" intercept 1 0 time_c 1 0 0 tx 0 time_c*tx 0 0 0/ilink cl; estimate "Below Bench: time-1: Control" intercept 0 1 time_c 1 0 0 tx 0 time_c*tx 0 0 0/ilink cl; estimate "At or Above: time-2: Control" intercept 1 0 time_c 0 1 0 tx 0 time_c*tx 0 0 0/ilink cl; estimate "Below Bench: time-2: Control" intercept 0 1 time_c 0 1 0 tx 0 time_c*tx 0 0 0/ilink cl; estimate "At or Above: time-0: Treatment" intercept 1 0 time_c 0 0 1 tx 1 time_c*tx 0 0 1/ilink cl; estimate "Below Bench: time-0: Treatment" intercept 0 1 time_c 0 0 1 tx 1 time_c*tx 0 0 1/ilink cl; estimate "At or Above: time-1: Treatment" intercept 1 0 time_c 1 0 0 tx 1 time_c*tx 1 0 0/ilink cl; estimate "Below Bench: time-1: Treatment" intercept 0 1 time_c 1 0 0 tx 1 time_c*tx 1 0 0/ilink cl; estimate "At or Above: time-2: Treatment" intercept 1 0 time_c 0 1 0 tx 1 time_c*tx 0 1 0/ilink cl; estimate "Below Bench: time-2: Treatment" intercept 0 1 time_c 0 1 0 tx 1 time_c*tx 0 1 0/ilink cl; output out=dibel_sub_v2 pred(noblup)=predpa stderr(noblup)=stderrmupa pred(ilink noblup)=predmupa stderr(ilink noblup)=stderrmupa; ods output estimates=est; run;
... View more