-2

I attempted to construct a linear mixed effects model using lmer function from lme4 package and I ran into a recurring error. The model uses two fixed effects:

  • DBS_Electrode (factor w/3 levels) and
  • PostOp_ICA (continuous variable).

I use (1 | Subject) as a random effect term in which Subject is a factor of 38 levels (38 total subjects). Below is the line of code I attempted to run:

LMM.DBS <- lmer(Distal_Lead_Migration ~ DBS_Electrode + PostOp_ICA + (1 | Subject), data = DBS)

I recieved the following error:

Number of levels of each grouping factor must be < number of observations.

I would appreciate any help, I have tried to navigate this issue myself and have been unsuccessful.

Artem
  • 3,304
  • 3
  • 18
  • 41
  • could you post some reproducible example? E.g. not only the line of your code but some piece of data. It should greately increasy the probability of answer. – Artem Sep 16 '18 at 12:15

1 Answers1

0

Linear mixed effect model supposes that there is less subjects than observations so it throws an if it is not the case.

You can think of this formula as telling your model that it should expect that there’s going to be multiple responses per subject, and these responses will depend on each subject’s baseline level.

Please consult A very basic tutorial for performing linear mixed effects analyses by B. Winter, p. 4.

In your case you should increase amount of observations per subject (> 1). Please see the simulation below:

library(lme4)
set.seed(123)
n <- 38
DBS_Electrode <- factor(sample(LETTERS[1:3], n, replace = TRUE))

Distal_Lead_Migration <- 10 * abs(rnorm(n))    # Distal_Lead_Migration in cm
PostOp_ICA <- 5 * abs(rnorm(n))

# amount of observations equals to amout of subjects
Subject <- paste0("X", 1:n)
DBS <- data.frame(DBS_Electrode, PostOp_ICA, Subject, Distal_Lead_Migration)
model <- lmer(Distal_Lead_Migration ~ DBS_Electrode + PostOp_ICA + (1|Subject), data = DBS)
# Error: number of levels of each grouping factor must be < number of observations


# amount of observations more than amout of subjects
Subject <- c(paste0("X", 1:36), "X1", "X37")
DBS <- data.frame(DBS_Electrode, PostOp_ICA, Subject, Distal_Lead_Migration)
model <- lmer(Distal_Lead_Migration ~ DBS_Electrode + PostOp_ICA + (1|Subject), data = DBS)
summary(model)

Output:

Linear mixed model fit by REML ['lmerMod']
Formula: Distal_Lead_Migration ~ DBS_Electrode + PostOp_ICA + (1 | Subject)
   Data: DBS

REML criterion at convergence: 224.5

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-1.24605 -0.73780 -0.07638  0.64381  2.53914 

Random effects:
 Groups   Name        Variance  Std.Dev. 
 Subject  (Intercept) 2.484e-14 1.576e-07
 Residual             2.953e+01 5.434e+00
Number of obs: 38, groups:  Subject, 37

Fixed effects:
               Estimate Std. Error t value
(Intercept)     7.82514    2.38387   3.283
DBS_ElectrodeB  0.22884    2.50947   0.091
DBS_ElectrodeC -0.60940    2.21970  -0.275
PostOp_ICA     -0.08473    0.36765  -0.230

Correlation of Fixed Effects:
            (Intr) DBS_EB DBS_EC
DBS_ElctrdB -0.718              
DBS_ElctrdC -0.710  0.601       
PostOp_ICA  -0.693  0.324  0.219
Artem
  • 3,304
  • 3
  • 18
  • 41