1  Reactive Oxygen Species

Data

Description

Variable Description
Mouse

Mouse unique identifier

Condition

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

ROS_perc

ROS (% of control)

Variable Description
Mouse

Mouse unique identifier

Condition

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

ROS_perc

ROS (% of control)

Correlations

1.1 ROS (as % increase vs control)

1.1.1 Data Exploration

Distribution:

Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 100 8.806 77.542 0.088 16.161 88.028 107.809 −0.745 −2.14 5
IH 119.99 19.128 365.87 0.159 27.275 93.946 165.286 0.997 1.29 13
Condition Mean SD Variance CoV IQR Min Max Skewness Kurtosis n
N 100 8.806 77.542 0.088 16.161 88.028 107.809 −0.745 −2.14 5
IH 119.99 19.128 365.87 0.159 27.275 93.946 165.286 0.997 1.29 13

1.1.2 Models & Diagnostics

Exploring some Generalized Linear (Mixed) model candidates:

Model call:

```{r}
glmmTMB(formula = ROS_perc ~ Condition, data = data, family = Gamma("log"), 
    REML = TRUE, ziformula = ~0, dispformula = ~1)
```

Performance:

performance::performance(mod)
AIC AICc BIC R2_conditional R2_marginal RMSE Sigma
163.24 164.95 165.91 7.01e-03 16.16 0.14
AIC AICc BIC R2_conditional R2_marginal RMSE Sigma
163.24 164.95 165.91 7.01e-03 16.16 0.14

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 = ROS_perc ~ Condition, data = data, family = gaussian("log"), 
    REML = TRUE, ziformula = ~0, dispformula = ~1)
```

Performance:

performance::performance(mod)
AIC AICc BIC R2_conditional R2_marginal RMSE Sigma
165.29 167.01 167.96 7.01e-03 16.16 17.14
AIC AICc BIC R2_conditional R2_marginal RMSE Sigma
165.29 167.01 167.96 7.01e-03 16.16 17.14

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:

1.1.3 Effects Analysis

```{r}
glmmTMB(formula = ROS_perc ~ Condition, data = data, family = Gamma("log"), 
    REML = TRUE, ziformula = ~0, dispformula = ~1)
```

1.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) 100.000 6.310 (88.37, 113.17) 72.980 < .001
Condition2 1.200 0.089 (1.04, 1.39) 2.454 0.014 *
Model: ROS_perc ~ Condition (18 Observations)
Parameter Coefficient SE 95% CI z p
(Intercept) 100.000 6.310 (88.37, 113.17) 72.980 < .001
Condition2 1.200 0.089 (1.04, 1.39) 2.454 0.014 *
Model: ROS_perc ~ Condition (18 Observations)

❖ Main effects (Wald Chi-Square):

car::Anova(mod, type = 3)
term statistic df p.value
Condition 6.02 1 0.010 **
term statistic df p.value
Condition 6.02 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 2 158.41 160.19 -77.20 154.41
mod_full 3 154.79 157.46 -74.39 148.79 5.62 1 0.020 *
model df aic bic log_lik deviance chisq chi_df pr_chisq
mod_reduced 2 158.41 160.19 -77.20 154.41
mod_full 3 154.79 157.46 -74.39 148.79 5.62 1 0.020 *
Important

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

1.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 100 6.31 17 87.535 114.24
IH 119.99 4.696 17 110.481 130.317
Condition response SE df lower.CL upper.CL
N 100 6.31 17 87.535 114.24
IH 119.99 4.696 17 110.481 130.317
- 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.833 0.062 17 0.713 0.975 1 −2.454 0.025 *
contrast ratio SE df lower.CL upper.CL null t.ratio p.value
N / IH 0.833 0.062 17 0.713 0.975 1 −2.454 0.025 *
- Confidence level used: 0.95
- Intervals are back-transformed from the log scale
- Tests are performed on the log scale

Boxplot: