Search code examples
nlmerandom-effectsglmm

random effects structure with weird residual plot


So We are triying to fit a glmm to my_data. my_data

Figure Figure resume the descriptive statistic of my_data. D0.Richness is unbalanced (n=sample size for each Group1 level) as we can see in figure. Then we fit data in nlme:

m.1.a = lme(D0_.Riqueza.~Tratamento+SistemaTempoTemperatura, random = ~1|Tank/Sample, data = my_data, control =list(msMaxIter = 1000, msMaxEval = 1000))

Linear mixed-effects model fit by REML
  Data: my_data 
       AIC      BIC    logLik
  728.1183 775.5072 -344.0591

Random effects:
 Formula: ~1 | Tank
        (Intercept)
StdDev:    9.578657

 Formula: ~1 | Sample %in% Tank
        (Intercept) Residual
StdDev:    14.19689 5.685644

Fixed effects:  D0_.Riqueza. ~ Tratamento + Sistema * Tempo * Temperatura 
                                            Value Std.Error DF    t-value p-value
(Intercept)                             -883.5998 1498.9767 72 -0.5894687  0.5574
TratamentoControl                         -0.3201    7.8723  7 -0.0406651  0.9687
SistemaBiofloco                          467.9542 1508.0596  7  0.3103022  0.7654
TempoDay06                              1729.2678 1045.7843 72  1.6535607  0.1026
TempoDay11                               890.5315 1459.7221 72  0.6100692  0.5437
TempoDay30                               575.8523 1283.1337 72  0.4487859  0.6549
Temperatura                               28.1173   46.0317 72  0.6108247  0.5432
SistemaBiofloco:TempoDay06             -1090.8551 1069.6759 72 -1.0197996  0.3112
SistemaBiofloco:TempoDay11               -10.2688 1477.1431 72 -0.0069518  0.9945
SistemaBiofloco:TempoDay30              -210.7544 1297.7599 72 -0.1623986  0.8714
SistemaBiofloco:Temperatura              -14.3765   46.2605 72 -0.3107720  0.7569
TempoDay06:Temperatura                   -59.7401   31.9417 72 -1.8702879  0.0655
TempoDay11:Temperatura                   -26.9311   50.7368 72 -0.5308009  0.5972
TempoDay30:Temperatura                   -16.4391   43.8698 72 -0.3747247  0.7090
SistemaBiofloco:TempoDay06:Temperatura    39.3035   32.9882 72  1.1914422  0.2374
SistemaBiofloco:TempoDay11:Temperatura    -0.7773   51.3028 72 -0.0151506  0.9880
SistemaBiofloco:TempoDay30:Temperatura     6.3729   44.3377 72  0.1437347  0.8861
 Correlation: 
                                       (Intr) TrtmnC SstmBf TmpD06 TmpD11 TmpD30 Tmprtr SsB:TD06 SsB:TD11 SsB:TD30 SstB:T TD06:T
TratamentoControl                       0.425                                                                                   
SistemaBiofloco                        -0.992 -0.419                                                                            
TempoDay06                             -0.786 -0.230  0.781                                                                     
TempoDay11                             -0.162  0.072  0.162  0.341                                                              
TempoDay30                             -0.171  0.090  0.170  0.381  0.357                                                       
Temperatura                            -1.000 -0.428  0.992  0.786  0.162  0.170                                                
SistemaBiofloco:TempoDay06              0.768  0.223 -0.774 -0.977 -0.334 -0.373 -0.768                                         
SistemaBiofloco:TempoDay11              0.158 -0.076 -0.167 -0.336 -0.989 -0.354 -0.158  0.343                                  
SistemaBiofloco:TempoDay30              0.165 -0.097 -0.178 -0.375 -0.354 -0.989 -0.165  0.382    0.362                         
SistemaBiofloco:Temperatura             0.992  0.419 -1.000 -0.781 -0.162 -0.170 -0.992  0.774    0.167    0.178                
TempoDay06:Temperatura                  0.607  0.123 -0.603 -0.968 -0.374 -0.421 -0.606  0.946    0.369    0.415    0.603       
TempoDay11:Temperatura                  0.032 -0.129 -0.032 -0.241 -0.991 -0.339 -0.031  0.236    0.980    0.336    0.032  0.298
TempoDay30:Temperatura                  0.037 -0.150 -0.037 -0.279 -0.340 -0.991 -0.036  0.273    0.337    0.981    0.037  0.344
SistemaBiofloco:TempoDay06:Temperatura -0.587 -0.119  0.593  0.937  0.362  0.408  0.587 -0.969   -0.372   -0.417   -0.593 -0.968
SistemaBiofloco:TempoDay11:Temperatura -0.030  0.132  0.037  0.238  0.981  0.336  0.029 -0.245   -0.992   -0.343   -0.037 -0.294
SistemaBiofloco:TempoDay30:Temperatura -0.033  0.156  0.045  0.274  0.337  0.981  0.033 -0.283   -0.344   -0.991   -0.045 -0.340
                                       TD11:T TD30:T SB:TD06: SB:TD11:
TratamentoControl                                                     
SistemaBiofloco                                                       
TempoDay06                                                            
TempoDay11                                                            
TempoDay30                                                            
Temperatura                                                           
SistemaBiofloco:TempoDay06                                            
SistemaBiofloco:TempoDay11                                            
SistemaBiofloco:TempoDay30                                            
SistemaBiofloco:Temperatura                                           
TempoDay06:Temperatura                                                
TempoDay11:Temperatura                                                
TempoDay30:Temperatura                  0.339                         
SistemaBiofloco:TempoDay06:Temperatura -0.288 -0.333                  
SistemaBiofloco:TempoDay11:Temperatura -0.990 -0.336  0.298           
SistemaBiofloco:TempoDay30:Temperatura -0.337 -0.991  0.343    0.343  

Standardized Within-Group Residuals:
         Min           Q1          Med           Q3          Max 
-0.964339023 -0.204337214  0.001215562  0.178330841  1.035617143 

Number of Observations: 96
Number of Groups: 
            Tank Sample %in% Tank 
              10               96 $

r.squaredGLMM(m.1.a)*100
          R2m      R2c
[1,] 37.35081 93.78055

#"Sample" is a unique individual. Individuals were measured just once. It was considered random intercept of each sample nested in Tank. Eventually it was considered a random slope by Tempo (~Tempo|Tank/Sample), but nlme give a error message "Error in lme.formula(D0_.Riqueza. ~ Tratamento + Sistema * Tempo + Tempo * : fewer observations than random effects in all level 2 groups".

Question 1: Is valid the structure of our random effects (nesting each "Sample" within its respective "Tank")?

Question 2: Why the residual plot of "m.1.a" residual.m.1.a does display a linear beahvior? Is it because the random effect structure apllied?

So We tried with other random efects structure, avoid nesting:

m.1.b = lme(D0_.Riqueza.~Tratamento+SistemaTempoTemperatura, random = ~ Tempo|Tank, data = my_data, control =list(msMaxIter = 1000, msMaxEval = 1000))


Linear mixed-effects model fit by REML
  Data: my_data 
       AIC      BIC    logLik
  742.6198 808.9644 -343.3099

Random effects:
 Formula: ~Tempo | Tank
 Structure: General positive-definite, Log-Cholesky parametrization
            StdDev    Corr                
(Intercept)  8.240640 (Intr) TmpD06 TmpD11
TempoDay06   5.070250  0.510              
TempoDay11   6.103859  0.875  0.863       
TempoDay30   6.964783 -0.416 -0.994 -0.804
Residual    14.848455                     

Fixed effects:  D0_.Riqueza. ~ Tratamento + Sistema * Tempo * Temperatura 
                                            Value Std.Error DF    t-value p-value
(Intercept)                             -699.2080 1353.0931 72 -0.5167479  0.6069
TratamentoControl                          1.9563    7.2293  7  0.2706094  0.7945
SistemaBiofloco                          300.5875 1360.6927  7  0.2209077  0.8315
TempoDay06                              1659.6087  995.3994 72  1.6672791  0.0998
TempoDay11                               920.8840 1701.0956 72  0.5413476  0.5899
TempoDay30                               609.2401 1518.2923 72  0.4012667  0.6894
Temperatura                               22.4262   41.5534 72  0.5396953  0.5911
SistemaBiofloco:TempoDay06             -1025.2037 1022.8656 72 -1.0022858  0.3196
SistemaBiofloco:TempoDay11               -31.1847 1717.5524 72 -0.0181565  0.9856
SistemaBiofloco:TempoDay30              -263.6907 1532.1944 72 -0.1721000  0.8638
SistemaBiofloco:Temperatura               -9.2445   41.7400 72 -0.2214774  0.8253
TempoDay06:Temperatura                   -58.6019   32.7316 72 -1.7903776  0.0776
TempoDay11:Temperatura                   -28.8282   60.9389 72 -0.4730668  0.6376
TempoDay30:Temperatura                   -18.3361   50.9577 72 -0.3598304  0.7200
SistemaBiofloco:TempoDay06:Temperatura    38.1812   33.8937 72  1.1264979  0.2637
SistemaBiofloco:TempoDay11:Temperatura     0.6981   61.4697 72  0.0113569  0.9910
SistemaBiofloco:TempoDay30:Temperatura     8.8940   51.4277 72  0.1729427  0.8632
 Correlation: 
                                       (Intr) TrtmnC SstmBf TmpD06 TmpD11 TmpD30 Tmprtr SsB:TD06 SsB:TD11 SsB:TD30 SstB:T TD06:T
TratamentoControl                       0.433                                                                                   
SistemaBiofloco                        -0.992 -0.424                                                                            
TempoDay06                             -0.651 -0.222  0.646                                                                     
TempoDay11                              0.130  0.057 -0.129  0.319                                                              
TempoDay30                             -0.358  0.070  0.357  0.218  0.023                                                       
Temperatura                            -1.000 -0.435  0.992  0.651 -0.130  0.358                                                
SistemaBiofloco:TempoDay06              0.633  0.215 -0.639 -0.973 -0.311 -0.213 -0.633                                         
SistemaBiofloco:TempoDay11             -0.129 -0.057  0.123 -0.316 -0.990 -0.023  0.129  0.324                                  
SistemaBiofloco:TempoDay30              0.350 -0.081 -0.361 -0.214 -0.024 -0.992 -0.349  0.217    0.029                         
SistemaBiofloco:Temperatura             0.992  0.424 -1.000 -0.646  0.129 -0.357 -0.992  0.639   -0.123    0.361                
TempoDay06:Temperatura                  0.422  0.110 -0.419 -0.963 -0.428 -0.133 -0.421  0.937    0.423    0.131    0.419       
TempoDay11:Temperatura                 -0.227 -0.099  0.225 -0.248 -0.995  0.013  0.227  0.242    0.986   -0.011   -0.225  0.378
TempoDay30:Temperatura                  0.264 -0.118 -0.263 -0.157 -0.038 -0.995 -0.263  0.153    0.038    0.987    0.263  0.093
SistemaBiofloco:TempoDay06:Temperatura -0.408 -0.108  0.412  0.930  0.413  0.129  0.407 -0.964   -0.426   -0.133   -0.412 -0.966
SistemaBiofloco:TempoDay11:Temperatura  0.225  0.098 -0.219  0.246  0.987 -0.013 -0.225 -0.255   -0.995    0.007    0.219 -0.374
SistemaBiofloco:TempoDay30:Temperatura -0.256  0.129  0.267  0.152  0.038  0.987  0.256 -0.156   -0.043   -0.995   -0.267 -0.091
                                       TD11:T TD30:T SB:TD06: SB:TD11:
TratamentoControl                                                     
SistemaBiofloco                                                       
TempoDay06                                                            
TempoDay11                                                            
TempoDay30                                                            
Temperatura                                                           
SistemaBiofloco:TempoDay06                                            
SistemaBiofloco:TempoDay11                                            
SistemaBiofloco:TempoDay30                                            
SistemaBiofloco:Temperatura                                           
TempoDay06:Temperatura                                                
TempoDay11:Temperatura                                                
TempoDay30:Temperatura                  0.011                         
SistemaBiofloco:TempoDay06:Temperatura -0.365 -0.090                  
SistemaBiofloco:TempoDay11:Temperatura -0.991 -0.011  0.378           
SistemaBiofloco:TempoDay30:Temperatura -0.012 -0.992  0.093    0.016  

Standardized Within-Group Residuals:
        Min          Q1         Med          Q3         Max 
-2.42113917 -0.54063148 -0.02540128  0.43542432  2.86898537 

Number of Observations: 96
Number of Groups: 10 
> r.squaredGLMM(m.1.b)*100
          R2m      R2c
[1,] 36.54991 58.24922

Actually, we compare both models:

 anova(m.1.a, m.1.b)
      Model df      AIC      BIC    logLik   Test  L.Ratio p-value
m.1.a     1 20 728.1183 775.5072 -344.0591                        
m.1.b     2 28 742.6198 808.9644 -343.3099 1 vs 2 1.498451  0.9927

Despite there were no differences between models (although AIC and BIC was lower for m.1.a), residual plot (m.1.b) was different (and "better") residual.m.1.b.

Should we keep model m.1.a? If so, is there a way to understand and improve the residuals behavior of m.1.a? Any help will be appreciated.


Solution

  • Fitting a random effect where there's only one observation per block severely reduces the identifiability of your model: the random effect is directly competing with your residual error and nothing else. This is also the reason why you can't add a second random effect parameter, there's just no additional degrees of freedom to fit it - not that it would make any sense.

    While you haven't explained your experimental setup or hypothesis in much detail the second model seems to make a lot more sense, where the random effect will handle the between-tank variability and the residual is subject within tank. In the second model you should also be able to add a random slope without issues (both for producing the fit and its interpretation).