Prove N-of-1 nella pratica
Per mostrarti un esempio pratico di questa metodologia, condurrò la mia analisi su una selezione di dati raccolti dal mio cinturino Whoop dal 27 aprile 2018 al 5 ottobre 2019. La nostra domanda di ricerca per questo studio N-of-1 è :
Bere alcol porta a dormire poco?
Come atleta ed epidemiologo, sono molto consapevole di quanto l’alcol possa essere dannoso per il sonno, le prestazioni atletiche e il benessere generale. Mi è stato costantemente detto che gli atleti non dovrebbero bere, tuttavia una cosa è dirlo, un'altra è vedere le prove di persona. Una volta che ho iniziato a indossare il mio Whoop, ho notato come il mio punteggio del sonno (un parametro calcolato dall'app Whoop) avrebbe sofferto dopo aver bevuto alcolici. A volte, anche il giorno dopo, pensavo di poter ancora vedere l'effetto. Queste osservazioni mi hanno fatto venire voglia di fare la mia analisi, che ora posso finalmente completare.
Note sui dati
Le due variabili di interesse nella nostra analisi sono il punteggio delle prestazioni del sonno e il consumo di alcol. Il punteggio delle prestazioni del sonno varia da 0 a 100 ed è una metrica calcolata dall'app Whoop da dati biometrici come frequenza respiratoria, durata del sonno leggero, durata del sonno a onde lente e durata del sonno REM.
La variabile consumo di alcol è la risposta alla domanda “Hai bevuto alcolici ieri?” a cui rispondono quotidianamente gli utenti Whoop al risveglio. Ho sempre risposto a queste domande in modo veritiero e coerente, anche se i nostri dati sono limitati in quanto l'app non pone domande sulla quantità di alcol consumata. Ciò significa che tutti i livelli di consumo di alcol vengono trattati allo stesso modo, il che elimina l’opportunità di analizzare la relazione a un livello più profondo. C'erano alcuni dati mancanti nella nostra funzione sull'alcol, ma queste informazioni mancanti sono state imputate con “No”, poiché so per esperienza personale che se avessi bevuto la sera prima sarei sicuro di contrassegnarlo nell'app.
Analisi esplorativa dei dati
Il primo passo in qualsiasi analisi è eseguire alcune analisi esplorative dei dati (EDA). Questo serve solo per avere un'idea generale di come appaiono i nostri dati e per creare un'immagine che aiuterà a dirigere la nostra indagine.
Dai box-plot sopra riportati, vediamo che il punteggio medio del sonno sembra essere più alto quando non viene consumato alcol e avere una distribuzione più ristretta. Curiosamente, sembrano esserci più valori anomali nel punteggio delle prestazioni del sonno quando non si consuma alcol. Forse i giorni di viaggio e il jet lag possono spiegare questi valori anomali, poiché ho viaggiato all'estero 5 volte durante questo periodo campione.
Ora che abbiamo dato una prima occhiata ai dati di interesse, è tempo di approfondire l’analisi statistica.
Controllo di un'ipotesi
Per rispondere alla nostra domanda di ricerca, condurrò dei test di ipotesi. Il test di ipotesi è una tecnica statistica che ci consente di fare inferenze su una popolazione sulla base di alcuni dati campione. In questo caso, stiamo tentando di dedurre se il consumo di alcol è associato a una scarsa qualità del sonno quella notte. Non disponiamo di dati sul consumo di alcol e sul sonno per ogni notte in cui sono stato in vita, quindi studiamo i nostri dati campione come proxy.
Il primo passo nella verifica delle ipotesi è formulare le mie ipotesi. Una “ipotesi nulla” è l'ipotesi che non stia accadendo nulla di interessante o che non vi sia alcuna relazione o effetto. Nel nostro caso il ipotesi nulla È: Non vi è alcuna differenza nella prestazione media del sonno tra le notti in cui è stato consumato alcol e quelle in cui non è stato consumato.
Una “ipotesi alternativa” è l'ipotesi che contraddice il nulla e afferma che in realtà sta accadendo qualcosa di interessante. Nel nostro esempio il ipotesi alternativa È: Esiste una differenza nella prestazione media del sonno tra le notti in cui è stato consumato alcol e quelle in cui non è stato consumato.
Scelta di un test statistico
Per valutare quale di queste ipotesi è vera dobbiamo scegliere un test statistico. Siamo curiosi di sapere se il punteggio medio del sonno per le notti in cui ho bevuto alcolici è diverso dal punteggio medio del sonno per le notti in cui non ho bevuto alcolici, quindi utilizzeremo una differenza di mezzi per testarlo. Nello specifico, il ns statistica di prova È: Prestazioni medie del sonno senza alcol: prestazioni medie del sonno con alcol
Ora che abbiamo definito il nostro quadro, possiamo usare R per calcolare la statistica del nostro test e valutare le nostre ipotesi.
Condurre la nostra analisi in R
Dai nostri dati campione possiamo calcolare la statistica del test osservato. Il codice in R è incluso di seguito.
test_stat <- data |>
specify(formula = sleep_performance ~ alcohol) |>
calculate(
stat = "diff in means",
order = c("No", "Yes")
)
La nostra statistica di test è 8.01. Questo numero significa che il punteggio medio del sonno per le notti in cui non ho consumato alcol è di 8,01 punti più alto rispetto alle notti in cui ho consumato alcol.
Il passo successivo nell'analisi è generare una distribuzione nulla dai nostri dati campione. Una distribuzione nulla rappresenta tutti i diversi valori della statistica test che osserveremmo se i campioni fossero estratti ripetutamente dalla popolazione. La distribuzione intende riflettere la variazione nella statistica del test dovuta esclusivamente al campionamento casuale. La distribuzione nulla viene creata in R di seguito:
set.seed(42) #Setting seed for reproducibilitynull_distribution <- data |>
specify(formula = sleep_performance ~ alcohol) |>
hypothesize(null = "independence") |>
generate(reps = 1000, type = "permute") |>
calculate(
stat = "diff in means",
order = c("No", "Yes")
)
Ciò che stiamo facendo sopra è prelevare campioni con sostituzione dai nostri dati e calcolare la differenza nelle medie di tali campioni. Lo facciamo 1000 volte per generare una distribuzione sufficientemente ampia da poter determinare se la statistica del test osservata è significativa.
Dopo aver ottenuto la distribuzione nulla e la statistica di test, possiamo calcolare un valore p bilaterale per un alfa di 0,05. Il valore p può essere pensato come la probabilità di ottenere una statistica del test altrettanto estrema o superiore alla statistica del test osservata se l'ipotesi nulla è vera. Detto in parole semplici; rappresenta la probabilità di vedere questo risultato se non ci fosse una vera associazione. Calcoliamo un valore p bilaterale in R di seguito, poiché siamo interessati alla possibilità che la statistica del test sia maggiore o minore del previsto.
p_value <- null_distribution|>
get_p_value(test_stat, direction = "both")
Il nostro valore p è 0,017, il che significa che il nostro risultato è significativo al livello alfa=0,05, che è un livello di significatività comunemente accettato nelle statistiche. Significa che la differenza nel punteggio del sonno che abbiamo riscontrato era significativa! Abbiamo le prove per rifiutare l'ipotesi nulla e accettare l'alternativa; Là È una differenza nella prestazione media del sonno tra le notti in cui veniva consumato alcol e quelle in cui non veniva consumato.
Di seguito ho incluso un'utile visualizzazione della distribuzione nulla, della statistica del test e dell'intervallo quantile del 95%. Le barre grigie rappresentano le numerose possibili statistiche di test calcolate dai nostri 1000 campioni e la linea arancione rappresenta la densità di questi valori. Le linee tratteggiate blu rappresentano il 97,5° e il 2,5° quantile di questa distribuzione, oltre i quali la statistica del nostro test (in rosso) risulta essere significativa.
Conclusioni finali
Bene, a quanto pare i miei allenatori avevano sempre ragione! La nostra analisi ha rilevato che il mio punteggio medio del sonno quando I no consumare alcol era di 8,01 punti superiore al mio punteggio medio del sonno quando I fatto consumare alcol. Questa differenza è risultata statisticamente significativa, con un valore p di 0,017, il che significa che rifiutiamo l'ipotesi nulla a favore dell'alternativa. Questo risultato statistico conferma la mia esperienza personale, fornendomi un risultato quantitativo in cui posso avere fiducia.
Andare avanti
Ora che ho a disposizione questa analisi iniziale, posso esplorare più associazioni nei miei dati e persino utilizzare metodi più complicati come modelli di previsione e apprendimento automatico.
Questa analisi è un esempio molto semplice di studio N-di-1 e non è priva di limitazioni. Il mio studio era osservativo piuttosto che sperimentale e non possiamo dichiarare la causalità, poiché ci sono molte altre variabili confondenti non misurate dal mio Whoop. Se volessi trovare una relazione causale, dovrei progettare attentamente uno studio, registrare i dati su tutti i possibili fattori confondenti e trovare un modo per rendermi cieco rispetto al trattamento. Gli studi N su 1 sono difficili da realizzare al di fuori di un contesto clinico, tuttavia possiamo comunque trovare associazioni e relazioni significative ponendo semplici domande sui nostri dati.
Spero che dopo questo tutorial prenderai l'iniziativa di scaricare i tuoi dati da qualsiasi fitness tracker su cui riesci a mettere le mani e di giocarci. So che tutti possono avanzare un'ipotesi su come alcune variabili influiscono sulla loro salute, ma ciò che la maggior parte delle persone non capisce è che sei più vicino a ottenere una risposta quantificabile a quella domanda di quanto pensi.
Riferimenti e ulteriori letture
(1) Davidson, K., Cheung, K., Friel, C. e Suls, J. (2022). Presentazione della scienza dei dati a progetti N-di-1, statistiche, casi d'uso, futuro e alla sperimentazione Moniker “N-of-1”. Harvard Data Science Review, (numero speciale 3). https://doi.org/10.1162/99608f92.116c43fe
(2) Lillie EO, Patay B, Diamant J, Issell B, Topol EJ, Schork NJ. Lo studio clinico n-of-1: la strategia definitiva per individualizzare la medicina? Per Med. 2011 marzo;8(2):161–173. doi: 10.2217/pme.11.7. PMID: 21695041; ID PMC: PMC3118090.
(3) Daza EJ. Analisi causale di dati di serie temporali autotracciati utilizzando un quadro controfattuale per prove N-of-1. Metodi Inf. Med. 2018 febbraio;57(1):e10-e21. doi: 10.3414/ME16–02–0044. Epub 2018 5 aprile. PMID: 29621835; ID PMC: PMC6087468.
(4) Schork, N. Medicina personalizzata: tempo per sperimentazioni individuali. Natura 520609–611 (2015). https://doi.org/10.1038/520609a
Fonte: towardsdatascience.com