Test Bootstrap per Principianti

Bootstrap Test for Beginners.

Parte 2 di Test non parametrici per principianti

Foto di Mohamed Nohassi su Unsplash

Nella Parte 1 di questa serie, ho presentato semplici test di rango e segno come introduzione ai test non parametrici. Come menzionato nella Parte 1, il bootstrap è anche un metodo non parametrico popolare per l’inferenza statistica, basato sul ri-campionamento dei dati osservati. Ha guadagnato una vasta popolarità (soprattutto in ambito accademico), dal momento che Bradley Efron lo ha introdotto per la prima volta negli anni ’80. Efron e Tibshirani (1994) forniscono una panoramica introduttiva e completa del metodo bootstrap. La sua applicazione è stata estesa nei campi della scienza statistica, con il libro sopracitato che ha attirato più di 50.000 citazioni su Google Scholar fino ad oggi.

In questo post, presento il metodo bootstrap per principianti in modo intuitivo, con semplici esempi e codice R.

Introduzione

Come menzionato nella Parte 1, gli elementi chiave dei test di ipotesi includono

  1. Le ipotesi nulla e alternativa (H0 e H1)
  2. Test statistico
  3. Distribuzione campionaria del test statistico sotto H0
  4. Regola decisionale (valore p o valore critico, a un dato livello di significatività)

Nella generazione della distribuzione campionaria di un test statistico,

  • i test parametrici (come il test t o F) assumono che la popolazione segua una distribuzione normale. Se la popolazione non è normale, allora una distribuzione normale viene utilizzata come approssimazione alla distribuzione campionaria, grazie al teorema del limite centrale (chiamata approssimazione normale asintotica);
  • i test di rango e segno utilizzano il rango e i segni dei punti dati per generare la distribuzione campionaria esatta, come discusso nella Parte 1;
  • il bootstrap genera o approssima la distribuzione campionaria di una statistica, basata sul ri-campionamento dei dati osservati (con sostituzione), in modo simile a quando i campioni vengono prelevati casualmente e ripetutamente dalla popolazione.
  • Come per i test di rango e segno, il bootstrap non richiede la normalità della popolazione o l’approssimazione normale asintotica basata sul teorema del limite centrale.
  • Nella sua forma base, il bootstrap richiede un campionamento casuale puro da una popolazione di media e varianza fisse (senza normalità), anche se esistono metodi di bootstrap applicabili a dati dipendenti o eteroschedastici.

In questo post, il metodo bootstrap di base per i dati generati casualmente da una popolazione viene presentato con esempi. Per i metodi di bootstrap per strutture di dati più generali, ne vengono presentati brevemente i dettagli e le risorse R in una sezione separata.

Esempi per il bootstrap

Esempio 1: X = (1, 2, 3)

Supponiamo che un ricercatore osservi un set di dati X = (1, 2, 3) con la media campionaria di 2 e la deviazione standard ( s ) di 1. Supponendo una popolazione normale, la distribuzione campionaria della media campionaria (Xbar) sotto H0: μ = 2 è

dove s = 1 e μ è la media della popolazione. Ciò significa che, sotto l’approssimazione normale, la media campionaria segue una distribuzione normale con media 2 e varianza di 1/3.

Il bootstrap ri-campiona i dati osservati X = (1, 2, 3) con sostituzione, dando una probabilità uguale di 1/3 ai suoi membri. La Tabella 1 qui sotto presenta tutti i 27 possibili risultati di questi ri-campionamenti (o pseudo-dati) X* = (X1*, X2*, X3*) con i valori medi di ciascun risultato.

Table 1: Sampling with Replacement from X (Image Created by the Author)

La media di questi 27 risultati è 2 e la varianza è 0,23. La distribuzione delle medie campionarie da questi X* rappresenta la distribuzione bootstrap esatta, che è rappresentata nel Grafico 1 qui sotto:

Figura 1: Distribuzione esatta bootstrap e la sua stima della densità (Immagine creata dall'autore)

Il grafico a barre a sinistra mostra la distribuzione esatta bootstrap, mentre la stima della densità del kernel della distribuzione bootstrap (in rosso) è tracciata insieme alla distribuzione normale con media 2 e varianza 1/3 (in nero).

Esempio 2: X = (1, 2, 6)

Consideriamo ora il caso in cui X = (1, 2, 6) con la media campionaria 3 e s = 2,65. Un calcolo simile a quello della Tabella 1 mostra che la media di X* è 3 con una varianza di 1,62. La distribuzione esatta bootstrap è rappresentata nella Figura 2 sotto, insieme a una stima della densità del kernel (in rosso), che mostra una chiara deviazione dalla distribuzione normale con media 3 e varianza di s ² / n (in nero).

Figura 1: Distribuzione esatta bootstrap e la sua stima della densità (Immagine creata dall'autore)

Dai due esempi precedenti, possiamo affermare quanto segue:

  • L’esempio 1 è il caso in cui l’insieme di dati X è esattamente simmetrico intorno alla sua media. La distribuzione di campionamento bootstrap per la media campionaria è anche simmetrica, ben approssimata da una distribuzione normale.
  • L’esempio 2 è il caso in cui l’insieme di dati X è asimmetrico intorno alla sua media, il che è ben riflesso dalla forma della distribuzione di campionamento bootstrap. Tuttavia, la distribuzione normale non è in grado di riflettere questa asimmetria.
  • Dato che la distribuzione della popolazione è sconosciuta in questi esempi, è difficile valutare se la distribuzione bootstrap sia una rappresentazione migliore della vera distribuzione di campionamento della media campionaria.
  • Tuttavia, osserviamo che il bootstrap ha la capacità di riflettere possibili asimmetrie nella distribuzione della popolazione, che l’approssimazione asintotica normale non è in grado di catturare.

Si noti che il bootstrap è in grado di catturare molte proprietà non normali di una popolazione, come l’asimmetria, la coda grassa e la bimodalità, che non possono essere catturate da un’approssimazione normale.

Molti studi accademici che confrontano il bootstrap e l’approssimazione asintotica normale forniscono forti evidenze che il bootstrap in generale funziona meglio, catturando le caratteristiche della vera distribuzione di campionamento, specialmente quando la dimensione del campione è piccola. Segnalano che, all’aumentare della dimensione del campione, i due metodi mostrano proprietà simili, il che significa che il bootstrap dovrebbe essere generalmente preferito quando la dimensione del campione è piccola.

Bootstrap per X = (X1, …, Xn)

Gli esempi di cui sopra presentano il caso in cui n = 3, in cui siamo in grado di ottenere la distribuzione esatta bootstrap per tutti i 27 possibili resampling. Notando che il numero di tutti i possibili resampling è nⁿ, il calcolo della distribuzione esatta bootstrap con nⁿ campioni di ricalcolo come sopra può essere troppo gravoso dal punto di vista computazionale, per un valore generale di n. Tuttavia, questo processo non è necessario, poiché una simulazione di Monte Carlo può fornire un’approssimazione abbastanza accurata della distribuzione esatta bootstrap.

Supponiamo che i dati X siano ottenuti casualmente da una popolazione con media e varianza fisse. Supponiamo che la statistica di interesse, come la media campionaria o la t-statistica, sia indicata come T(X). Allora,

  1. otteniamo X* = (X₁*, …, Xₙ*) campionando con sostituzione da X, dando puramente in modo casuale la stessa probabilità a ciascun membro di X.
  2. Dato che non possiamo farlo per tutti i possibili nⁿ resampling, ripetiamo il sopra sufficientemente molte volte B, come 1000, 5000 o 10000. Facendo questo, abbiamo B diversi insiemi di X*, che possono essere scritti come {X*(i)}, dove i = 1, …, B.
  3. Da ogni X*(i), viene calcolata la statistica di interesse [T(X*)]. Quindi abbiamo {T(X*,i)} (i = 1, …, B), dove T*(X*,i) è T(X*) calcolato da X*(i).

La distribuzione bootstrap {T(X*,i)} viene utilizzata come approssimazione alla esatta distribuzione bootstrap, così come alla distribuzione di campionamento sconosciuta di T.

Come esempio, ho generato X = (X1, …, X20) da:

  • la distribuzione F con 2 e 10 gradi di libertà [F(2,10)],
  • distribuzione chi-quadrato con 3 gradi di libertà [chisq(3)],
  • distribuzione T-Student con 3 gradi di libertà [t(3)], e
  • la distribuzione log-normale con media 0 e varianza 1 (lognorm).

La figura 3 qui sotto mostra le stime di densità di {T(X*,i)}(i = 1,…., B), dove T è la media e B = 10000, in confronto con le densità della distribuzione normale con i valori di media e varianza corrispondenti a quelli di X. Le distribuzioni bootstrap possono essere diverse dalla distribuzione normale, specialmente quando la distribuzione della popolazione sottostante si discosta sostanzialmente dalla distribuzione normale.

Figure 3: Bootstrap Distribution (red) vs. Normal Distribution (black) (Image Created by the Author)

Il codice R per le simulazioni Monte Carlo e i grafici sopra sono riportati di seguito:

n=20    # Dimensione del campione set.seed(1234)pop = "lognorm"      # Tipo di popolazioneif (pop=="F(2,10)") x=rf(n,df1=2,df2=10)if (pop=="chisq(3)") x=rchisq(n,df=3)if (pop=="t(3)") x=rt(n,df=3)if (pop=="lognorm") x=rlnorm(n)# Calcolo della media campionaria con bootstrap B=10000          # Numero di iterazioni bootstrap stat=matrix(NA,nrow=B)for(i in 1:B){  xboot=sample(x,size=n,replace = TRUE)  stat[i,] = mean(xboot)}# Plotsplot(density(stat),col="red",lwd=2,main=pop,xlab="")m=mean(x); s=sd(x)/sqrt(n)curve(dnorm(x,mean=m,sd=s),add=TRUE, yaxt="n")rug(stat)

Il test bootstrap e l’analisi sono condotti sulla base delle curve rosse sopra, che sono {T(X*,i)}, invece delle distribuzioni normali in nero.

  • Le statistiche inferenziali come l’intervallo di confidenza o il valore p sono ottenute da {T(X*,i)}, allo stesso modo in cui lo facciamo utilizzando una distribuzione normale.
  • La distribuzione bootstrap può rivelare informazioni ulteriori e più dettagliate, come la simmetria, la coda grassa, la non-normalità, la bi-modalità e la presenza di outlier, riguardo alle proprietà della popolazione.

Supponiamo che T(X) sia la media campionaria come sopra.

L’intervallo di confidenza bootstrap per la media della popolazione può essere ottenuto prendendo i percentili appropriati di {T(X*,i)}. Ad esempio, sia {T(X*,i;θ)} il percentile θ di {T(X*,i)}. Quindi, l’intervallo di confidenza bootstrap al 95% è ottenuto come intervallo [{T(X*,i;2.5)},{T(X*,i;97.5)}].

Supponiamo che T(X) sia la statistica del test t per H0: μ = 0 contro H0: μ > 0. Quindi, il valore p bootstrap è calcolato come la proporzione di {T(X*,i)} maggiore del valore T(X) del campione originale. Vale a dire, il valore p è calcolato in modo analogo al caso della distribuzione normale, a seconda della struttura di H1.

Table 2: Bootstrap vs. Normal 95% Confidence Intervals (Image Created by the Author)

La tabella 2 sopra presenta l’intervallo di confidenza bootstrap in confronto all’intervallo di confidenza asintotico normale, entrambi al 95% di confidenza. Le due alternative forniscono intervalli simili quando la distribuzione della popolazione è t(3) o chisq(3), ma possono essere molto diversi quando la popolazione segue distribuzioni F(2,10) o lognorm.

Test t di Bootstrap in R

Il metodo di Bootstrap può essere applicato ai test t a uno o due campioni. In questo caso, la statistica di test di interesse T(X) è la statistica del test t, e la sua distribuzione di Bootstrap può essere ottenuta come sopra. In R, il pacchetto “MKinfer” fornisce le funzioni per i test di Bootstrap.

Consideriamo X e Y nell’esempio usato nella Parte 1:

x = c(-0.63, 0.18,-0.84,1.60,0.33, -0.82,0.49,0.74,0.58,-0.31,      1.51,0.39,-0.62,-2.21,1.12,-0.04,-0.02,0.94,0.82,0.59)y=c(1.14,0.54,0.01,-0.02,1.26,-0.29,0.43,0.82,1.90,1.51,    1.83,2.01,1.37,2.54,3.55, 3.99,5.28,5.41,3.69,2.85)# Installa il pacchetto MKinferlibrary(MKinfer)# Test a un campione per X con H0: mu = 0boot.t.test(x,mu=0)# Test a un campione per Y con H0: mu = 1boot.t.test(y,mu=1)# Test a due campioni per X e Y con H0: mu(x) - mu(y) = -1boot.t.test(x,y,mu=-1)

I risultati sono riassunti nella tabella sottostante (tutti i test assumono un H1 a due code):

Tabella 3: intervalli di confidenza al 95% e valori p (Immagine creata dall'autore)
  • Per testare μ(X) = 0, la media campionaria di X è 0,19 e la t-statistica è 0,93. Gli intervalli di confidenza di Bootstrap e asintotici e i valori p forniscono risultati inferenziali simili di non rigettare H0, ma l’intervallo di confidenza di Bootstrap è più stretto.
  • Per testare μ(Y) = 1, la media campionaria di Y è 1,99 e la t-statistica è 2,63. Gli intervalli di confidenza di Bootstrap e asintotici e i valori p forniscono risultati inferenziali simili di rigettare H0 al livello di significatività del 5%, ma l’intervallo di confidenza di Bootstrap è più stretto con un valore p più basso.
  • Per testare H0: μ(X) — μ(Y) = — 1, la differenza media tra X e Y è -1,80 e la t-statistica è -1,87. Gli intervalli di confidenza di Bootstrap e asintotici e i valori p forniscono risultati inferenziali simili di rigettare H0 al livello di significatività del 10%.

Metodi di Bootstrap per strutture dati più generali

Come menzionato in precedenza, i metodi di Bootstrap sono stati sviluppati anche per il modello di regressione lineare, la previsione delle serie temporali e per i dati con strutture più generali. Alcune importanti estensioni dei metodi di Bootstrap sono riassunte di seguito:

  • Per il modello di regressione lineare, il Bootstrap può essere condotto campionando i residui o campionando i casi: vedere il pacchetto “car” in R.
  • Il Bootstrap può essere applicato alla previsione delle serie temporali basata sul modello autoregressivo: vedere il pacchetto “BootPR” in R.
  • Per i dati delle serie temporali con una struttura di dipendenza seriale sconosciuta, può essere utilizzato il Bootstrap stazionario (o Bootstrap a blocchi mobili). Questo comporta il campionamento di blocchi di osservazioni delle serie temporali. Il pacchetto R “tseries” fornisce una funzione per questo metodo.
  • Per i dati con eteroschedasticità di forma sconosciuta, può essere utilizzato il Bootstrap wild, utilizzando il pacchetto R “fANCOVA”. Campiona i dati ridimensionandoli con una variabile casuale con media zero e varianza unitaria in modo che la struttura eteroschedastica sia replicata efficacemente.

Conclusione

Questo post ha esaminato il metodo di Bootstrap come test non parametrico in cui il campionamento ripetitivo dei dati osservati viene utilizzato come modo di calcolare o approssimare la distribuzione campionaria di una statistica. Sebbene in questo post siano stati coperti solo il metodo di Bootstrap per l’intervallo di confidenza e il valore p per il test della media della popolazione, l’applicazione del Bootstrap è estesa, che va dall’analisi di regressione ai dati delle serie temporali con struttura di dipendenza sconosciuta.

Molti studi accademici hanno riportato i risultati teorici o computazionali che il test bootstrap spesso supera l’approssimazione normale asintotica, specialmente quando la dimensione del campione è piccola o moderata.

Pertanto, nei campioni di piccole dimensioni, si consiglia vivamente ai ricercatori di statistica e apprendimento automatico di utilizzare il bootstrap come utile alternativa alla convenzionale inferenza statistica basata sull’approssimazione normale asintotica.