411 REFERENCE · Wikibooks
Effectiveness of Psychotherapies and Psychotropic Drugs against Mental Illness/Psychotherapies for social anxiety
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Effectiveness of Psychotherapies and Psychotropic Drugs against Mental Illness Psychotherapies for social anxiety Psychotherapies for anxiety Psychotherapies for panic disorder
Loading libraries
library(dplyr)
library(meta)
Part 1: Data
At https://docs.metapsy.org/databases/sad-psyctr/ you can download documents in PDF format and data in ZIP format related to a meta-analysis conducted by researchers entitled "Social Anxiety Disorder: Psychotherapy vs. Control," which analyzed 315 clinical trials of psychotherapies for social anxiety, comparing groups undergoing psychotherapy and control groups. The CSV dataset contains the Hedges' effect size ('g') and its corresponding standard deviation for each study; the variable 'recruitment', which allows you to categorize studies into clin (institutional studies conducted in hospitals or clinics) or com (population recruited through advertisements or the media); and the variable 'condition_arm1', which contains the type of psychotherapy used in the study:
CBT: Cognitive Behavior Therapy (CBT).
3rd: "Third-wave" therapies, such as Acceptance and Commitment Therapy (ACT) or Mindfulness-Based Stress Reduction (MBSR).
Exposure: Exposure-only therapy.
Other psy: Other forms of psychotherapy, such as psychodynamic therapy, interpersonal therapy (IPT), or imagery rescripting,
the variable "condition_arm2" which contains the type of group the psychotherapy group is compared to:
wlc: Waitlist control; this is the most common condition, used in 55 of the 66 included studies.
cau: Care as usual.
other ctr: Other types of inactive controls, such as placebo pills, reading tasks, or self-monitoring tasks.
Loading and displaying the first 6 studies:
df <- read.csv("data.csv", sep = ";", dec = ",", stringsAsFactors = FALSE)
df %>%
filter(time=="post") %>%
select(study,.g,.g_se,recruitment,condition_arm1,condition_arm2) %>%
head()
Part 2: Meta-analysis
Calculating Hedges' g
We calculate Hedges' g in a meta-analysis immediately after treatment (time=post) and perform Egger's test to assess whether there is publication bias due to the fact that studies with positive results and high g are more likely to be published than those with modest or negative results. Since the p-value is <0.05, there is indeed publication bias in the test, so we use Duval and Tweedie's "trim and fill" procedure, which estimates the number of missing studies and recalculates g, obtaining g = 0.63 with a 95% confidence interval: [ 0.55 , 0.72 ], so in this case the effect of psychotherapy on social anxiety is medium-high:
df_post <- df %>% filter(time=="post")
# Random-effects meta-analysis with Hartung-Knapp modification
m_g <- metagen(TE = .g,
seTE = .g_se,
data = df_post,
studlab = study,
random = TRUE,
method.tau = "DL", # DerSimonian-Laird
method.random.ci = "HK") # Modifica Hartung-Knapp
# Egger test for publication bias
metabias(m_g, method.stat = "linreg")
Linear regression test of funnel plot asymmetry
Test result: t = 7.69, df = 313, p-value < 0.0001
Bias estimate: 2.3470 (SE = 0.3052)
Details:
- multiplicative residual heterogeneity variance (tau^2 = 2.8507)
- predictor: standard error
- weight: inverse variance
- reference: Egger et al. (1997), BMJ
m_g<- trimfill(m_g)
print(paste("g =",round(m_g$TE.random,2),"; 95%CI: [",round(m_g$lower.random,2),",",round(m_g$upper.random,2),"]"))
"g = 0.63; 95%CI: [ 0.55, 0.72 ]"
Measuring g for the various psychotherapies immediately after treatment (time=post), we find that 3rd: "Third-wave" therapies, such as acceptance and commitment therapy (ACT) or mindfulness-based stress reduction (MBSR), have the highest g (g=0.98), Exposure: Exposure-only therapy (g=0.72), CBT: Cognitive Behavioral Therapy (g=0.64) etc. , so the effect of most psychotherapies on social anxiety is high...
for (p in unique(df$condition_arm1)) {
df_post <- df %>% filter(time == "post", condition_arm1==p)
m_pst<-metagen(TE = .g,
seTE = .g_se,
data = df_post,
studlab = study,
random = TRUE, # Modello a effetti casuali
method.tau = "DL", # DerSimonian-Laird
method.random.ci = "HK") # Modifica Hartung-Knapp
m_pst<- trimfill(m_pst)
print(paste(p,": g=",round(m_pst$TE.random,2),"; 95%CI: [",round(m_pst$lower.random,2),",",round(m_pst$upper.random,2),"]"))
}
[1] "cbt : g= 0.64 ; 95%CI: [ 0.53 , 0.75 ]"
[1] "Exposure : g= 0.72 ; 95%CI: [ 0.55 , 0.9 ]"
[1] "3rd : g= 0.98 ; 95%CI: [ 0.6 , 1.35 ]"
[1] "Other psy : g= 0.54 ; 95%CI: [ 0.26 , 0.82 ]"