I want to run a linear mixed effects model with nested and random effects using lmer in R, but continue getting errors. Two questions: what is causing the errors and how can I fix my model to run the appropriate analyses? Thanks so much!
Experimental design: Four sites- each site has 2 plant species and 3 accessions for each plant species (6 accessions total). An accession is essentially a plant population and they are unique to a particular plant species. At each site, there are two treatments: plants given nitrogen enriched fertilizer and plants given nitrogen free fertilizer. All species and all accessions are present at every site. I collected data on plant growth and root traits and log-transformed variables as needed. I also set Accession (coded 1 - 6), Site (coded 1 - 4), and SoilN treatment (coded 1 and 2) as factors. All response variables are continuous.
Data structure:
Species Accession ID Site SoilN LeafNo LogLeaf Height NodNo SBMg
1 MESA 4 250975.1 1 1 15 1.178977 18.1 3 0.0876
2 MESA 4 250975.4 1 1 12 1.082785 18.6 3 0.0896
3 MESA 4 250975.4 1 1 20 1.303196 22.4 20 0.1395
4 MESA 4 250975.5 1 1 8 0.908485 18.4 2 0.0727
5 MESA 4 250975.2 1 2 57 1.756636 33.5 23 0.5665
6 MESA 4 250975.2 1 2 60 1.778874 44.8 61 0.5394
Model: I want to test the effects of treatment (SoilN), Species, and Accession on plant growth and root traits. I have been running two models- one for species and one for accession. I would like to test an interaction between species or accession and soil N, include site as a random effect, and nest accession within species. I wrote the following models:
lf <- lmer(LogLeaf ~ SoilN * Species + (1|Species/Accession) + (1|Site), data=a)
lf2 <- lmer(LogLeaf ~ SoilN * Accession + (1|Species/Accession) + (1|Site), data=a)
Output:
lf <- lmer(LogLeaf ~ SoilN * Species + (1|Species/Accession) + (1|Site),
data = a)
Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model is nearly unidentifiable: large eigenvalue ratio
- Rescale variables?`
summary(lf)
Linear mixed model fit by REML
t-tests use Satterthwaite approximations to degrees of freedom
['lmerMod']
Formula: LogLeaf ~ SoilN * Species + (1 | Species/Accession) + (1 |
Site)
Data: a
REML criterion at convergence: 109.5
Scaled residuals:
Min 1Q Median 3Q Max
-4.9162 -0.2557 0.1309 0.5600 1.5150
Random effects:
Groups Name Variance Std.Dev.
Accession:Species (Intercept) 0.004266 0.06531
Site (Intercept) 0.046332 0.21525
Species (Intercept) 0.038957 0.19738
Residual 0.109152 0.33038
Number of obs: 140, groups: Accession:Species, 6; Site, 4; Species, 2
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.90231 0.23405 0.00000 3.855 1.0000
SoilN2 0.73319 0.07247 129.76000 10.117 <2e-16 ***
SpeciesTRPR -0.45583 0.29753 0.00000 -1.532 1.0000
SoilN2:SpeciesTRPR -0.26846 0.11621 132.12000 -2.310 0.0224 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) SoilN2 SpTRPR
SoilN2 -0.166
SpeciesTRPR -0.619 0.128
SlN2:SpTRPR 0.102 -0.620 -0.223
convergence code: 0
Model is nearly unidentifiable: large eigenvalue ratio
- Rescale variables?
anova(lf)
Analysis of Variance Table of type III with Satterthwaite
approximation for degrees of freedom
Sum Sq Mean Sq NumDF DenDF F.value Pr(>F)
SoilN 11.5037 11.5037 1 132.11 105.392 < 2e-16 ***
Species 0.4513 0.4513 1 0.00 4.135 0.99998
SoilN:Species 0.5825 0.5825 1 132.12 5.337 0.02243 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model is nearly unidentifiable: large eigenvalue ratio
- Rescale variables?`
For the accession model (lf2), I get the following warnings:
lf2 <- lmer(LogLeaf ~ SoilN * Accession + (1|Species/Accession) +
(1|Site), data = a)
Warning messages:
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
unable to evaluate scaled gradient
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge: degenerate Hessian with 1 negative eigenvalues
summary(lf2)
Error in calculation of the Satterthwaite's approximation. The output of
lme4 package is returned
summary from lme4 is returned
some computational error has occurred in lmerTest
anova(lf2)
Error in calculation of the Satterthwaite's approximation.
The output of lme4 package is returned
anova from lme4 is returned
some computational error has occurred in lmerTest
Analysis of Variance Table
Df Sum Sq Mean Sq F value
SoilN 1 13.4357 13.4357 121.8414
Accession 5 0.3728 0.0746 0.6761
SoilN:Accession 5 0.8892 0.1778 1.6127
Warning messages:
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
unable to evaluate scaled gradient
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge: degenerate Hessian with 1 negative eigenvalues
Other notes:
The model runs if I nest Accession within Species within Site, although I'm not sure that's a correct way to analyze the data.
It also runs if I don't nest Accession within Species, but still include Site and Accession as random effects.
I do have some zeros in my data set because some of the plant died. I added data to determine whether the zeros were causing the issue, but continued to get errors.