Intervallo di confidenza, calcolo parametrico
L'intervallo di confidenza
I concetti di base
Riprendiamo alcuni dei concetti alla base del calcolo dell'intervallo di confidenza:
- il fine del calcolo è di stimare il parametro di una popolazione, partendo da un campione
- la statistica calcolata sul campione viene usata come stima del parametro della popolazione: è una stima puntuale
- le metodologie che stimano l'errore sono finalizzate a stimare l'accuratezza della stima
- l'intervallo di confidenza è il range entro il quale si prevede si collochi il parametro della popolazione
Bias e errori non sistematici
Nella definizione di errore, dobbiamo distinguere fra gli errori sistematici e gli errori non sistematici
- l'errore sistematico è definito anche bias: una inaccuratezza dovuta ad un errore che sistematicamente alza o abbassa la stima.
- l'errore non sistematico, al contrario, tende ad aumentare la varianza delle osservazioni.
L'accuratezza di un processo di stima è influenzata sia dal bias e dalla varianza
Accuratezza, efficienza
- Per aumentare l'accuratezza, è necessario tentare di ridurre sia il bias che la varianza.
- A parità di bias, minore è la varianza dovuta all'errore e maggiore l'efficienza.
- Un buon processo di stima ha bias nullo e varianza bassa.
La media di un campione, ad esempio, è una stima unbiased, in quanto la distribuzione delle medie si distribuisce normalmente intorno alla media della popolazione.
L'intervallo di confidenza
La percentuale di confidenza si riferisce alla probabilità che il valore del parametro della popolazione cada nell'intervallo identificato in base alla nostra stima.
L'intervallo di confidenza copre, con una determinata probabilità, il parametro della popolazione, non noto.
Come abbiamo visto, l'intervallo può essere calcolato con un metodo non parametrico, il bootstrapping.
L'intervallo di confidenza può essere calcolato anche con dei metodi parametrici.
Assunto di normalità
Poiché questi metodi fanno delle assunzioni sulla distribuzione della popolazione (e del campione), prima di applicarle è necessario verificare questa assunzione.
Prima di calcolare l'intervallo di confidenza con il metodo parametrico è dunque necessario verificare che la distribuzione del campione non si discosti significativamente dalla distribuzione normale.
Una volta stabilita la normalità del campione e assunta la normalità della popolazione, possiamo procedere con il calcolo.
La simulazione
Riprendiamo la distribuzione di 200 campioni di numerosità 50, generata nel capitolo precedente. Abbiamo visto che la distribuzione ha una forma che si approssima a quella normale, con media che si approssima alla media della popolazione. Formalmente: $\mu_{\bar} \approx \mu$
<!-- % teorema del limite centrale
% Di nuovo, usiamo una simulazione per capire, passo passo, la logica del calcolo parametrico. % Ritorniamo alla popolazione, di media 20 e deviazione standard 2, generata per la simulazione del bootstrapping. % Ieri, abbiamo estratto 200 campioni di 50 osservazioni dalla popolazione. % Abbiamo calcolato la media di ognuno dei 200 campioni. Nell'esempio di ieri, la media delle medie era perfettamente uguale alla media della popolazione poiché avevamo usato, una sola volta, ognuno dei valori della popolazione. % Ma anche in condizioni non così artificiose, la media delle medie tende a coincidere con la media della popolazione. % I 200 campioni, dunque, ci servivano per generare una distribuzione delle medie. È dalla distribuzione delle medie, infatti, che possiamo calcolare l'ampiezza del range dell'intervallo di confidenza. % Se la distribuzione della popolazione è normale, anche la distribuzione delle medie dei campioni sarà normale. -->
Varianza della distribuzione delle medie
Come abbiamo osservato, la varianza della distribuzione delle medie dei campioni cambia a seconda della numerosità del campione. Più in particolare, la varianza della distribuzione delle medie tende ad essere pari alla varianza della popolazione / la numerosità delle osservazioni dei campioni: \begin \sigma_{\bar}^2 = \frac{\sigma^2}, \sigma_{\bar}= \frac{\sigma}{\sqrt} \label \end
Questa misura viene definita errore standard.
Proviamo a verificare \ref con le nostre simulazioni.
var(popolazione)/var(medie_campioni50)
## [1] 58.39391
var(popolazione)/var(medie_campioni20)
## [1] 22.10832
Possiamo notare che il rapporto fra la varianza della popolazione e la varianza campionaria è $\approx 50$ nel primo gruppo (campioni con numerosità 50), e $\approx 20$ nel secondo, dove i campioni sono di numerosità 20.
errore_standard <- sd(popolazione)/sqrt(m50)
plot_range <- seq(-3,3,by=.05)
plot_range <- plot_range * errore_standard + mean(popolazione)
prob_dist <- dnorm(plot_range,mean=mean(popolazione),sd=errore_standard)
plot(plot_range,prob_dist,type="l")
lines(density50,col=3)
score <- qnorm (0.025,mean=mean(popolazione),sd=errore_standard)
xx <-c(plot_range[plot_range<score],score,score,plot_range[1])
yy <- c(dnorm(xx[1:(length(xx)-2)],mean=mean(popolazione),sd=errore_standard),0,0)
polygon(xx, yy, col="gray", border = "red")
score <- qnorm (0.975,mean=mean(popolazione),sd=errore_standard)
xx <-c(score,score,plot_range[plot_range>score],plot_range[length(plot_range)])
yy <- c(0,prob_dist[(length(plot_range)-length(xx)+3):length(plot_range)],0)
polygon(xx, yy, col="gray", border = "red")
Dalla simulazione alla stima
Nella circostanza della simulazione, conosciamo la popolazione, ne conosciamo la distribuzione, la media, la varianza. Grazie all'equazione \ref possiamo stimare la distribuzione campionaria. Il passaggio logico dei prossimi paragrafi sarà il seguente:
- stimiamo la distribuzione campionaria conoscendo media e varianza della popolazione;
- stimiamo la distribuzione campionaria stimando la media, conoscendo la varianza;
- infine, la situazione più realistica: stimiamo la distribuzione campionaria stimando media e varianza.
Media e varianza nota
Assumiamo, per ora, di conoscere media e varianza della popolazione.
Conoscendo la media della popolazione e la sua varianza, possiamo ricostruire la distribuzione delle medie dei campioni, che sarà una distribuzione (teorica) normale con media $\mu_{\bar} = \mu$ e deviazione standard $\sigma_{\bar}= \frac{\sigma}{\sqrt}$ (errore standard)
Sovrapporre le distribuzioni
Per verificare graficamente la corrispondenza, sovrapponiamo il grafico della distribuzione teorica appena calcolata sulla distribuzione campionaria della simulazione (fig. \ref).
A partire da questa distribuzione, possiamo calcolare i percentili 2.5 e 97.5, che corrispondono all'intervallo di confidenza del 95%.
media_pop <- mean(popolazione)
confidenza1 <- c(qnorm(0.025, media_pop, errore_standard), qnorm(0.975, media_pop, errore_standard))
confidenza1
## [1] 19.42705 20.53443
Ricordiamo che qnorm(p,m,sd)
calcola il valore che, data media m
e deviazione standard sd
, copre un'area pari a p
.
Varianza nota, media ignota
Nella realtà, però, noi non conosciamo né la media né la varianza della popolazione.
Assumiamo, per ora, di conoscere ancora la varianza della popolazione, ma non la sua media. A questo punto, l'intervallo di confidenza avrà la stessa ampiezza di quello calcolato prima, ma sarà centrato attorno non alla media della popolazione (che non conosciamo) ma alla media del campione: usiamo $\bar$ come stima di $\mu$.
R: calcolo dell'intervallo
A questo punto, il calcolo dell'intervallo di confidenza sarà il seguente:
media_campione <- mean(campioneA)
confidenza2 <- c(qnorm(0.025, media_campione, errore_standard), qnorm(0.975, media_campione, errore_standard))
confidenza2
## [1] 19.40391 20.51129
Varianza e media ignota
Arriviamo, ora, all'ipotesi più realistica: conosciamo media e deviazione standard del campione, ma non quelle della popolazione.
Il passaggio più logico parrebbe quello di usare $s_{\bar}$, la deviazione standard del campione, come stima di $\sigma$, la deviazione standard della popolazione. In realtà, la deviazione standard del campione è più bassa di quella della popolazione: se utilizziamo la prima al posto della seconda otteniamo un range irrealisticamente troppo stretto.
Per correggere questo bias (è un errore sistematico) si utilizza, al posto della distribuzione normale, la distribuzione t di Student.
La distribuzione t di Student
La t di Student è una classe di distribuzioni, che si basano sui gradi di libertà. Nel caso del nostro intervallo di confidenza, i gradi di libertà sono pari a m-1. \footnote{quando df>120, la distribuzione t di Student tende ad approssimarsi alla distribuzione normale.}
R: calcolo dal t di Student
Calcoliamo l'errore standard stimato a partire dalla deviazione standard del campione. Usiamo poi la funzione qt
per calcolare i quantili 0.025 e 0.975 della distribuzione t con 50-1 gradi di libertà. Il risultato, sarà l'intervallo di confidenza.
errore_standard_stimato <- sd(campioneA)/sqrt(m50)
confidenza3 <- c(qt(0.025, df = 49) * errore_standard_stimato + mean(campioneA), qt(0.975, df = 49) * errore_standard_stimato + mean(campioneA))
confidenza3
## [1] 19.33771 20.57749
L'uso della funzione t.test
era stato anticipato in \ref. Il risultato -- in termini di intervallo di confidenza -- del test è quello calcolato con il codice appena mostrato.
Confronto fra un campione ed una popolazione
Abbiamo appena visto la statistica parametrica per calcolare l'intervallo di confidenza della stima del parametro della media di una popolazione, a partire da un campione. Nel capitolo precedente abbiamo usato il bootstrapping, in questo il t test. Il test t di Student, però, può essere usato anche per stimare se un campione appartiene ad una popolazione la cui media è nota.
In questo caso, si tratta di stimare se il campione è stato estratto da una popolazione con media $\mu$ oppure no.
In termini inferenziali, abbiamo le due ipotesi:
- ipotesi nulla, $H_0$: non vi è differenza significativa fra la media del campione, $\bar$ e la media della popolazione, $\mu$;
- ipotesi alternativa, $H_A$: la differenza fra le due medie è significativa, e dunque il campione non appartiene alla popolazione.
Per giungere alla nostra decisione inferenziale, ci viene in soccorso proprio l'intervallo di confidenza: se la media della popolazione cade all'interno dell'intervallo, non possiamo rifiutare l'ipotesi nulla. In caso contrario, rifiutiamo l'ipotesi nulla e accettiamo l'ipotesi alternativa.
Il p-value
Vi è una possibilità complementare: calcolare il p-value. In termini inferenziali, il p-value ci dice la probabilità di incorrere in un errore di tipo I nel caso di rifiuto dell'ipotesi nulla.
Di fatto, quello che calcoliamo è la probabilità che il nostro campione possa essere stato estratto da una popolazione la cui media è pari ad un valore predefinito.
Decidiamo per un errore di I tipo pari ad $\alpha=0.05$ e, nella nostra simulazione, assumiamo un'ipotesi a due code.
Il primo passaggio, è quello di calcolare la differenza, in termini assoluti, fra la media del campione e quella della popolazione. Il secondo passaggio è di trasformare questa distanza in punti t, attraverso la formula distanza / errore standard
.
Infine, confrontiamo questo punteggio con la distribuzione t di Student, con gradi di libertà pari a m-1.
Primo esempio
Come primo esempio, calcoliamo il p-value della differenza fra la media della popolazione e quella del campione campioneA. Poiché il campione è stato estratto dalla popolazione, ci aspettiamo che il p-value sia alto (superiore ad $\alpha$).
Calcolo con R
distanza1 <- abs(mean(campioneA) - mean(popolazione))
t1 <- distanza1/errore_standard_stimato
p_value1 <- (1 - pt(t1, df = 49)) * 2
t1
## [1] 0.07499957
p_value1
## [1] 0.9405204
R: uso del t.test
Dopo aver calcolato manualmente il p-value, ci affidiamo alla funzione t.test
.
(t_test_campioneA <- t.test(campioneA, mu = mean(popolazione)))
##
## One Sample t-test
##
## data: campioneA
## t = -0.075, df = 49, p-value = 0.9405
## alternative hypothesis: true mean is not equal to 19.98074
## 95 percent confidence interval:
## 19.33771 20.57749
## sample estimates:
## mean of x
## 19.9576
L'algoritmo usato dalla funzione t.test
è leggermente diverso: non viene usato il valore assoluto della differenza, e il punteggio t in questo caso è negativo. Il principio rimane comunque lo stesso -- e il risutato anche.
Leggere l'output
La funzione t.test
ci restituisce tutte le informazioni di cui abbiamo bisogno: la statistica calcolata: One Sample t-test; i gradi di libertà: 49; il p-value: 0.9405204; l'intervallo di confidenza al 19.3377128, 20.5774909. Poiché $p>\alpha=0.05$, se il p-value è superiore ad alpha non rifiutiamo l'ipotesi $H_0$.
Secondo esempio
Proviamo ora a confrontare il nostro campione con una media più alta: 20.8. In questo caso, sapendo che 20.8 è esterno all'intervallo di confidenza, ci aspettiamo un p-value inferiore ad $\alpha=0.05$.
distanza2 <- abs(mean(campioneA) - 20.8)
t2 <- distanza2/errore_standard_stimato
p_value2 <- (1 - pt(t2, df = 49)) * 2
t2
## [1] 2.730912
p_value2
## [1] 0.008753609
R: uso del t.test
Dopo aver calcolato manualmente il p-value, ci affidiamo alla funzione t.test
.
(t_test_campioneA2 <- t.test(campioneA, mu = 20.8))
##
## One Sample t-test
##
## data: campioneA
## t = -2.7309, df = 49, p-value = 0.008754
## alternative hypothesis: true mean is not equal to 20.8
## 95 percent confidence interval:
## 19.33771 20.57749
## sample estimates:
## mean of x
## 19.9576
Poiché, in questo caso, $p-value = 0.0087536 < \alpha=0.05$, rifiutiamo l'ipotesi $H_0$ e accettiamo l'ipotesi alternativa $H_A$.