Efficacia di psicoterapie e psicofarmaci contro la malattia mentale/Psicoterapie per la depressione
Caricamento librerie
[modifica | modifica sorgente]library(dplyr)
library(metafor)
library(meta)
Parte 1: Dati
[modifica | modifica sorgente]All'indirizzo https://docs.metapsy.org/databases/depression-psyctr/ è possibile scaricare documenti in formato pdf e dati in formato zip relativi ad una meta analisi fatta da ricercatori dal titolo "Depression: Psychotherapy vs. Control" in cui vengono analizzati 500 studi clinici relativi alle psicoterapie contro la depressione confrontando gruppi sottoposti a psicoterapia e gruppi di controllo.
Nel dataset csv è presente per ogni studio l'effect size g di Hedges con la sua relativa deviazione standard , la variabile recruitment che consente di catalogare gli studi in clin (istituzionali fatti presso ospedali o cliniche ) o com (popolazione reclutata tramite annunci o media), la variabile condition_arm1 che contiene il tipo di psicoterapia utilizzata nello studio : (cbt= Terapia Cognitivo-Comportamentale, bat= Terapia di Attivazione Comportamentale, pst= Terapia problem solving , ipt=Psicoterapia Interpersonale, dyn= Psicoterapia Psicodinamica a breve termine, lrt= life review Therapy, other psy= other type of psychotherapy), la variabile condition_arm2 che contiene il tipo di gruppo con cui si confronta il gruppo sottoposto a psicoterapia : (cau= Cure abituali (Care-as-usual): Il supporto psicosociale o medico standard che un paziente riceve normalmente in ospedale o in clinica, wl = Lista d'attesa (Waiting List): Dove i pazienti non ricevono alcun trattamento immediato, pha = Trattamento farmacologico, other ctr = altro tipo di gruppo di controllo inattivo, sup = supporto psicologico, other psy = altro tipo di psicoterapia.
Per calcolare l'odds ratio OPPURE utilizzare le 4 variabili event_arm1,event_arm2,totaln_arm1,totaln_arm2 che sono rispettivamente: Numero di eventi (responder, remissione, casi di peggioramento) nel primo braccio dello studio, Numero di eventi (responder, remissione, casi di peggioramento) nel secondo braccio dello studio, Numero totale di partecipanti braccio 1 (dati sugli eventi), Numero totale di partecipanti braccio 2 (dati sugli eventi).
Caricamento e visualizzazione di 6 studi :
df <- read.csv("data.csv", sep = ";", dec = ",", stringsAsFactors = FALSE)
df %>%
filter(!is.na(event_arm1)) %>%
select(study,.g,.g_se,recruitment,condition_arm1,condition_arm2,event_arm1,event_arm2,totaln_arm1,totaln_arm2) %>%
head()
| study | .g | .g_se | recruitment | condition_arm1 | condition_arm2 | event_arm1 | event_arm2 | totaln_arm1 | totaln_arm2 |
|---|---|---|---|---|---|---|---|---|---|
| Alexopoulos, 2016 | -0.215183490629242 | 0.174866416963007 | oth | pst | other ctr | 28 | 37 | 84 | 87 |
| Araya, 2021 | 0.265099475177847 | 0.0811923132832991 | clin | bat | cau | 159 | 114 | 440 | 440 |
| Araya, 2021 | 0.395725691602631 | 0.109735001466973 | clin | bat | cau | 108 | 70 | 217 | 215 |
| Barber, 2012 | 0.0989335546931013 | 0.25150795223941 | com | dyn | other ctr | 14 | 12 | 51 | 50 |
| Barrett, 2001 | 0.270056935486176 | 0.260130882861446 | clin | pst | other ctr | 21 | 16 | 37 | 36 |
| Beutel, 2014 | 0.519091790686381 | 0.194425538658389 | oth | dyn | cau | 34 | 18 | 78 | 78 |
Parte 2: Meta analisi
[modifica | modifica sorgente]Calcolo di g di Hedges
[modifica | modifica sorgente]Calcoliamo g di Hedges in meta analisi negli studi con recruitment=com (popolazione reclutata tramite annunci o media) e facciamo il test di Egger per valutare se c'è un bias di pubblicazione dovuto al fatto che gli studi con risultati positivi e g elevati hanno maggiori probabilità di essere pubblicati rispetto a quelli con risultati modesti o negativi. Essendo p-value<0.05 nel test c'è effettivamente un bias di pubblicazione, quindi si utilizza la procedura "trim and fill" di Duval e Tweedie, che stima il numero di studi mancanti e ricalcola g, ottenendo g = 0.53 con intervallo di confidenza al 95%: [ 0.46 , 0.6 ] quindi in tal caso l'effetto della psicoterapia sulla depressione è medio
# Filtro per studi in contesti comunitari
df_com <- df %>% filter(recruitment=="com")
# Meta-analisi a effetti casuali con modifica Hartung-Knapp
m_g <- metagen(TE = .g,
seTE = .g_se,
data = df_com,
studlab = study,
random = TRUE,
method.tau = "DL", # DerSimonian-Laird
method.random.ci = "HK") # Modifica Hartung-Knapp
# Test di Egger per il bias di pubblicazione
metabias(m_g, method.stat = "linreg")
Linear regression test of funnel plot asymmetry Test result: t = 7.80, df = 443, p-value < 0.0001 Bias estimate: 1.6125 (SE = 0.2068) Details: - multiplicative residual heterogeneity variance (tau^2 = 3.8474) - 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.53 ; 95%CI: [ 0.46 , 0.6 ]"
Calcolando g in meta analisi negli studi con recruitment=clin (studi istituzionali fatti presso ospedali o cliniche ) si ottiene g=0.32 quindi in tal caso l'effetto della psicoterapia sulla depressione è basso:
# Filtro per studi in contesti istituzionali
df_inst <- df %>% filter(recruitment=="clin")
# Meta-analisi a effetti casuali con modifica Hartung-Knapp
m_g <- metagen(TE = .g,
seTE = .g_se,
data = df_inst,
studlab = study,
random = TRUE,
method.tau = "DL", # DerSimonian-Laird
method.random.ci = "HK") # Modifica Hartung-Knapp
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.32 ; 95%CI: [ 0.18 , 0.45 ]"
Misurando g per le varie psicoterapie immediatamente dopo il trattamento (time=post) si ottiene che lrt= life review therapy ha il g maggiore (g=0.81), bat= Terapia di Attivazione Comportamentale (g=0.49), cbt= Terapia Cognitivo-Comportamentale (g=0.47) ecc. , quindi l'effetto della maggior parte delle psicoterapie sulla depressione è medio...
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.47 ; 95%CI: [ 0.38 , 0.55 ]" [1] "pst : g= 0.37 ; 95%CI: [ 0.1 , 0.65 ]" [1] "lrt : g= 0.81 ; 95%CI: [ 0.38 , 1.24 ]" [1] "3rd : g= 0.55 ; 95%CI: [ 0.36 , 0.74 ]" [1] "other psy : g= 0.48 ; 95%CI: [ 0.37 , 0.59 ]" [1] "bat : g= 0.49 ; 95%CI: [ 0.36 , 0.63 ]" [1] "sup : g= 0.37 ; 95%CI: [ 0.08 , 0.65 ]" [1] "dyn : g= 0.35 ; 95%CI: [ 0.07 , 0.62 ]" [1] "ipt : g= 0.25 ; 95%CI: [ 0.1 , 0.4 ]"
Calcolo di OR (Odds Ratio)
[modifica | modifica sorgente]Misurando OR confrontando i gruppi che fanno psicoterapia con i gruppi di controllo ( lista d'attesa wl, cure abituali cau o placebo pla) si ottiene OR = 1.82 cioè la probabilità di risposta positiva della psicoterapia contro la depressione aumenta di +82% rispetto ai gruppi di controllo:
df_bin <- df %>%
filter(!is.na(event_arm1),
!is.na(event_arm2),
!is.na(totaln_arm1),
!is.na(totaln_arm2))
es_bin <- escalc(
measure = "OR",
ai = event_arm1,
bi = totaln_arm1 - event_arm1,
ci = event_arm2,
di = totaln_arm2 - event_arm2,
data = df_bin
)
# Meta-analisi sui risultati calcolati (modello a effetti casuali)
res_psy_ctr <- rma(
yi, vi,
data = es_bin %>% filter( condition_arm2 %in% c("wl", "cau", "pla", "other ctr")),
method = "DL" # Metodo DerSimonian-Laird
)
res_corretto <- trimfill(res_psy_ctr)
print(paste("OR =", round(exp(res_corretto$b),2)))
[1] "OR = 1.82"