Have you considered spatial power, SP(POW)(index), as a possible structure. You would need to create a continuous variable equal to temps (call it t, for example), and then splitting your random statement into two statements, where you do not look at the covariance between the intercept and the slope. That is:
PROC GLIMMIX DATA=suivi_file METHOD=laplace IC=q NOCLPRINT;
CLASS id_pat profil sexe prescr ass_so tble_psy;
EFFECT spl_tps=SPLINE(temps / DEGREE=1 KNOTMETHOD=LIST(70) DETAILS);
MODEL bilan(EVENT='1') = profil spl_tps*profil age sexe tble_psy ass_so prescr / DIST = BINARY LINK=LOGIT S INTERCEPT;
RANDOM INTERCEPT / SUB=id_pat ;
RANDOM temps / sub=id_pat type=sp(pow)(t);
RUN;
Note that the spline term only appears as an interaction with profil, and not as a stand-alone term. I got this idea from the example here . The example goes on to show how to compare differences at various points along the spline.
With the split of the random statement into separate intercepts and slopes, you could also look at:
RANDOM temps / sub=id_pat type=csh; (remove the random intercept if you try this)
SteveDenham
... View more