[banner]

Summary and Analysis of Extension Program Evaluation in R

Salvatore S. Mangiafico

Using Random Effects in Models

This book will not investigate the concept of random effects in models in any substantial depth.  The goal of this chapter is to empower the reader to include random effects in models in cases of paired data or repeated measures.

Random effects in models for paired and repeated measures

As an example, if we are measuring the left hand and right of several individuals, the measurements are paired within each individual.  That is, we want to statistically match the left hand of Individual A to the right hand of Individual A, since we suppose that someone with a large left hand will have a large right hand.  Therefore, the variable Individual will be included in the model as a random variable.  Each Individual could be thought of has a block including a measurement for the left hand and a measurement for the right hand.

As a second example, imagine we are measuring the scores of instructors multiple times, and we can match each rater’s score at each time to the same rater’s score at the other times.  So, we want to statistically match the score of Rater A at Time 1 to the score of Rater A at Time 2, since we suppose that someone who scores an instructor high at one time might score an instructor high at another time.  Therefore, the variable Rater will be included in the model as a random variable.  Each Rater could be thought of as a block including a measurement for each of the times.

The concept of random variables

Getting a firm grasp of the concept of random variables is not an easy task, so it is okay to not fret too much about completely understanding the concept at this point.  It is also helpful to keep in mind that whether a variable should be considered a fixed or random variable will depend on the interpretation of the person doing the analysis.

In the previous chapter, the variable Speaker was used as a fixed effect in the model.  Conceptually, the idea is that we are interested in the effect of each of the specific levels of that variable.  That is, we care specifically about Pooh and Piglet and their scores.

In many cases of blocking variables, though, we don’t necessarily care about the values for those specific blocks.

For example, if we conducted a study in two different schools focusing on two different curricula, we may want to know about the effect of the curricula, but more or less chose the schools at random.  We don’t really care if Springfield Elementary had a higher score than Shelbyville Elementary.  The two schools represent any two random schools, not those two specific schools.  But we definitely want to include the School effect in the model, because we suppose that one school could do better with both curricula than would the other school.

Another example of this is when we have instructors rated by student raters.  If we are studying the performance of the instructors, we don’t necessarily care about how Nelson or Milhouse or Ralph as individuals rate instructors.  They are representing students chosen at random.  We just need to include the effect of the variable Rater in the model to statistically account for the fact that each rater might tend to rate all instructors lower or higher than other raters.

In these examples, School and Rater could be included in their respective models as random effects.

Mixed effects models

When a model includes both fixed effects and random effects, it is called a mixed effects model.

 

Optional technical note:  Random effects in more complex models

For more complex models, specifying random effects can become difficult.  Random effects can be crossed with one another or can be nested within one another.  Also, correlation structures for the random effects can be specified.  However, approaching this complexity is beyond the scope of this book.

 

The examples in this book treat random variables as simple intercept-only variables, as simple blocks that are not nested within other variables.

Packages used in this chapter

 

The packages used in this chapter include:

•  FSA

•  psych

•  lme4

•  lmerTest

•  nlme

•  car

 

The following commands will install these packages if they are not already installed:


if(!require(FSA)){install.packages("FSA")}
if(!require(psych)){install.packages("psych")}
if(!require(lme4)){install.packages("lme4")}
if(!require(lmerTest)){install.packages("lmerTest")}
if(!require(nlme)){install.packages("nlme")}
if(!require(car)){install.packages("car")}


An example of a mixed model

 

For this example we will revisit the hand size example from the Independent and Paired Values chapter.  The variable hand Length will be treated as an interval/ratio variable.  We will return to using cumulative link models for Likert data in subsequent chapters.

Note that the model includes the blocking variable, Individual, and so data do not need to be in a certain order to match the paired observations.

Also note that mixed models may make certain assumptions about the distributions of the data.  For simplicity, this example will not check if those assumption are met.

By default, an analysis of variance for a mixed model doesn’t test the significance of the random effects in the model.  However, the effect of random terms can be tested by comparing the model to a model including only the fixed effects and excluding the random effects, or with the rand function from the lmerTest package if the lme4 package is used to specify the model.

 

As a technical note, the lmerTest package has options to use Satterthwaite or Kenward–Roger degrees of freedom, and options for type-III or type-II tests in the analysis of variance, if the lme4 package is used to specify the model.


Input = ("
 Individual  Hand     Length
 A           Left     17.5
 B           Left     18.4
 C           Left     16.2
 D           Left     14.5
 E           Left     13.5
 F           Left     18.9
 G           Left     19.5
 H           Left     21.1
 I           Left     17.8
 J           Left     16.8
 K           Left     18.4
 L           Left     17.3
 M           Left     18.9
 N           Left     16.4
 O           Left     17.5
 P           Left     15.0
 A           Right    17.6
 B           Right    18.5
 C           Right    15.9
 D           Right    14.9
 E           Right    13.7
 F           Right    18.9
 G           Right    19.5
 H           Right    21.5
 I           Right    18.5
 J           Right    17.1
 K           Right    18.9
 L           Right    17.5
 M           Right    19.5
 N           Right    16.5
 O           Right    17.4
 P           Right    15.6
")

Data = read.table(textConnection(Input),header=TRUE)


###  Check the data frame

library(psych)

headTail(Data)

str(Data)

summary(Data)


### Remove unnecessary objects

rm(Input)


Mixed model with lmer

One way to construct a mixed effects model for interval/ratio data is with the lmer function in the lme4 package.  The lmerTest package is used to produce an analysis of variance with p-values for model effects.

 

Notice the grammar in the lmer function that defines the model:  the term (1|Individual) is added to the model to indicate that Individual is the random term.

 

As a technical note, the 1 indicates that an intercept is to be fitted for each level of the random variable.

As another technical note, REML stands for restricted maximum likelihood.  It is a method of fitting the model, and is often considered better than fitting with a conventional ML (maximum likelihood) method.

Define model and conduct analysis of variance


library(lme4)

library(lmerTest)

model = lmer(Length ~ Hand + (1|Individual),
            data=Data,
            REML=TRUE)

anova(model)


Analysis of Variance Table of type III  with  Satterthwaite
approximation for degrees of freedom

      Sum Sq Mean Sq NumDF DenDF F.value   Pr(>F)  
Hand 0.45125 0.45125     1    15  11.497 0.004034 **


Test the random effects in the model

The rand function from the lmerTest package will test the random effects in the model.


rand(model)


Analysis of Random effects Table

           Chi.sq Chi.DF p.value   
Individual   58.4      1   2e-14 ***


Mixed model with nlme

Another way to construct a mixed effects model for interval/ratio data is with the lme function in the nlme package.

Notice the grammar in the lme function that defines the model:  the option random=~1|Individual is added to the model to indicate that Individual is the random term.

As a technical note, the 1 indicates that an intercept is to be fitted for each level of the random variable.

As another technical note, REML stands for restricted maximum likelihood.  It is a method of fitting the model, and is often considered better than fitting with a conventional ML (maximum likelihood) method.

Define model and conduct analysis of deviance


library(nlme)

model = lme(Length ~ Hand, random=~1|Individual,
            data=Data,
            method="REML")

library(car)

Anova(model)


Analysis of Deviance Table (Type II tests)

      Chisq Df Pr(>Chisq)   
Hand 11.497  1  0.0006972 ***


Test the random effects in the model

The random effects in the model can be tested by comparing the model to a model fitted with just the fixed effects and excluding the random effects.  Because there are not random effects in this second model, the gls function in the nlme package is used to fit this model.


We will use a similar method for cumulative link models.


model.fixed = gls(Length ~ Hand,
                  data=Data,
                  method="REML")

anova(model,
      model.fixed)


            Model df       AIC       BIC    logLik   Test L.Ratio p-value
model           1  4  80.62586  86.23065 -36.31293                      
model.fixed     2  3 137.06356 141.26715 -65.53178 1 vs 2 58.4377  <.0001