Effektstärken


Foliensatz



Praxis-Teil


Reshaping

library(tidyverse)
library(purrr)
library(mitml)

# Anzahl der Imputationssets
m <- length(implist)

# Um within-Effektstärken zu berechnen, empfiehlt sich ein
# reshaping der Daten ins long-Format.
# - pivot_longer is hierfür eine gute Option.
# - wir fokussieren hier auf den prä-post-Unterschied.
implist %>%
  map(function(x){
    x %>%
      mutate(id = 1:nrow(.)) %>%
      select(id, group, pss.0, pss.1) %>%
      pivot_longer(c(pss.0, pss.1), names_prefix = "pss.",
                  names_to = "time", values_to = "pss")
  }) -> implist.long

Berechnung von $s_{\text{pooled}}$ (“agnostisch”)

# Zur Berechnung mit der "agnostischen" Methode benötigen wir nur
# die Standardabweichungen zu beiden Zeitpunkten.
# Wir fokussieren hier auf den Effekt der Interventionsgruppe
implist.long %>%
  map_dfr(function(x){
    x %>% filter(group == 1 & time == 0) -> pre
    x %>% filter(group == 1 & time == 1) -> post
    data.frame(sd(pre$pss), sd(post$pss))
  }) %>%
  colSums()/m -> sd.pre.post

sd.pooled.prepost <- sqrt((sd.pre.post[1]^2 + sd.pre.post[2]^2)/2)
sd.pooled.prepost

## > sd.pre.pss.
## >    5.313179

Berechung von $s_{\text{pooled}}$ (“modellbasiert”)

# Durchführung einer vollständigen Varianzdekomposition
# (repeated-measures ANOVA) in alle MI-Sets
implist.long %>%
  map(function(x){
    x %>%
      filter(group == 1) %>%
      aov(pss ~ time + Error(id), .) %>%
      {.[["Within"]]}
  }) -> m.rmanova.mi

# Berechnung von s_pooled aus den Within-Residualen des Modells
# (Standardfehler der Residuale)
m.rmanova.mi %>%
  map_dbl(~sqrt(sum(.$residuals^2)/.$df.residual)) %>%
  mean() -> sd.pooled.model

sd.pooled.model
## > 5.320216

# Die Ergebnisse der beiden Methoden sind bei diesem Beispiel
# nahezu identisch!

Berechnung der Within-Effektstärke

testEstimates(m.rmanova.mi)
testEstimates(m.rmanova.mi) %>% confint()

#> Final parameter estimates and inferences obtained from 25 imputed data sets.
#>
#>        Estimate Std.Error   t.value        df   P(>|t|)       RIV       FMI
#> time1    -8.373     0.686   -12.211  3128.075     0.000     0.096     0.088
#>           2.5 %    97.5 %
#> time1 -9.717112 -7.028342

# Berechne die within-Effektstärke (wir nutzen hier sd.pooled.model)

-8.373/sd.pooled.model  # Within-Cohen's d
-9.717/sd.pooled.model  # Unteres Ende d. Konfidenzintervalls
-7.028/sd.pooled.model  # Oberes Ende d. Konfidenzintervalls

#> [1] -1.573808
#> [1] -1.82643
#> [1] -1.320999
Zurück
Weiter