Logo

Treatment of Missing Data Part II

David C. Howell

Part 1 of this document can be found at http://www.uvm.edu/~dhowell/StatPages/More_Stuff/Mixed-Models-Repeated/Mixed-Models-for-Repeated-Measures1.html .

Mixed Models by a More Traditional Route

Because I was particularly interested in the analysis of variance, in Part 1 I approached the problem of mixed models first by looking at the use of the repeated statement in Proc Mixed. Remember that our main problem in any repeated measures analysis is to handle the fact that when we have several observations from the same subject, our error terms are often going to be correlated. This is true whether the covariances fit the compound symmetry structure or we treat them as unstructured or autoregressive. But there is another way to get at this problem. Look at the completely fictitious data shown below.

Now look at the pattern of correlations.

Except for the specific values, these look like the pattern we have seen before. I generated them by simply setting up data for each subject that had a different slope. For Subject 1 the scores had a very steep slope, whereas for Subject 4 the line was almost flat. In other words there was variance to the slopes. Had all of the slopes been equal (the lines parallel) the off-diagonal correlations would have been equal except for error, and the variance of the slopes would have been 0. But when the slopes were unequal their variance was greater than 0 and the times would be differentially correlated.

As I pointed out earlier, compound symmetry is associated directly with a model in which lines representing changes for subjects over time are parallel. That means that when we assume compound symmetry, as we do in a standard repeated measures design, we are assuming that pattern for subjects. Their intercepts may differ, but not their slopes. One way to look at the analysis of mixed models is to fiddle with the expected pattern of the correlations, as we did with the repeated command. Another way is to look at the variances in the slopes, which we will do with the random command. With the appropriate selection of options the results will be the same.

We will start first with the simplest approach. We will assume that subjects differ on average (i.e. that they have different intercepts), but that they have the same slopes. This is really equivalent to our basic repeated measures ANOVA where we have a term for Subjects, reflecting subject differences, but where our assumption of compound symmetry forces us to treat the data by assuming that however subjects differ overall, they all have the same slope. I am using the same missing data set that we used in the first part of the document for purposes of comparison.

Here we will replace the Repeated command with the Random command. The "int" on the random statement tells the model to fit a different intercept for each subject, but to assume that the slopes are constant across subjects. I am requesting a covariance structure with compound symmetry.


Options nodate nonumber nocenter formdlim = '-' linesize = 85;
libname lib 'H:\Supplements\Mixed Models Repeated';
Title 'Analysis of Wicksell missing data using random command';

 /* Now read the data in the long format for Proc Mixed. */
 /* Here I have entered time as 0, 1, 3, or 6. and I have extra  variables to be ignored. */
 Data lib.WicksellLongMiss;
	infile 'C:\Users\Dave Desktop\Dropbox\Webs\StatPages\More_Stuff\Mixed-Models-Repeated\WicksellLongMiss.dat';
	input subject group time dv centtime time1 newtime;
	Label
		Group = 'Treatment vs Control'
		Time = 'Time of Measurement starting at 0'
		;
	timecont = time; /* This allows for time as a continuous var. */
run;

Title 'Analysis with random intercept.' ;
Proc Mixed data = lib.WickselllongMiss;
    class group time subject ;
    model dv = group time group*time/solution;
    random int /subject = subject type = cs;
run;

Analysis with random intercept.

 Covariance Parameter Estimates
Cov Parm     Subject    Estimate

Variance     subject     2677.70
CS           subject     -119.13
Residual                 2954.57

           Fit Statistics

-2 Res Log Likelihood           905.4
AIC (smaller is better)         911.4
AICC (smaller is better)        911.7
BIC (smaller is better)         914.9


  Null Model Likelihood Ratio Test

    DF    Chi-Square      Pr > ChiSq
     2         19.21          <.0001


                          Solution for Fixed Effects

                       Time of
            Treatment  Measurement
            vs         starting               Standard
Effect      Control    at 0         Estimate     Error    DF  t Value  Pr > |t|

Intercept                             111.87   23.7352    22     4.71    0.0001
group       1                        89.6916   32.4127    57     2.77    0.0076
group       2                              0         .     .      .       .
time                   1              168.54   24.4205    57     6.90    <.0001
time                   2            -16.0695   25.1379    57    -0.64    0.5252
time                   3            -11.0433   25.5271    57    -0.43    0.6669
time                   4                   0         .     .      .       .
group*time  1          1            -65.7749   33.4153    57    -1.97    0.0539
group*time  1          2               68.64   34.3675    57     2.00    0.0506
group*time  1          3             25.8819   34.6532    57     0.75    0.4582
group*time  1          4                   0         .     .      .       .
group*time  2          1                   0         .     .      .       .
group*time  2          2                   0         .     .      .       .
group*time  2          3                   0         .     .      .       .
group*time  2          4                   0         .     .      .       .

-------------------------------------------------------------------------------------

         Type 3 Tests of Fixed Effects

               Num     Den
Effect          DF      DF    F Value    Pr > F
group            1      57      16.52    0.0001
time             3      57      32.45    <.0001
group*time       3      57       6.09    0.0011

These results are essentially the same as those we found using the repeated command and setting type = cs. By only specifying "int" as random we have not allowed the slopes to differ, and thus we have forced compound symmetry. We would have virtually the same output even if we specified that the covariance structure be "unstructured."

Now I want to go a step further. Here I am venturing into territory that I know less well, but I think that I am correct in what follows.

Remember that when we specify compound symmetry we are specifying a pattern that results from subjects showing parallel trends over time. So when we replace our repeated statement with a random statement and specify that "int" is the only random component, we are doing essentially what the repeated statement did. We are not allowing for different slopes. But in the next analysis I am going to allow slopes to differ by entering "time" in the random statement along with "int." What I will obtain is a solution where the slope of time has a variance greater than 0. The commands for this analysis follow. Notice two differences. We suddenly have a variable called "timecont." Recall that the class command converts time to a factor. That is fine, but for the random variable I want time to be continuous. So I have just made a copy of the original "time," called it "timecont," and not put it in the class statement. Notice that I do not include "type = cs" in the following syntax because by allowing for different slopes I am allowing for a pattern of correlations that do not fit the assumption of compound symmetry. (The commands that follow assume that you have run earlier commands to establish the data file etc.)



Title 'Analysis with random intercept and random slope.' ;

Proc Mixed data = lib.WickselllongMiss;
    class group time subject ;
    model dv = group time group*time/solution;
    random int timecont /subject = subject ;
run;


 Covariance Parameter Estimates

Cov Parm      Subject    Estimate

Intercept     subject     2557.79
timecont      subject           0
Residual                  2954.81

           Fit Statistics
		   
-2 Res Log Likelihood           905.4
AIC (smaller is better)         909.4
AICC (smaller is better)        909.6
BIC (smaller is better)         911.8

                          Solution for Fixed Effects

                       Time of
            Treatment  Measurement
            vs         starting               Standard
Effect      Control    at 0         Estimate     Error    DF  t Value  Pr > |t|

Intercept                             111.87   23.7344    22     4.71    0.0001
group       1                        89.6920   32.4114    35     2.77    0.0090
group       2                              0         .     .      .       .
time                   1              168.54   24.4214    35     6.90    <.0001
time                   2            -16.0687   25.1388    35    -0.64    0.5269
time                   3            -11.0428   25.5281    35    -0.43    0.6680
time                   4                   0         .     .      .       .
group*time  1          1            -65.7753   33.4166    35    -1.97    0.0570
group*time  1          2               68.64   34.3688    35     2.00    0.0536
group*time  1          3             25.8808   34.6546    35     0.75    0.4602
group*time  1          4                   0         .     .      .       .
group*time  2          1                   0         .     .      .       .
group*time  2          2                   0         .     .      .       .
group*time  2          3                   0         .     .      .       .
group*time  2          4                   0         .     .      .       .

-------------------------------------------------------------------------------------

Analysis with random intercept and random slope.

         Type 3 Tests of Fixed Effects

               Num     Den
Effect          DF      DF    F Value    Pr > F

group            1      35      16.53    0.0003
time             3      35      32.45    <.0001
group*time       3      35       6.09    0.0019


Notice that the pattern of results is similar to what we found in the earlier analyses (compared with both the analysis using the repeated command and the analysis without time as a random effect). However we only have 35 df for error for each test. The AIC for the earlier analysis in Part 1 of this document using AR(1) as the covariance structure had an AIC of 895.1, whereas here our AIC fit statistic is 909.4, which is higher. My preference would be to stay with the AR1 structure on the repeated command. That looks to me to be the best fitting model and one that makes logical sense.

There is one more approach recommended by Guerin and Stroop (2000). They suggest that when we are allowing a model that has an AR(1) or UN covariance structure, we combine the random and repeated commands in the same run. According to Littell et al., they showed that "a failure to model a separate between-subjects random effect can adversely affect inference on time and treatment × time effects."

This analysis would include both kinds of terms and is shown below.

proc mixed data = lib.WicklongMiss;
    class group time subj ;
    model dv = group time group*time/solution;
    random subj(group); 
    repeated time/ type = AR(1) subject = subj(group) rcorr;
run;

    Estimated R Correlation Matrix for subject 1

 Row        Col1        Col2        Col3        Col4

   1      1.0000      0.6182      0.3822      0.2363
   2      0.6182      1.0000      0.6182      0.3268
   3      0.3822      0.6182      1.0000      0.6182
   4      0.2363      0.3822      0.6182      1.0000


 Covariance Parameter Estimates

Cov Parm           Subject           Estimate

subject(group)                              0
AR(1)              subject(group)      0.6182
Residual                              5349.89


           Fit Statistics

-2 Res Log Likelihood           895.1
AIC (smaller is better)         899.1
AICC (smaller is better)        899.2
BIC (smaller is better)         901.4



  Null Model Likelihood Ratio Test

    DF    Chi-Square      Pr > ChiSq

     1         25.28          <.0001


                          Solution for Fixed Effects

                      
            Treatment  		           
            vs         Time of                       Standard
Effect      Control    Measurement  Estimate     Error    DF  t Value  Pr > |t|

Intercept                             106.64   23.4064    22     4.56    0.0002
group       1                        95.0006   31.9183    22     2.98    0.0070
group       2                              0         .     .      .       .
time                   1              173.78   27.9825    57     6.21    <.0001
time                   2             -8.9994   26.0818    57    -0.35    0.7313
time                   3            -10.8539   21.6965    57    -0.50    0.6188
time                   4                   0         .     .      .       .
group*time  1          1            -71.0839   38.5890    57    -1.84    0.0707
group*time  1          2             57.7765   35.6974    57     1.62    0.1111
group*time  1          3             26.6348   29.2660    57     0.91    0.3666
group*time  1          4                   0         .     .      .       .
group*time  2          1                   0         .     .      .       .
group*time  2          2                   0         .     .      .       .
group*time  2          3                   0         .     .      .       .
group*time  2          4                   0         .     .      .       .

         Type 3 Tests of Fixed Effects

               Num     Den
Effect          DF      DF    F Value    Pr > F

group            1      22      17.32    0.0004
time             3      57      30.82    <.0001
group*time       3      57       7.72    <.0002



Because of the way that SAS or SPSS sets up dummy variables to represent treatment effects, the intercept will represent the cell for the last time and the last group. In other words cell24. Notice that that cell mean is 106.64, which is also the intercept. The effect for Group 1 is the difference between the mean of the last time in the first group (cell14 and the intercept, which equals 150.73 - 100.61 = 50.12(within rounding error). That is the treatment effect for group 1 given in the solutions section of the table. Because there is only 1 df for groups, we don't have a treatment effect for group 2, though we can calculate it as -50.12 because treatment effects sum to zero. For the effect of Time 1, we take the deviation of the cell for Time 1 for the last group (group 2) from the intercept, which equals 286.09 - 100.61 = 185.48. For Times 2 and 3 we would subtract 100.61 from 99.6843 and 94.6383, respectively, giving -0.9290 and -5.9750. With 3 df for Time, we don't have an effect for Time 4, but again we can obtain it by subtraction as 0 - (185.48+0.9290+5.9750) = -178.59. For the interaction effects we take cell means minus row and column effects plus the intercept. So for Time11 we have 301.20 - 50.1121-185.48+100.61) = -35.0057. Similarly for the other interaction effects.

I should probably pay a great deal more attention to these treatment effects, but I will not do so here. If they were expressed in terms of deviations from the grand mean, rather than with respect to cell24 I could get more excited about them. (If SAS set up its design matrix differently they would come out that way. But they don't here.) I know that most statisticians will come down on my head for making such a statement, and perhaps I am being sloppy, but I think that I get more information from looking at cell means and F statistics.

And now the big "BUT!"

Well after this page was originally written and I thought that I had everything all figured out (well, I didn't really think that, but I hoped), I discovered that life is not as simple as we would like it to be. The classic book in the field is Littell et al. (2006). They have written about SAS in numerous books, and some of them worked on the development of Proc Mixed. However others who know far more statistics than I will ever learn, and who have used SAS for years, have had great difficulty in deciding on the appropriate ways of writing the syntax. An excellent paper in this regard is Overall, Ahn, Shivakumar, & Kalburgi (1999). They spent 27 pages trying to decide on the correct analysis and ended up arguing that perhaps there is a better way than using mixed models anyway. Now they did have somewhat of a special problem because they were running an analysis of covariance because missing data was dependent, in part, on baseline measures. However other forms of analyses will allow a variable to be both a dependent variable and a covariate. (If you try this with SPSS you will be allowed to enter Time1 as a covariate, but the solution is exactly the same as if you had not. I haven't yet tried this is R or S-Plus.) This points out that all of the answers are not out there. If John Overall can't figure it out, how are you and I supposed to?

That last paragraph might suggest that I should just eliminate this whole document, but that is much too extreme. Proc Mixed is not going to go away, and we have to get used to it. All that I suggest is a bit of caution. But if you do want to consider alternatives, look at the Overall et al. paper and read what they have to say about what they call Two-Stage models. Then look at other work that this group has done.

But I can't leave this without bringing in one more complication. Overall & Tonidandel (2007) recommend a somewhat different solution by using a continuous measure of time on the model statement. In other words, specifying time on the class variable turns time into a factor with 4 levels. I earlier said timecont = time in a data statement. Overall & Tonidandel would have me specify the model statement as model dv = group timecont group*timecont. / solution; Littell et al. 2006 refer to this as "Comparisons using regression," but it is not clear, other than to test nonlinearity, why we would do this. It is very close to, but not exactly the same as, a test of linear and quadratic components. (For quadratic you would need to include time2 and its interaction with group.) It yields a drastically different set of results, with 1 df for timecont and for timecont × group. The 1 df is understandable because you have one degree of freedom for each contrast. The timecont × group interaction is not close to significant, which may make sense if you look at the plotted data, but I'm not convinced. I am going to stick with my approach, at least for now.

The SAS printout follows based on the complete (not the missing) data.


       Type 3 Tests of Fixed Effects
Effect	       Num DF	Den DF	 F Value	Pr > F
group	         1	      22	  9.80	  0.0049
timecont	     1	      70	  29.97	  <.0001
timecont*group	 1	      70	   0.31	  0.5803

Compare this with the Proc GLM solution for linear trend given earlier.

Contrast Variable: time_1  The Linear Effect of Time (intervals = 0,1,2,3)
      Source                      DF     Type III SS     Mean Square    F Value    Pr > F
      Mean                         1     168155.6270     168155.6270      36.14    <.0001
      group                        1       1457.2401       1457.2401       0.31    0.5814
      Error                       22     102368.7996       4653.1273

They are not the same, though they are very close. (I don't know why they aren't the same, but I suspect that it has to do with the fact that Proc GLM uses a least squares solution while Proc Mixed uses REML.) Notice the different degrees of freedom for error, and remember that "mean" is equivalent to "timecont" and "group" is equivalent to the interaction.

What about imputation of missing values?

There are many ways of dealing with missing values (Howell, 2008), but a very common approach is known as Estimation/Maximization (EM). To describe what EM does in a very few sentences, it basically uses the means and standard deviations of the existing observations to make estimates of the missing values. Having those estimates changes the mean and standard deviation of the data, and those new means and standard deviations are used as parameter estimates to make new predictions for the (originally) missing values. Those, in turn, change the means and variances and a new set of estimated values is created. This process goes on iteratively until it stabilizes.

I used a (freely available) program called NORM (Shafer & Olson, 1998) to impute new data for missing values. (For a discussion of NORM, see MissingDataNorm.html I then took the new data, which was now a complete data set, and used Proc GLM in SAS to run the analysis of variance on the completed data set. I repeated this several times to get an estimate of the variability in the results. The resulting Fs for three replications are shown below, along with the results of using Proc Mixed on the missing data with an autoregressive covariance structure and simply using the standard ANOVA with all subjects having any missing data deleted.

                                                                        Missing Cases
              Replication 1    Replication 2   Replication 3    AR1       Deleted
Group             17.011           15.674          18.709      18.03        8.97
Time	          35.459           33.471          37.960      29.55       27.34
Group * Time	   5.901            5.326           7.292       7.90        2.81

I will freely admit that I don't know exactly how to evaluate these results, but they are at least in line with each other except for the last column when uses casewise deletion. I find them encouraging.

dch:
Last revised 12/15/2012