====================================================================================== ====================================================================================== 1. - Intraclass Correlation for Continuous Outcome Variable using PROC NLMIXED: ====================================================================================== PROC NLMIXED DATA= METHOD=FIRO QPOINTS=##; /*** List of parameter coefficient names and starting values ***/ PARMS l2_int=## var1=## l2_c1=## l2_c2=## ... l2_cn=## l1_c1=## l1_c2=## ... l1_cn=##; /*** Cluster or Class level variables (Level 2) ***/ level2 = l2_int + l2_c1*l2_v1 + l2_c1*l2_v2 + ... + l2_cn*l2_vn + r1; /*** Prediction function ***/ pred = level2 + l1_c1*l1_v1 + l1_c2*l1_v2 + ... + l1_cn*l1_vn; MODEL ~ NORMAL(pred,var2); RANDOM r1 ~ NORMAL(0,var1) SUBJECT=; ESTIMATE 'ICC' var1/(var1+var2); RUN; NOTE: SAS keywords that are in all caps are required code. ============= Example 1: ============= proc nlmixed data= method=firo qpoints=64; parms l2_int=0.25 var1=0.5 fs=0.25 mms=0.25 teen=0.25 sex=0.25 bo=0.25; level2 = l2_int + fs*famsize + mms*mar_1stbirth + teen*mom_1stbirth_under20 + r1; pred = level2 + sex*male + bo*order; model la_index ~ normal(pred,var2); random r1 ~ normal(0,var1) subject=famnum; estimate 'ICC' var1/(var1+var2); run; ====================================================================================== ====================================================================================== 2. - Intraclass Correlation for Binary Outcome Variable using PROC NLMIXED: ====================================================================================== PROC NLMIXED DATA=; /*** List of parameter coefficient names and starting values ***/ PARMS l2_int=## var1=## l2_c1=## l2_c2=## ... l2_cn=## l1_c1=## l1_c2=## ... l1_cn=##; /*** Cluster or Class level variables (Level 2) ***/ level2 = l2_int + l2_c1*l2_v1 + l2_c1*l2_v1 + ... + l2_cn*l2_vn + r1; /*** Link function ***/ exprhs = exp(level2 + l1_c1*l1_v1 + l1_c2*l1_v2 + ... + l1_cn*l1_vn); /*** Prediction function ***/ pred = exprhs/(1+exprhs); MODEL ~ BINARY(pred); RANDOM r1 ~ NORMAL(0,var1) SUBJECT=; ESTIMATE 'ICC' var1/(var1 + 3.289868134); /* 3.289868134 is an approximate value for the variance of a standard logistic function */ /* The real value is pi-squared divided by 3 */ RUN; ============= Example 2: ============= proc nlmixed data=; parms l2_int=0.25 var1=0.5 fs=0.25 mms=0.25 teen=0.25 sex=0.25 bo=0.25; level2 = l2_int + fs*famsize + mms*mar_1stbirth + teen*mom_1stbirth_under20 + r1; exprhs = exp(level2 + sex*male + bo*order); pred = exprhs/(1+exprhs); model g12by17 ~ binary(pred); random r1 ~ normal(0,var1) subject=famnum; estimate 'ICC' var/(var1 + 3.289868134); run; ====================================================================================== ====================================================================================== 3. - Intraclass Correlation for Continuous Outcome Variable using PROC MIXED: ====================================================================================== ODS OUTPUT MIXED.COVPARMS=; PROC MIXED DATA=; CLASS ; MODEL = ; RANDOM ; RUN; Output: Covariance Parameter Estimates  Cov Parm Estimate    Var1 Residual Var2 ============= Example 3: ============= proc mixed data=; class famnum famsize mar_1stbirth mom_1stbirth_under20 male order; model la_index = famsize mar_1stbirth mom_1stbirth_under20 male order; random famnum; run; NOTE 1: Intraclass correlation cannot be computed for binary outcome variables using PROC MIXED. NOTE 2: Intraclass correlation has to be computed manually using PROC MIXED. Formula: ICC = Var1 /(Var1 + Var2) NOTE 3: The ICC denotes the variability accounted for by the “between-cluster” factor with respect to the overall variability, or in other words, it denotes the degree of homogeneity within clusters. NOTE 4: When using PROC MIXED and there are many clusters (levels or groups in the RANDOM variable), this can be problematic for SAS can run out of memory. ====================================================================================== ======================================================================================