8  Thickness

Data

Description

Variable Description
Mouse

Mouse unique identifier

Condition

Hypoxia condition: Normoxia (N) vs Intermittent Hypoxia (IH)

Stage

Developmental stage

Thick_EGL

EGL thickness (µm)

Thick_MLPL

ML+PL thickness (µm)

Thick_IGL

IGL thickness (µm)

Thick_Total

Total thickness of the cerebellar cortex (µm)

Variable Description
Mouse

Mouse unique identifier

Condition

Hypoxia condition: Normoxia (N) vs Intermittent Hypoxia (IH)

Stage

Developmental stage

Thick_EGL

EGL thickness (µm)

Thick_MLPL

ML+PL thickness (µm)

Thick_IGL

IGL thickness (µm)

Thick_Total

Total thickness of the cerebellar cortex (µm)

Correlations

8.1 EGL Thickness [P12 only]

8.1.1 Data Exploration

Distribution:

Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 33.3 13.148 172.864 0.395 14.155 9.68 122.425 2.002 7.403 444
IH 41.045 12.854 165.216 0.313 16.23 14.526 91.649 0.89 0.65 671
Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 33.3 13.148 172.864 0.395 14.155 9.68 122.425 2.002 7.403 444
IH 41.045 12.854 165.216 0.313 16.23 14.526 91.649 0.89 0.65 671

8.1.2 Models & Diagnostics

Exploring some Generalized Linear (Mixed) model candidates:

Model call:

```{r}
glmmTMB(formula = Thick_EGL ~ Condition + (1 | Mouse) + (1 | 
    Slice), data = data, family = Gamma("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

Performance:

performance::performance(mod)
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
8483.49 8483.54 8508.57 0.31 0.08 0.25 11.55 0.29
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
8483.49 8483.54 8508.57 0.31 0.08 0.25 11.55 0.29

Residuals:

performance::check_model(
  mod, panel = FALSE,
  check = c("pp_check", "qq", "reqq", "linearity", "homogeneity")
)

Predictions:

Simulating data from the model for pseudo “Posterior Predictive” plots.

Simulated data vs observed data:

Simulated statistics vs observed ones:

Potential outliers:

Model call:

```{r}
glmmTMB(formula = Thick_EGL ~ Condition + (1 | Mouse) + (1 | 
    Slice), data = data, family = gaussian("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

Performance:

performance::performance(mod)
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
8713.36 8713.41 8738.44 2.78e-04 7.12e-05 2.06e-04 11.55 11.65
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
8713.36 8713.41 8738.44 2.78e-04 7.12e-05 2.06e-04 11.55 11.65

Residuals:

performance::check_model(
  mod, panel = FALSE,
  check = c("pp_check", "qq", "reqq", "linearity", "homogeneity")
)

Predictions:

Simulating data from the model for pseudo “Posterior Predictive” plots.

Simulated data vs observed data:

Simulated statistics vs observed ones:

Potential outliers:

8.1.3 Effects Analysis

```{r}
glmmTMB(formula = Thick_EGL ~ Condition + (1 | Mouse) + (1 | 
    Slice), data = data, family = Gamma("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

8.1.3.1 Coefficients

❖ All effects (Wald):

parameters::parameters(
  mod, component = "conditional", effects = "fixed",
  exponentiate = should_exp(mod), p_adjust = "none", summary = TRUE, digits = 3
)
Parameter Coefficient SE 95% CI z p
(Intercept) 37.901 1.818 (34.50, 41.64) 75.782 < .001
Condition1 0.904 0.043 (0.82, 0.99) -2.108 0.035 *
Model: Thick_EGL ~ Condition (1115 Observations)
Parameter Coefficient SE 95% CI z p
(Intercept) 37.901 1.818 (34.50, 41.64) 75.782 < .001
Condition1 0.904 0.043 (0.82, 0.99) -2.108 0.035 *
Model: Thick_EGL ~ Condition (1115 Observations)

❖ Main effects (Wald Chi-Square):

car::Anova(mod, type = 3)
term statistic df p.value
Condition 4.44 1 0.040 *
term statistic df p.value
Condition 4.44 1 0.040 *

❖ Main effects (Likelihood Ratio Test):

LRT(mod, pred = "Condition")
model df aic bic log_lik deviance chisq chi_df pr_chisq
mod_reduced 4 8477.18 8497.25 -4234.59 8469.18
mod_full 5 8474.66 8499.74 -4232.33 8464.66 4.52 1 0.030 *
model df aic bic log_lik deviance chisq chi_df pr_chisq
mod_reduced 4 8477.18 8497.25 -4234.59 8469.18
mod_full 5 8474.66 8499.74 -4232.33 8464.66 4.52 1 0.030 *
Important

Our LRT() method removes the predictor plus all its interactions

8.1.3.2 Marginal Effects

Marginal means & Contrasts for each predictor:

Marginal Means:

emmeans(mod, specs = pred, type = "response")
Condition response SE df lower.CL upper.CL
N 34.247 2.465 1,112 29.736 39.442
IH 41.945 2.668 1,112 37.023 47.52
Condition response SE df lower.CL upper.CL
N 34.247 2.465 1,112 29.736 39.442
IH 41.945 2.668 1,112 37.023 47.52
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale

Contrasts:

emmeans(mod, specs = pred, type = "response") |> 
  contrast(method = "pairwise", adjust = "none", infer = TRUE)
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 0.816 0.079 1,112 0.676 0.986 1 −2.108 0.035 *
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 0.816 0.079 1,112 0.676 0.986 1 −2.108 0.035 *
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale

Boxplot:


8.2 ML+PL Thickness [P12 + P21]

8.2.1 Data Exploration

Distribution:

Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 96.885 22.546 508.333 0.233 28.695 43.365 192.039 0.621 0.749 444
IH 49.156 15.736 247.632 0.32 22.041 21.885 109.143 0.968 0.665 671
Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 96.885 22.546 508.333 0.233 28.695 43.365 192.039 0.621 0.749 444
IH 49.156 15.736 247.632 0.32 22.041 21.885 109.143 0.968 0.665 671
Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 162.484 36.25 1,314.093 0.223 45.236 76.871 345.966 0.536 1.267 641
IH 150.704 35.029 1,227.055 0.232 45.784 67.548 271.045 0.398 0.162 594
Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 162.484 36.25 1,314.093 0.223 45.236 76.871 345.966 0.536 1.267 641
IH 150.704 35.029 1,227.055 0.232 45.784 67.548 271.045 0.398 0.162 594

8.2.2 Models & Diagnostics

Exploring some Generalized Linear (Mixed) model candidates:

Model call:

```{r}
glmmTMB(formula = Thick_MLPL ~ Condition * Stage + (1 | Mouse) + 
    (1 | Slice), data = data, family = Gamma("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

Performance:

performance::performance(mod)
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
21340.99 21341.04 21381.32 0.84 0.75 0.35 26.55 0.22
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
21340.99 21341.04 21381.32 0.84 0.75 0.35 26.55 0.22

Residuals:

performance::check_model(
  mod, panel = FALSE,
  check = c("pp_check", "qq", "reqq", "linearity", "homogeneity")
)

Predictions:

Simulating data from the model for pseudo “Posterior Predictive” plots.

Simulated data vs observed data:

Simulated statistics vs observed ones:

Potential outliers:

Model call:

```{r}
glmmTMB(formula = Thick_MLPL ~ Condition * Stage + (1 | Mouse) + 
    (1 | Slice), data = data, family = gaussian("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

Performance:

performance::performance(mod)
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
22248.83 22248.88 22289.17 3.42e-04 3.08e-04 3.41e-05 26.53 26.74
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
22248.83 22248.88 22289.17 3.42e-04 3.08e-04 3.41e-05 26.53 26.74

Residuals:

performance::check_model(
  mod, panel = FALSE,
  check = c("pp_check", "qq", "reqq", "linearity", "homogeneity")
)

Predictions:

Simulating data from the model for pseudo “Posterior Predictive” plots.

Simulated data vs observed data:

Simulated statistics vs observed ones:

Potential outliers:

8.2.3 Effects Analysis

```{r}
glmmTMB(formula = Thick_MLPL ~ Condition * Stage + (1 | Mouse) + 
    (1 | Slice), data = data, family = Gamma("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

8.2.3.1 Coefficients

❖ All effects (Wald):

parameters::parameters(
  mod, component = "conditional", effects = "fixed",
  exponentiate = should_exp(mod), p_adjust = "none", summary = TRUE, digits = 3
)
Parameter Coefficient SE 95% CI z p
(Intercept) 106.909 4.528 (98.39, 116.16) 110.313 < .001
Condition1 1.179 0.050 (1.09, 1.28) 3.898 < .001
Stage1 0.674 0.029 (0.62, 0.73) -9.300 < .001
Condition1 * Stage1 1.132 0.048 (1.04, 1.23) 2.933 0.003 **
Model: Thick_MLPL ~ Condition * Stage (2350 Observations)
Parameter Coefficient SE 95% CI z p
(Intercept) 106.909 4.528 (98.39, 116.16) 110.313 < .001
Condition1 1.179 0.050 (1.09, 1.28) 3.898 < .001
Stage1 0.674 0.029 (0.62, 0.73) -9.300 < .001
Condition1 * Stage1 1.132 0.048 (1.04, 1.23) 2.933 0.003 **
Model: Thick_MLPL ~ Condition * Stage (2350 Observations)

❖ Main effects (Wald Chi-Square):

car::Anova(mod, type = 3)
term statistic df p.value
Condition 15.19 1 <0.001 ***
Stage 86.49 1 <0.001 ***
Condition:Stage 8.60 1 0.003 **
term statistic df p.value
Condition 15.19 1 <0.001 ***
Stage 86.49 1 <0.001 ***
Condition:Stage 8.60 1 0.003 **

❖ Main effects (Likelihood Ratio Test):

LRT(mod, pred = "Condition")
model df aic bic log_lik deviance chisq chi_df pr_chisq
mod_reduced 5 21335.55 21364.36 -10662.78 21325.55
mod_full 7 21322.21 21362.55 -10654.11 21308.21 17.34 2 <0.001 ***
model df aic bic log_lik deviance chisq chi_df pr_chisq
mod_reduced 5 21335.55 21364.36 -10662.78 21325.55
mod_full 7 21322.21 21362.55 -10654.11 21308.21 17.34 2 <0.001 ***
Important

Our LRT() method removes the predictor plus all its interactions

8.2.3.2 Marginal Effects

Marginal means & Contrasts for each predictor:

Marginal Means:

emmeans(mod, specs = pred, type = "response")
Condition response SE df lower.CL upper.CL
N 126.097 7.79 2,347 111.71 142.337
IH 90.641 5.253 2,347 80.904 101.549
Condition response SE df lower.CL upper.CL
N 126.097 7.79 2,347 111.71 142.337
IH 90.641 5.253 2,347 80.904 101.549
- Results are averaged over the levels of: Stage
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale

Contrasts:

emmeans(mod, specs = pred, type = "response") |> 
  contrast(method = "pairwise", adjust = "none", infer = TRUE)
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.391 0.118 2,347 1.178 1.643 1 3.898 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.391 0.118 2,347 1.178 1.643 1 3.898 <0.001 ***
- Results are averaged over the levels of: Stage
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale

Boxplot:

Marginal Means:

emmeans(mod, specs = pred, type = "response")
Stage response SE df lower.CL upper.CL
P12 72.106 4.192 2,347 64.337 80.814
P21 158.51 9.764 2,347 140.475 178.861
Stage response SE df lower.CL upper.CL
P12 72.106 4.192 2,347 64.337 80.814
P21 158.51 9.764 2,347 140.475 178.861
- Results are averaged over the levels of: Condition
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale

Contrasts:

emmeans(mod, specs = pred, type = "response") |> 
  contrast(method = "pairwise", adjust = "none", infer = TRUE)
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
P12 / P21 0.455 0.039 2,347 0.385 0.537 1 −9.3 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
P12 / P21 0.455 0.039 2,347 0.385 0.537 1 −9.3 <0.001 ***
- Results are averaged over the levels of: Condition
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale

Boxplot:

Marginal Means:

emmeans(mod, specs = emmeans_formula, type = "response")
Condition response SE df lower.CL upper.CL
N 96.296 8.447 2,347 81.078 114.37
IH 53.993 4.121 2,347 46.487 62.71
Condition response SE df lower.CL upper.CL
N 96.296 8.447 2,347 81.078 114.37
IH 53.993 4.121 2,347 46.487 62.71
Condition response SE df lower.CL upper.CL
N 165.121 14.365 2,347 139.223 195.835
IH 152.164 13.271 2,347 128.243 180.547
Condition response SE df lower.CL upper.CL
N 165.121 14.365 2,347 139.223 195.835
IH 152.164 13.271 2,347 128.243 180.547
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale

Contrasts:

emmeans(mod, specs = emmeans_formula, type = "response") |> 
  contrast(method = "pairwise", adjust = "none", infer = TRUE)
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.783 0.207 2,347 1.42 2.24 1 4.976 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.783 0.207 2,347 1.42 2.24 1 4.976 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.085 0.134 2,347 0.852 1.382 1 0.663 0.507
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.085 0.134 2,347 0.852 1.382 1 0.663 0.507
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale
emmeans(mod, specs = emmeans_formula, type = "response") |>
  contrast(interaction = "pairwise", by = NULL, adjust = "none", infer = T)
Condition ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.644 0.278 2,347 1.179 2.291 1 2.933 0.003 **
Condition ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.644 0.278 2,347 1.179 2.291 1 2.933 0.003 **
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale

Boxplot:


8.3 (I)GL Thickness [P12 + P21]

8.3.1 Data Exploration

Distribution:

Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 130.9 41.978 1,762.194 0.321 45.561 57.018 401.257 1.368 4.015 444
IH 76.497 26.953 726.449 0.352 35.073 11.558 182.426 0.493 0.268 671
Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 130.9 41.978 1,762.194 0.321 45.561 57.018 401.257 1.368 4.015 444
IH 76.497 26.953 726.449 0.352 35.073 11.558 182.426 0.493 0.268 671
Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 164.272 49.706 2,470.638 0.303 69.291 52.526 324.071 0.493 −0.323 641
IH 146.351 41.739 1,742.103 0.285 51.457 61.27 303.049 0.737 0.673 594
Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 164.272 49.706 2,470.638 0.303 69.291 52.526 324.071 0.493 −0.323 641
IH 146.351 41.739 1,742.103 0.285 51.457 61.27 303.049 0.737 0.673 594

8.3.2 Models & Diagnostics

Exploring some Generalized Linear (Mixed) model candidates:

Model call:

```{r}
glmmTMB(formula = Thick_IGL ~ Condition * Stage + (1 | Mouse) + 
    (1 | Slice), data = data, family = Gamma("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

Performance:

performance::performance(mod)
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
23529.09 23529.14 23569.43 0.55 0.44 0.20 37.33 0.30
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
23529.09 23529.14 23569.43 0.55 0.44 0.20 37.33 0.30

Residuals:

performance::check_model(
  mod, panel = FALSE,
  check = c("pp_check", "qq", "reqq", "linearity", "homogeneity")
)

Predictions:

Simulating data from the model for pseudo “Posterior Predictive” plots.

Simulated data vs observed data:

Simulated statistics vs observed ones:

Potential outliers:

Model call:

```{r}
glmmTMB(formula = Thick_IGL ~ Condition * Stage + (1 | Mouse) + 
    (1 | Slice), data = data, family = gaussian("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

Performance:

performance::performance(mod)
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
23865.57 23865.62 23905.91 7.74e-05 6.14e-05 1.59e-05 37.29 37.62
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
23865.57 23865.62 23905.91 7.74e-05 6.14e-05 1.59e-05 37.29 37.62

Residuals:

performance::check_model(
  mod, panel = FALSE,
  check = c("pp_check", "qq", "reqq", "linearity", "homogeneity")
)

Predictions:

Simulating data from the model for pseudo “Posterior Predictive” plots.

Simulated data vs observed data:

Simulated statistics vs observed ones:

Potential outliers:

8.3.3 Effects Analysis

```{r}
glmmTMB(formula = Thick_IGL ~ Condition * Stage + (1 | Mouse) + 
    (1 | Slice), data = data, family = Gamma("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

8.3.3.1 Coefficients

❖ All effects (Wald):

parameters::parameters(
  mod, component = "conditional", effects = "fixed",
  exponentiate = should_exp(mod), p_adjust = "none", summary = TRUE, digits = 3
)
Parameter Coefficient SE 95% CI z p
(Intercept) 128.673 3.494 (122.00, 135.71) 178.872 < .001
Condition1 1.174 0.032 (1.11, 1.24) 5.910 < .001
Stage1 0.814 0.022 (0.77, 0.86) -7.583 < .001
Condition1 * Stage1 1.102 0.030 (1.04, 1.16) 3.568 < .001
Model: Thick_IGL ~ Condition * Stage (2350 Observations)
Parameter Coefficient SE 95% CI z p
(Intercept) 128.673 3.494 (122.00, 135.71) 178.872 < .001
Condition1 1.174 0.032 (1.11, 1.24) 5.910 < .001
Stage1 0.814 0.022 (0.77, 0.86) -7.583 < .001
Condition1 * Stage1 1.102 0.030 (1.04, 1.16) 3.568 < .001
Model: Thick_IGL ~ Condition * Stage (2350 Observations)

❖ Main effects (Wald Chi-Square):

car::Anova(mod, type = 3)
term statistic df p.value
Condition 34.93 1 <0.001 ***
Stage 57.51 1 <0.001 ***
Condition:Stage 12.73 1 <0.001 ***
term statistic df p.value
Condition 34.93 1 <0.001 ***
Stage 57.51 1 <0.001 ***
Condition:Stage 12.73 1 <0.001 ***

❖ Main effects (Likelihood Ratio Test):

LRT(mod, pred = "Condition")
model df aic bic log_lik deviance chisq chi_df pr_chisq
mod_reduced 5 23526.85 23555.66 -11758.42 23516.85
mod_full 7 23506.71 23547.04 -11746.35 23492.71 24.14 2 <0.001 ***
model df aic bic log_lik deviance chisq chi_df pr_chisq
mod_reduced 5 23526.85 23555.66 -11758.42 23516.85
mod_full 7 23506.71 23547.04 -11746.35 23492.71 24.14 2 <0.001 ***
Important

Our LRT() method removes the predictor plus all its interactions

8.3.3.2 Marginal Effects

Marginal means & Contrasts for each predictor:

Marginal Means:

emmeans(mod, specs = pred, type = "response")
Condition response SE df lower.CL upper.CL
N 151.055 5.922 2,347 139.878 163.125
IH 109.608 4.116 2,347 101.826 117.985
Condition response SE df lower.CL upper.CL
N 151.055 5.922 2,347 139.878 163.125
IH 109.608 4.116 2,347 101.826 117.985
- Results are averaged over the levels of: Stage
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale

Contrasts:

emmeans(mod, specs = pred, type = "response") |> 
  contrast(method = "pairwise", adjust = "none", infer = TRUE)
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.378 0.075 2,347 1.239 1.533 1 5.91 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.378 0.075 2,347 1.239 1.533 1 5.91 <0.001 ***
- Results are averaged over the levels of: Stage
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale

Boxplot:

Marginal Means:

emmeans(mod, specs = pred, type = "response")
Stage response SE df lower.CL upper.CL
P12 104.744 4.024 2,347 97.142 112.94
P21 158.07 6.063 2,347 146.617 170.417
Stage response SE df lower.CL upper.CL
P12 104.744 4.024 2,347 97.142 112.94
P21 158.07 6.063 2,347 146.617 170.417
- Results are averaged over the levels of: Condition
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale

Contrasts:

emmeans(mod, specs = pred, type = "response") |> 
  contrast(method = "pairwise", adjust = "none", infer = TRUE)
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
P12 / P21 0.663 0.036 2,347 0.596 0.737 1 −7.583 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
P12 / P21 0.663 0.036 2,347 0.596 0.737 1 −7.583 <0.001 ***
- Results are averaged over the levels of: Condition
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale

Boxplot:

Marginal Means:

emmeans(mod, specs = emmeans_formula, type = "response")
Condition response SE df lower.CL upper.CL
N 135.457 7.744 2,347 121.092 151.527
IH 80.994 4.151 2,347 73.25 89.556
Condition response SE df lower.CL upper.CL
N 135.457 7.744 2,347 121.092 151.527
IH 80.994 4.151 2,347 73.25 89.556
Condition response SE df lower.CL upper.CL
N 168.448 9.034 2,347 151.632 187.129
IH 148.331 8.138 2,347 133.201 165.18
Condition response SE df lower.CL upper.CL
N 168.448 9.034 2,347 151.632 187.129
IH 148.331 8.138 2,347 133.201 165.18
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale

Contrasts:

emmeans(mod, specs = emmeans_formula, type = "response") |> 
  contrast(method = "pairwise", adjust = "none", infer = TRUE)
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.672 0.128 2,347 1.439 1.944 1 6.704 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.672 0.128 2,347 1.439 1.944 1 6.704 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.136 0.087 2,347 0.977 1.32 1 1.657 0.098
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.136 0.087 2,347 0.977 1.32 1 1.657 0.098
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale
emmeans(mod, specs = emmeans_formula, type = "response") |>
  contrast(interaction = "pairwise", by = NULL, adjust = "none", infer = T)
Condition ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.473 0.16 2,347 1.191 1.822 1 3.568 <0.001 ***
Condition ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.473 0.16 2,347 1.191 1.822 1 3.568 <0.001 ***
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale

Boxplot:


8.4 Total Thickness [P12 + P21]

8.4.1 Data Exploration

Distribution:

Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 261.085 56.63 3,206.931 0.217 72.106 149.2 530.792 0.797 0.895 444
IH 166.698 38.866 1,510.594 0.233 52.218 77.111 316.283 0.711 0.414 671
Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 261.085 56.63 3,206.931 0.217 72.106 149.2 530.792 0.797 0.895 444
IH 166.698 38.866 1,510.594 0.233 52.218 77.111 316.283 0.711 0.414 671
Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 326.756 69.203 4,789.008 0.212 97.179 160.159 600.969 0.574 0.352 641
IH 297.055 59.572 3,548.787 0.201 75.407 159.96 509.278 0.532 0.608 594
Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 326.756 69.203 4,789.008 0.212 97.179 160.159 600.969 0.574 0.352 641
IH 297.055 59.572 3,548.787 0.201 75.407 159.96 509.278 0.532 0.608 594

8.4.2 Models & Diagnostics

Exploring some Generalized Linear (Mixed) model candidates:

Model call:

```{r}
glmmTMB(formula = Thick_Total ~ Condition * Stage + (1 | Mouse) + 
    (1 | Slice), data = data, family = Gamma("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

Performance:

performance::performance(mod)
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
24902.97 24903.01 24943.30 0.69 0.55 0.32 50.83 0.19
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
24902.97 24903.01 24943.30 0.69 0.55 0.32 50.83 0.19

Residuals:

performance::check_model(
  mod, panel = FALSE,
  check = c("pp_check", "qq", "reqq", "linearity", "homogeneity")
)

Predictions:

Simulating data from the model for pseudo “Posterior Predictive” plots.

Simulated data vs observed data:

Simulated statistics vs observed ones:

Potential outliers:

Model call:

```{r}
glmmTMB(formula = Thick_Total ~ Condition * Stage + (1 | Mouse) + 
    (1 | Slice), data = data, family = gaussian("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

Performance:

performance::performance(mod)
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
25329.50 25329.55 25369.83 3.06e-05 2.44e-05 6.12e-06 50.81 51.26
AIC AICc BIC R2_conditional R2_marginal ICC RMSE Sigma
25329.50 25329.55 25369.83 3.06e-05 2.44e-05 6.12e-06 50.81 51.26

Residuals:

performance::check_model(
  mod, panel = FALSE,
  check = c("pp_check", "qq", "reqq", "linearity", "homogeneity")
)

Predictions:

Simulating data from the model for pseudo “Posterior Predictive” plots.

Simulated data vs observed data:

Simulated statistics vs observed ones:

Potential outliers:

8.4.3 Effects Analysis

```{r}
glmmTMB(formula = Thick_Total ~ Condition * Stage + (1 | Mouse) + 
    (1 | Slice), data = data, family = Gamma("log"), REML = TRUE, 
    ziformula = ~0, dispformula = ~1)
```

8.4.3.1 Coefficients

❖ All effects (Wald):

parameters::parameters(
  mod, component = "conditional", effects = "fixed",
  exponentiate = should_exp(mod), p_adjust = "none", summary = TRUE, digits = 3
)
Parameter Coefficient SE 95% CI z p
(Intercept) 263.232 7.714 (248.54, 278.79) 190.177 < .001
Condition1 1.137 0.033 (1.07, 1.20) 4.378 < .001
Stage1 0.830 0.024 (0.78, 0.88) -6.380 < .001
Condition1 * Stage1 1.078 0.032 (1.02, 1.14) 2.569 0.010 **
Model: Thick_Total ~ Condition * Stage (2350 Observations)
Parameter Coefficient SE 95% CI z p
(Intercept) 263.232 7.714 (248.54, 278.79) 190.177 < .001
Condition1 1.137 0.033 (1.07, 1.20) 4.378 < .001
Stage1 0.830 0.024 (0.78, 0.88) -6.380 < .001
Condition1 * Stage1 1.078 0.032 (1.02, 1.14) 2.569 0.010 **
Model: Thick_Total ~ Condition * Stage (2350 Observations)

❖ Main effects (Wald Chi-Square):

car::Anova(mod, type = 3)
term statistic df p.value
Condition 19.16 1 <0.001 ***
Stage 40.70 1 <0.001 ***
Condition:Stage 6.60 1 0.010 **
term statistic df p.value
Condition 19.16 1 <0.001 ***
Stage 40.70 1 <0.001 ***
Condition:Stage 6.60 1 0.010 **

❖ Main effects (Likelihood Ratio Test):

LRT(mod, pred = "Condition")
model df aic bic log_lik deviance chisq chi_df pr_chisq
mod_reduced 5 24895.17 24923.98 -12442.58 24885.17
mod_full 7 24881.22 24921.56 -12433.61 24867.22 17.95 2 <0.001 ***
model df aic bic log_lik deviance chisq chi_df pr_chisq
mod_reduced 5 24895.17 24923.98 -12442.58 24885.17
mod_full 7 24881.22 24921.56 -12433.61 24867.22 17.95 2 <0.001 ***
Important

Our LRT() method removes the predictor plus all its interactions

8.4.3.2 Marginal Effects

Marginal means & Contrasts for each predictor:

Marginal Means:

emmeans(mod, specs = pred, type = "response")
Condition response SE df lower.CL upper.CL
N 299.255 12.757 2,347 275.256 325.346
IH 231.545 9.311 2,347 213.987 250.544
Condition response SE df lower.CL upper.CL
N 299.255 12.757 2,347 275.256 325.346
IH 231.545 9.311 2,347 213.987 250.544
- Results are averaged over the levels of: Stage
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale

Contrasts:

emmeans(mod, specs = pred, type = "response") |> 
  contrast(method = "pairwise", adjust = "none", infer = TRUE)
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.292 0.076 2,347 1.152 1.45 1 4.378 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.292 0.076 2,347 1.152 1.45 1 4.378 <0.001 ***
- Results are averaged over the levels of: Stage
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale

Boxplot:

Marginal Means:

emmeans(mod, specs = pred, type = "response")
Stage response SE df lower.CL upper.CL
P12 218.361 8.853 2,347 201.672 236.431
P21 317.323 13.425 2,347 292.06 344.772
Stage response SE df lower.CL upper.CL
P12 218.361 8.853 2,347 201.672 236.431
P21 317.323 13.425 2,347 292.06 344.772
- Results are averaged over the levels of: Condition
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale

Contrasts:

emmeans(mod, specs = pred, type = "response") |> 
  contrast(method = "pairwise", adjust = "none", infer = TRUE)
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
P12 / P21 0.688 0.04 2,347 0.613 0.772 1 −6.38 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
P12 / P21 0.688 0.04 2,347 0.613 0.772 1 −6.38 <0.001 ***
- Results are averaged over the levels of: Condition
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale

Boxplot:

Marginal Means:

emmeans(mod, specs = emmeans_formula, type = "response")
Condition response SE df lower.CL upper.CL
N 267.643 16.317 2,347 237.484 301.632
IH 178.153 9.523 2,347 160.424 197.841
Condition response SE df lower.CL upper.CL
N 267.643 16.317 2,347 237.484 301.632
IH 178.153 9.523 2,347 160.424 197.841
Condition response SE df lower.CL upper.CL
N 334.601 19.933 2,347 297.709 376.065
IH 300.938 18.083 2,347 267.488 338.571
Condition response SE df lower.CL upper.CL
N 334.601 19.933 2,347 297.709 376.065
IH 300.938 18.083 2,347 267.488 338.571
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale

Contrasts:

emmeans(mod, specs = emmeans_formula, type = "response") |> 
  contrast(method = "pairwise", adjust = "none", infer = TRUE)
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.502 0.122 2,347 1.281 1.761 1 5.02 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.502 0.122 2,347 1.281 1.761 1 5.02 <0.001 ***
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.112 0.094 2,347 0.942 1.313 1 1.253 0.210
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.112 0.094 2,347 0.942 1.313 1 1.253 0.210
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale
emmeans(mod, specs = emmeans_formula, type = "response") |>
  contrast(interaction = "pairwise", by = NULL, adjust = "none", infer = T)
Condition ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.351 0.158 2,347 1.074 1.7 1 2.569 0.010 *
Condition ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 1.351 0.158 2,347 1.074 1.7 1 2.569 0.010 *
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale

Boxplot: