CHANGES:
knitr::opts_chunk$set(echo = TRUE)
options(encoding = 'UTF-8')
library(tidyverse)
library(readxl)
library(metafor)
library(metaviz)
library(dmetar)
library(janitor)
library(citr)
library(osfr)
library(PRISMAstatement)
# Authenticate using a PAT
osf_pat <- read_lines("osf_pat.txt")
osf_auth(token = osf_pat)
# Retrieve data to data folder
osf_file <-
osf_retrieve_file("bqy2p") %>%
osf_download(path = "data/",
conflicts = "overwrite",
progress = TRUE)
cbt <-
read_excel(here::here(osf_file$local_path), na = c("", "N/A")) %>%
clean_names() %>%
# Get the female ratio
mutate(female = map_dbl(female_n_total_n, ~eval(parse(text = .x))),
sessions_completed_totalsessions = str_replace_all(sessions_completed_totalsessions, ",", "."),
completed_sessions = map_dbl(sessions_completed_totalsessions,
~eval(parse(text = .x))))
The meta-analyses models were recalculated using REML estimation. Using this only slghtly changes the results, but IMO it is a more appropriate and defensible choice Viechtbauer (2005).
# Model for the children self-report MA
self_df <-
cbt %>%
filter(outcome == "children")
mod_self <-
rma(yi = hedges_g,
sei = hedges_se,
data = self_df,
method = "REML")
mod_self
##
## Random-Effects Model (k = 19; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0883 (SE = 0.0534)
## tau (square root of estimated tau^2 value): 0.2971
## I^2 (total heterogeneity / total variability): 57.52%
## H^2 (total variability / sampling variability): 2.35
##
## Test for Heterogeneity:
## Q(df = 18) = 45.2691, p-val = 0.0004
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.3635 0.0930 3.9099 <.0001 0.1813 0.5457 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Model for the clinician rating MA
clinician_df <-
cbt %>%
filter(outcome == "clinician")
mod_clinician <-
rma(yi = hedges_g,
sei = hedges_se,
data = clinician_df,
method = "REML")
mod_clinician
##
## Random-Effects Model (k = 14; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 1.0029 (SE = 0.4352)
## tau (square root of estimated tau^2 value): 1.0014
## I^2 (total heterogeneity / total variability): 93.19%
## H^2 (total variability / sampling variability): 14.69
##
## Test for Heterogeneity:
## Q(df = 13) = 55.8252, p-val < .0001
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.9766 0.2823 3.4589 0.0005 0.4232 1.5300 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Model for the clinician rating MA
parent_df <-
cbt %>%
filter(outcome == "parental")
mod_parent <-
rma(yi = hedges_g,
sei = hedges_se,
data = parent_df,
method = "REML")
mod_parent
##
## Random-Effects Model (k = 16; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0911 (SE = 0.0601)
## tau (square root of estimated tau^2 value): 0.3018
## I^2 (total heterogeneity / total variability): 56.51%
## H^2 (total variability / sampling variability): 2.30
##
## Test for Heterogeneity:
## Q(df = 15) = 33.9346, p-val = 0.0035
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.4990 0.1022 4.8839 <.0001 0.2987 0.6992 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Studies that has a confidence interval completely outside of the aggregated effect’s CI should be considered outliers. We identified the Cobham et al. 2012 study as an outlier for both the self-report and the clincian rated outcomes, so we removed this study, and recalculated the meta-analyses. No outliers in the parental rating studies.
# Self-report
find.outliers(mod_self)
## Identified outliers (REML)
## -------------------------
## "1"
##
## Results with outliers removed
## -----------------------------
##
## Random-Effects Model (k = 18; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0182 (SE = 0.0271)
## tau (square root of estimated tau^2 value): 0.1349
## I^2 (total heterogeneity / total variability): 22.53%
## H^2 (total variability / sampling variability): 1.29
##
## Test for Heterogeneity:
## Q(df = 17) = 21.4357, p-val = 0.2074
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.2779 0.0683 4.0718 <.0001 0.1441 0.4117 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Clinician rating
find.outliers(mod_clinician)
## Identified outliers (REML)
## -------------------------
## "1"
##
## Results with outliers removed
## -----------------------------
##
## Random-Effects Model (k = 13; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0039 (SE = 0.0280)
## tau (square root of estimated tau^2 value): 0.0628
## I^2 (total heterogeneity / total variability): 5.47%
## H^2 (total variability / sampling variability): 1.06
##
## Test for Heterogeneity:
## Q(df = 12) = 10.6055, p-val = 0.5630
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.6555 0.0743 8.8247 <.0001 0.5099 0.8011 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Clinician rating
find.outliers(mod_parent)
## No outliers detected (REML).
## No outliers detected (REML).Identified outliers (REML)
## -------------------------
## ""
##
## Results with outliers removed
## -----------------------------
##
## Random-Effects Model (k = 16; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0911 (SE = 0.0601)
## tau (square root of estimated tau^2 value): 0.3018
## I^2 (total heterogeneity / total variability): 56.51%
## H^2 (total variability / sampling variability): 2.30
##
## Test for Heterogeneity:
## Q(df = 15) = 33.9346, p-val = 0.0035
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.4990 0.1022 4.8839 <.0001 0.2987 0.6992 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Remove outliers from self-report data
self_df <-
cbt %>%
filter(outcome == "children") %>%
slice(-1)
# Corrected model for self-report data
mod_self <-
rma(yi = hedges_g,
sei = hedges_se,
data = self_df,
method = "REML")
find.outliers(mod_self)
## No outliers detected (REML).
## No outliers detected (REML).Identified outliers (REML)
## -------------------------
## ""
##
## Results with outliers removed
## -----------------------------
##
## Random-Effects Model (k = 18; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0182 (SE = 0.0271)
## tau (square root of estimated tau^2 value): 0.1349
## I^2 (total heterogeneity / total variability): 22.53%
## H^2 (total variability / sampling variability): 1.29
##
## Test for Heterogeneity:
## Q(df = 17) = 21.4357, p-val = 0.2074
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.2779 0.0683 4.0718 <.0001 0.1441 0.4117 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# No more outliers!
# Remove outliers from clinician-rating data
clinician_df <-
cbt %>%
filter(outcome == "clinician") %>%
slice(-1)
# Model for the clinician rating MA
mod_clinician <-
rma(yi = hedges_g,
sei = hedges_se,
data = clinician_df,
method = "REML")
# No further outliers
find.outliers(mod_clinician)
## No outliers detected (REML).
## No outliers detected (REML).Identified outliers (REML)
## -------------------------
## ""
##
## Results with outliers removed
## -----------------------------
##
## Random-Effects Model (k = 13; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0039 (SE = 0.0280)
## tau (square root of estimated tau^2 value): 0.0628
## I^2 (total heterogeneity / total variability): 5.47%
## H^2 (total variability / sampling variability): 1.06
##
## Test for Heterogeneity:
## Q(df = 12) = 10.6055, p-val = 0.5630
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.6555 0.0743 8.8247 <.0001 0.5099 0.8011 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mod_self
##
## Random-Effects Model (k = 18; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0182 (SE = 0.0271)
## tau (square root of estimated tau^2 value): 0.1349
## I^2 (total heterogeneity / total variability): 22.53%
## H^2 (total variability / sampling variability): 1.29
##
## Test for Heterogeneity:
## Q(df = 17) = 21.4357, p-val = 0.2074
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.2779 0.0683 4.0718 <.0001 0.1441 0.4117 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mod_clinician
##
## Random-Effects Model (k = 13; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0039 (SE = 0.0280)
## tau (square root of estimated tau^2 value): 0.0628
## I^2 (total heterogeneity / total variability): 5.47%
## H^2 (total variability / sampling variability): 1.06
##
## Test for Heterogeneity:
## Q(df = 12) = 10.6055, p-val = 0.5630
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.6555 0.0743 8.8247 <.0001 0.5099 0.8011 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mod_parent
##
## Random-Effects Model (k = 16; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0911 (SE = 0.0601)
## tau (square root of estimated tau^2 value): 0.3018
## I^2 (total heterogeneity / total variability): 56.51%
## H^2 (total variability / sampling variability): 2.30
##
## Test for Heterogeneity:
## Q(df = 15) = 33.9346, p-val = 0.0035
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.4990 0.1022 4.8839 <.0001 0.2987 0.6992 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Create tables that will be added to the forest plots
# Self-rating
self_table <-
self_df %>%
select(Study = study_name, N = sample_size_total)
self_summary <-
self_table %>%
group_by(name = "Aggregated effect") %>%
summarise(N = sum(N))
# Clinician rating
clinician_table <-
clinician_df %>%
select(Study = study_name, N = sample_size_total)
clinician_summary <-
clinician_table %>%
group_by(name = "Aggregated effect") %>%
summarise(N = sum(N))
# Parental rating
parent_table <-
parent_df %>%
select(Study = study_name, N = sample_size_total)
parent_summary <-
parent_table %>%
group_by(name = "Aggregated effect") %>%
summarise(N = sum(N))
viz_forest(mod_self,
study_table = self_table,
text_size = 4,
annotate_CI = TRUE,
xlab = "Hedges's g",
summary_table = self_summary)
viz_forest(mod_clinician,
study_table = clinician_table,
text_size = 3.5,
xlab = "Hedges'g",
summary_table = clinician_summary,
annotate_CI = TRUE)
viz_forest(mod_parent,
study_table = parent_table,
text_size = 3.5,
xlab = "Hedges'g",
summary_table = parent_summary,
annotate_CI = TRUE)
As there seems to be some publication or small study bias, we can try to correct for that. Self-report, clinician-rating, and parent-rating models were corrected by 4, 4, and 3 TAF studies, respectively.
All models remained significant after trim-and-fill imputed studies. Also, the if we compare the overall effect size with TAF studies included, the effects remain similar.
# trimandfill tails for the first model, while it work in the funnel plot
trimfill(self_df$hedges_g,
self_df$hedges_se,
ma.fixed = FALSE,
method.tau = "REML")
## 95%-CI %W(random)
## 1 0.5637 [-0.0419; 1.1693] 3.7
## 2 0.2169 [-0.5216; 0.9555] 2.7
## 3 1.0350 [ 0.2088; 1.8611] 2.2
## 4 0.2646 [-0.2109; 0.7402] 5.3
## 5 0.6222 [-0.0012; 1.2455] 3.5
## 6 0.6803 [ 0.1031; 1.2575] 4.0
## 7 0.1739 [-0.3308; 0.6785] 4.9
## 8 0.3480 [-0.1579; 0.8539] 4.8
## 9 0.4094 [ 0.0309; 0.7879] 7.0
## 10 0.1461 [-0.3523; 0.6444] 5.0
## 11 0.5486 [ 0.1346; 0.9626] 6.3
## 12 0.4547 [-0.0396; 0.9489] 5.0
## 13 -0.0400 [-0.4411; 0.3611] 6.6
## 14 -0.1424 [-0.6022; 0.3173] 5.5
## 15 0.1750 [-0.3870; 0.7370] 4.2
## 16 0.0161 [-0.2623; 0.2945] 9.6
## 17 0.5854 [-0.0648; 1.2356] 3.3
## 18 -0.1011 [-0.7576; 0.5555] 3.3
## Filled: 17 -0.1789 [-0.8291; 0.4713] 3.3
## Filled: 5 -0.2157 [-0.8390; 0.4077] 3.5
## Filled: 6 -0.2738 [-0.8510; 0.3034] 4.0
## Filled: 3 -0.6284 [-1.4546; 0.1978] 2.2
##
## Number of studies combined: k = 22 (with 4 added studies)
##
## 95%-CI z p-value
## Random effects model 0.2078 [0.0756; 0.3400] 3.08 0.0021
##
## Quantifying heterogeneity:
## tau^2 = 0.0272 [0.0000; 0.1908]; tau = 0.1650 [0.0000; 0.4368]
## I^2 = 34.2% [0.0%; 60.8%]; H = 1.23 [1.00; 1.60]
##
## Test of heterogeneity:
## Q d.f. p-value
## 31.92 21 0.0597
##
## Details on meta-analytical method:
## - Inverse variance method
## - Restricted maximum-likelihood estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Trim-and-fill method to adjust for funnel plot asymmetry
# Egger's test
regtest(mod_self, model = "lm")
##
## Regression Test for Funnel Plot Asymmetry
##
## Model: weighted regression with multiplicative dispersion
## Predictor: standard error
##
## Test for Funnel Plot Asymmetry: t = 2.2691, df = 16, p = 0.0374
## Limit Estimate (as sei -> 0): b = -0.2304 (CI: -0.7041, 0.2434)
viz_funnel(mod_self,
method = "RE",
sig_contours = TRUE,
contours = TRUE,
trim_and_fill = TRUE,
text_size = 4)
trimfill(clinician_df$hedges_g,
clinician_df$hedges_se,
ma.fixed = FALSE,
method.tau = "REML")
## 95%-CI %W(random)
## 1 1.0013 [ 0.3704; 1.6322] 4.4
## 2 1.0559 [ 0.2276; 1.8842] 2.7
## 3 0.6849 [ 0.1975; 1.1723] 6.8
## 4 0.7249 [ 0.1183; 1.3316] 4.7
## 5 0.6749 [ 0.1096; 1.2402] 5.3
## 6 0.5496 [ 0.0363; 1.0629] 6.2
## 7 0.6856 [ 0.1985; 1.1728] 6.8
## 8 0.6435 [ 0.2240; 1.0630] 8.6
## 9 0.7200 [ 0.2307; 1.2092] 6.8
## 10 0.2278 [-0.1527; 0.6084] 10.0
## 11 0.8613 [ 0.4328; 1.2899] 8.4
## 12 0.4001 [-0.1045; 0.9047] 6.4
## 13 1.0844 [ 0.4018; 1.7671] 3.8
## Filled: 11 0.2610 [-0.1676; 0.6895] 8.4
## Filled: 1 0.1210 [-0.5099; 0.7519] 4.4
## Filled: 2 0.0664 [-0.7619; 0.8947] 2.7
## Filled: 13 0.0378 [-0.6448; 0.7205] 3.8
##
## Number of studies combined: k = 17 (with 4 added studies)
##
## 95%-CI z p-value
## Random effects model 0.5651 [0.4251; 0.7051] 7.91 < 0.0001
##
## Quantifying heterogeneity:
## tau^2 = 0.0133 [0.0000; 0.1574]; tau = 0.1152 [0.0000; 0.3967]
## I^2 = 18.3% [0.0%; 54.0%]; H = 1.11 [1.00; 1.47]
##
## Test of heterogeneity:
## Q d.f. p-value
## 19.59 16 0.2391
##
## Details on meta-analytical method:
## - Inverse variance method
## - Restricted maximum-likelihood estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Trim-and-fill method to adjust for funnel plot asymmetry
# Egger's test
regtest(mod_clinician, model = "lm")
##
## Regression Test for Funnel Plot Asymmetry
##
## Model: weighted regression with multiplicative dispersion
## Predictor: standard error
##
## Test for Funnel Plot Asymmetry: t = 2.9029, df = 11, p = 0.0144
## Limit Estimate (as sei -> 0): b = -0.1342 (CI: -0.7419, 0.4734)
viz_funnel(mod_clinician,
method = "RE",
sig_contours = TRUE,
trim_and_fill = TRUE,
contours = TRUE,
text_size = 4)
trimfill(parent_df$hedges_g,
parent_df$hedges_se,
ma.fixed = FALSE,
method.tau = "REML")
## 95%-CI %W(random)
## 1 0.7797 [ 0.0564; 1.5030] 4.3
## 2 0.5402 [-0.0644; 1.1448] 5.0
## 3 1.2164 [ 0.3707; 2.0622] 3.6
## 4 0.6610 [ 0.1746; 1.1475] 5.8
## 5 1.0911 [ 0.4376; 1.7447] 4.7
## 6 1.0903 [ 0.4885; 1.6922] 5.0
## 7 0.3045 [-0.2478; 0.8567] 5.4
## 8 0.4022 [-0.1048; 0.9093] 5.7
## 9 0.3547 [-0.0229; 0.7322] 6.7
## 10 0.1359 [-0.3623; 0.6342] 5.8
## 11 0.6435 [ 0.2240; 1.0630] 6.3
## 12 0.7525 [ 0.2619; 1.2432] 5.8
## 13 -0.0008 [-0.4019; 0.4002] 6.5
## 14 0.0000 [-0.4592; 0.4592] 6.0
## 15 -0.2129 [-0.7755; 0.3496] 5.3
## 16 0.9951 [ 0.3680; 1.6222] 4.9
## Filled: 6 -0.3160 [-0.9179; 0.2858] 5.0
## Filled: 5 -0.3168 [-0.9703; 0.3368] 4.7
## Filled: 3 -0.4421 [-1.2879; 0.4036] 3.6
##
## Number of studies combined: k = 19 (with 3 added studies)
##
## 95%-CI z p-value
## Random effects model 0.3940 [0.1821; 0.6059] 3.64 0.0003
##
## Quantifying heterogeneity:
## tau^2 = 0.1384 [0.0484; 0.4801]; tau = 0.3721 [0.2201; 0.6929]
## I^2 = 62.7% [38.9%; 77.3%]; H = 1.64 [1.28; 2.10]
##
## Test of heterogeneity:
## Q d.f. p-value
## 48.32 18 0.0001
##
## Details on meta-analytical method:
## - Inverse variance method
## - Restricted maximum-likelihood estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Trim-and-fill method to adjust for funnel plot asymmetry
# Egger's test
regtest(mod_parent, model = "lm")
##
## Regression Test for Funnel Plot Asymmetry
##
## Model: weighted regression with multiplicative dispersion
## Predictor: standard error
##
## Test for Funnel Plot Asymmetry: t = 2.4229, df = 14, p = 0.0295
## Limit Estimate (as sei -> 0): b = -0.5600 (CI: -1.4761, 0.3561)
viz_funnel(mod_parent,
method = "RE",
sig_contours = TRUE,
trim_and_fill = TRUE,
contours = TRUE,
text_size = 4)
# Intervention characteristics
## Family or youth focus (focus)
rma.uni(hedges_g, sei = hedges_se, data = self_df, mods = ~focus) %>%
anova()
##
## Test of Moderators (coefficients 2:4):
## QM(df = 3) = 1.5512, p-val = 0.6705
## Therapist involvement (therapist_involvement)
rma.uni(hedges_g, sei = hedges_se, data = self_df,
mods = ~therapist_involvement) %>%
anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.1722, p-val = 0.6782
## Place of delivery
rma.uni(hedges_g, sei = hedges_se, data = self_df, mods = ~placeof_delivery) %>% anova()
##
## Test of Moderators (coefficients 2:4):
## QM(df = 3) = 3.5285, p-val = 0.3171
## Average length
rma.uni(hedges_g, sei = hedges_se, data = self_df, mods = ~completed_sessions) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.0079, p-val = 0.9293
# Study characteristics
## Study quality
rma.uni(hedges_g, sei = hedges_se, data = self_df, mods = ~risk_of_bias) %>% anova()
##
## Test of Moderators (coefficients 2:3):
## QM(df = 2) = 5.3805, p-val = 0.0679
## Anxiety measure
rma.uni(hedges_g, sei = hedges_se, data = self_df, mods = ~anxiety_measure) %>% anova()
##
## Test of Moderators (coefficients 2:4):
## QM(df = 3) = 1.3576, p-val = 0.7155
## Intended length
rma.uni(hedges_g, sei = hedges_se, data = self_df, mods = ~intervention_length_n_of_modules) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.9302, p-val = 0.3348
# Participant characteristics
## Age
rma.uni(hedges_g, sei = hedges_se, data = self_df, mods = ~avg_age_pop) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 1.6154, p-val = 0.2037
## Female ratio
rma.uni(hedges_g, sei = hedges_se, data = self_df, mods = ~female) %>% anova()
## Warning: Studies with NAs omitted from model fitting.
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 1.0564, p-val = 0.3040
## Clinical status
rma.uni(hedges_g, sei = hedges_se, data = self_df, mods = ~clinical_status) %>% anova()
##
## Test of Moderators (coefficients 2:6):
## QM(df = 5) = 2.1704, p-val = 0.8251
## Method
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~method) %>% anova()
##
## Test of Moderators (coefficients 2:8):
## QM(df = 7) = 8.3156, p-val = 0.3056
## Family or youth focus (focus)
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~focus) %>% anova()
##
## Test of Moderators (coefficients 2:3):
## QM(df = 2) = 0.9824, p-val = 0.6119
## Therapist involvement (therapist_involvement)
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~therapist_involvement) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.9109, p-val = 0.3399
## Clinical status
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~clinical_status) %>% anova()
##
## Test of Moderators (coefficients 2:3):
## QM(df = 2) = 1.1721, p-val = 0.5565
## Place of delivery
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~placeof_delivery) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.5389, p-val = 0.4629
## Intended length
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~intervention_length_n_of_modules) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.0208, p-val = 0.8854
## Study quality
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~risk_of_bias) %>% anova()
##
## Test of Moderators (coefficients 2:3):
## QM(df = 2) = 0.9367, p-val = 0.6260
## Clinician blinding
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~clinician_blinding) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.0716, p-val = 0.7891
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~intervention_length_n_of_modules) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.0208, p-val = 0.8854
## Average length
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~completed_sessions) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.3264, p-val = 0.5678
## Age
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~avg_age_pop) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.0003, p-val = 0.9870
## Female ratio
rma.uni(hedges_g, sei = hedges_se, data = clinician_df, mods = ~female) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.1728, p-val = 0.6776
## Method is significant!
rma.uni(hedges_g, sei = hedges_se, data = parent_df, mods = ~method) %>% anova()
##
## Test of Moderators (coefficients 2:11):
## QM(df = 10) = 19.3381, p-val = 0.0362
## Family or youth focus (focus)
rma.uni(hedges_g, sei = hedges_se, data = parent_df, mods = ~focus) %>% anova()
##
## Test of Moderators (coefficients 2:3):
## QM(df = 2) = 3.2097, p-val = 0.2009
## Therapist involvement (therapist_involvement)
rma.uni(hedges_g, sei = hedges_se, data = parent_df, mods = ~therapist_involvement) %>% anova()
##
## Test of Moderators (coefficients 2:3):
## QM(df = 2) = 0.4098, p-val = 0.8147
## Clinical status
rma.uni(hedges_g, sei = hedges_se, data = parent_df, mods = ~clinical_status) %>% anova()
##
## Test of Moderators (coefficients 2:5):
## QM(df = 4) = 0.2913, p-val = 0.9904
## Place of delivery
rma.uni(hedges_g, sei = hedges_se, data = parent_df, mods = ~placeof_delivery) %>% anova()
##
## Test of Moderators (coefficients 2:3):
## QM(df = 2) = 1.9987, p-val = 0.3681
## Intended length
rma.uni(hedges_g, sei = hedges_se, data = parent_df, mods = ~intervention_length_n_of_modules) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.4620, p-val = 0.4967
## Study quality
rma.uni(hedges_g, sei = hedges_se, data = parent_df, mods = ~risk_of_bias) %>% anova()
##
## Test of Moderators (coefficients 2:3):
## QM(df = 2) = 1.4511, p-val = 0.4841
rma.uni(hedges_g, sei = hedges_se, data = parent_df, mods = ~intervention_length_n_of_modules) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.4620, p-val = 0.4967
## Average length
rma.uni(hedges_g, sei = hedges_se, data = parent_df, mods = ~completed_sessions) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.1490, p-val = 0.6995
## Age
rma.uni(hedges_g, sei = hedges_se, data = parent_df, mods = ~avg_age_pop) %>% anova()
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.5834, p-val = 0.4450
## Female ratio
rma.uni(hedges_g, sei = hedges_se, data = parent_df, mods = ~female) %>% anova()
## Warning: Studies with NAs omitted from model fitting.
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.0862, p-val = 0.7691
WIP