fanning models

library (tidyverse)
── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
✔ ggplot2 3.4.0      ✔ purrr   1.0.1 
✔ tibble  3.1.8      ✔ dplyr   1.0.10
✔ tidyr   1.3.0      ✔ stringr 1.5.0 
✔ readr   2.1.3      ✔ forcats 0.5.2 
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
library(ggplot2)
library(lme4)
Loading required package: Matrix

Attaching package: 'Matrix'

The following objects are masked from 'package:tidyr':

    expand, pack, unpack
library(glmmTMB)
Warning in checkDepPackageVersion(dep_pkg = "TMB"): Package version inconsistency detected.
glmmTMB was built with TMB version 1.9.1
Current TMB version is 1.9.2
Please re-install glmmTMB from source or restore original 'TMB' package (see '?reinstalling' for more information)
library(effects)
Loading required package: carData
lattice theme set by effectsTheme()
See ?effectsTheme for details.
library(car)

Attaching package: 'car'

The following object is masked from 'package:dplyr':

    recode

The following object is masked from 'package:purrr':

    some
library(bbmle)
Loading required package: stats4

Attaching package: 'bbmle'

The following object is masked from 'package:dplyr':

    slice
library(performance)
library(readr)
library(effects)

setwd("~/BIOL234/BEEhavior")

behavior_23Feb23 <- read_csv("behavior_23Feb23.csv")
Rows: 2008 Columns: 18
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr   (5): microcolony, date, date_withyr, observer_initials, notes
dbl  (11): replicate, temp, moving, feeding, stationary, incubating, fanning...
lgl   (1): drop
time  (1): time

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
behavior <- behavior_23Feb23

behaviorprop<- behavior_23Feb23

Fanning Model

m4 <- glmer(formula = fanning~temp+day_of_experiment+infected+total_alive+(1|parent), family = "poisson", data = behavior)
plot(allEffects(m4))

vif(m4)
             temp day_of_experiment          infected       total_alive 
         1.016248          1.112137          1.018022          1.106488 

Model 4.1: everything except random effect

m4.1 <- glm(formula = fanning~temp+day_of_experiment+infected+total_alive, family = "poisson", data = behavior)
plot(allEffects(m4.1))

vif(m4.1)
             temp day_of_experiment          infected       total_alive 
         1.089218          1.142275          1.057377          1.081851 

Compare to see which is better with dAIC

ICtab(m4,m4.1)
     dAIC  df
m4     0.0 6 
m4.1 272.9 5 
# keep random effect 

Model 4.2: everything except total_alive

m4.2 <- glmer(formula = fanning~temp+day_of_experiment+infected+(1|parent), family = "poisson", data = behavior)
plot(allEffects(m4.2))

Model 4.3: everything except infected

m4.3 <- glmer(formula = fanning~temp+day_of_experiment+total_alive+(1|parent), family = "poisson", data = behavior)
plot(allEffects(m4.3))

Model 4.4: keep everything except day_of_experiment

m4.4 <- glmer(formula = fanning~temp+infected+total_alive+(1|parent), family = "poisson", data = behavior)
plot(allEffects(m4.4))

Compare model performance

compare_performance(m4,m4.1,m4.2,m4.3,m4.4, rank=TRUE)
Warning: Following indices with missing values are not used for ranking:
  R2_conditional, R2_marginal, ICC, R2_Nagelkerke
# Comparison of Model Performance Indices

Name |    Model |  RMSE | Sigma | Score_log | Score_spherical | AIC weights | AICc weights | BIC weights | Performance-Score
----------------------------------------------------------------------------------------------------------------------------
m4   | glmerMod | 1.342 | 1.000 |    -1.226 |           0.023 |       0.945 |        0.944 |       0.564 |           100.00%
m4.3 | glmerMod | 1.343 | 1.000 |    -1.229 |           0.023 |       0.055 |        0.056 |       0.436 |            68.89%
m4.2 | glmerMod | 1.359 | 1.000 |    -1.242 |           0.023 |    5.84e-09 |     5.89e-09 |    4.59e-08 |            49.07%
m4.4 | glmerMod | 1.408 | 1.000 |    -1.269 |           0.023 |    1.91e-23 |     1.93e-23 |    1.50e-22 |            42.13%
m4.1 |      glm | 1.640 | 1.214 |    -1.346 |           0.023 |    5.23e-60 |     5.27e-60 |    4.11e-59 |             0.00%
# Original model is best- should I be skeptical of the performance score of 100%? 

run best model (model 4) with proportion data

#1242 49 85
fanningprop = (behaviorprop$fanning/behaviorprop$total_alive)
behaviorprop<- cbind(behaviorprop,fanningprop)

behaviorprop <- behaviorprop %>%
  filter(fanningprop<=1)

m4.01 <- glmer(formula = fanningprop~temp+day_of_experiment+infected+total_alive+(1|parent), family = "binomial", data = behaviorprop)
Warning in eval(family$initialize, rho): non-integer #successes in a binomial
glm!
boundary (singular) fit: see help('isSingular')
m4.01
Generalized linear mixed model fit by maximum likelihood (Laplace
  Approximation) [glmerMod]
 Family: binomial  ( logit )
Formula: fanningprop ~ temp + day_of_experiment + infected + total_alive +  
    (1 | parent)
   Data: behaviorprop
      AIC       BIC    logLik  deviance  df.resid 
 508.2661  539.1797 -248.1331  496.2661      1271 
Random effects:
 Groups Name        Std.Dev.
 parent (Intercept) 0       
Number of obs: 1277, groups:  parent, 6
Fixed Effects:
      (Intercept)               temp  day_of_experiment           infected  
         -7.48191            0.20163           -0.05126           -0.91080  
      total_alive  
         -0.15886  
optimizer (Nelder_Mead) convergence code: 0 (OK) ; 0 optimizer warnings; 1 lme4 warnings 
plot(allEffects(m4.01))
Warning in eval(family$initialize): non-integer #successes in a binomial glm!
Warning in eval(family$initialize): non-integer #successes in a binomial glm!

Warning in eval(family$initialize): non-integer #successes in a binomial glm!

Warning in eval(family$initialize): non-integer #successes in a binomial glm!

behaviorprop$notfanning <- behaviorprop$total_alive-behaviorprop$fanning

m4.5 <- glmer(formula = cbind(fanning,notfanning)~temp+day_of_experiment+infected+total_alive+(1|parent), family = "binomial", data = behaviorprop)
summary(m4.5)
Generalized linear mixed model fit by maximum likelihood (Laplace
  Approximation) [glmerMod]
 Family: binomial  ( logit )
Formula: cbind(fanning, notfanning) ~ temp + day_of_experiment + infected +  
    total_alive + (1 | parent)
   Data: behaviorprop

     AIC      BIC   logLik deviance df.resid 
  3250.5   3281.4  -1619.3   3238.5     1271 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.7866 -0.7722 -0.2869  0.3127 30.5462 

Random effects:
 Groups Name        Variance Std.Dev.
 parent (Intercept) 0.4394   0.6629  
Number of obs: 1277, groups:  parent, 6

Fixed effects:
                    Estimate Std. Error z value Pr(>|z|)    
(Intercept)       -12.475342   0.546920 -22.810  < 2e-16 ***
temp                0.305227   0.009483  32.187  < 2e-16 ***
day_of_experiment  -0.043913   0.004581  -9.586  < 2e-16 ***
infected           -0.178422   0.066461  -2.685  0.00726 ** 
total_alive         0.043141   0.028476   1.515  0.12977    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) temp   dy_f_x infctd
temp        -0.701                     
dy_f_xprmnt -0.216  0.016              
infected    -0.094  0.042  0.141       
total_alive -0.585  0.122  0.285  0.003
plot(allEffects(m4.5))