Cosa significa davvero "confidenza al 95%"
Un intervallo di confidenza trasforma una stima puntuale ("la media campionaria è 5.61") in un intervallo onesto ("la media vera è plausibilmente tra 5.29 e 5.93"). Ma l'espressione confidenza al 95% è una delle più fraintese della statistica, quindi chiariamola subito.
Il 95% descrive la procedura, non l'intervallo. Immagina di ripetere il tuo studio più e più volte, con un nuovo campione e un nuovo intervallo ogni volta. Gli intervalli si sposterebbero qua e là, e circa il 95% di essi catturerebbe il valore vero; il 5% lo mancherebbe. Il tuo unico intervallo reale è una singola estrazione da quel processo. Ciò che il 95% non significa: "c'è una probabilità del 95% che la media vera sia dentro questi numeri". La media vera è un numero fisso (e sconosciuto): non entra ed esce dagli intervalli; sono gli intervalli a variare.
In pratica la lettura amichevole va bene: l'intervallo è l'insieme dei valori compatibili con i tuoi dati. Sappi solo quale affermazione puoi davvero sostenere quando qualcuno insiste.
IC per una media, la via facile
Ogni t.test() porta con sé un intervallo di confidenza; puoi eseguire il test anche solo per raccoglierlo:
Media 5.61, IC al 95% più o meno da 5.29 a 5.93. L'intervallo fa ciò che una media da sola non può fare: mostra quanta precisione ti comprano davvero dieci osservazioni.
Lo stesso IC a mano
Vale la pena costruire almeno una volta la formula dietro quell'intervallo, perché demistifica ogni IC che leggerai: stima ± valore critico × errore standard.
Confrontalo con l'output di t.test(): stesso intervallo fino all'ultima cifra. Tre ingredienti:
- L'errore standard
sd(x)/sqrt(n)misura quanto oscilla la media campionaria (vedi le statistiche descrittive per la differenza tra sd ed errore standard). qt(0.975, df)è il valore critico della t: per una copertura del 95% lasci il 2.5% in ciascuna coda, da cui 0.975. Con df = 9 vale circa 2.26, più largo dell'1.96 della normale: è la tassa dei piccoli campioni per aver stimato la sd dagli stessi dati.- Il margine di errore è il loro prodotto, il numero "±" che si legge nei titoli.
Cambiare il livello: 90%, 99% e il compromesso
conf.level controlla la copertura e, con essa, l'ampiezza:
Più confidenza costa più ampiezza: un intervallo al 99% deve essere abbastanza largo da avere ragione 99 volte su 100, quindi si allunga; un intervallo al 90% è più stretto ma sbaglia il doppio delle volte rispetto al 95%. Non ci sono pasti gratis, solo una manopola. Il 95% è pura convenzione: un valore predefinito da tenere a meno che tu non abbia un motivo, non una legge di natura.
IC per una proporzione: prop.test()
Supponi che 47 utenti su 120 intervistati adottino una nuova funzionalità. Qual è l'intervallo plausibile per il vero tasso di adozione?
Proporzione campionaria 0.39, IC al 95% più o meno da 0.30 a 0.49: dire "circa il 40% di adozione" è onesto solo con quell'alone di ±9 punti. prop.test() usa un'approssimazione migliore della formula da manuale p ± 1.96 × sqrt(p(1−p)/n) (è un intervallo di tipo Wilson con correzione di continuità), e questo conta soprattutto vicino a 0 o a 1: l'intervallo da manuale può uscire da [0, 1], questo no. Per conteggi molto piccoli, binom.test(47, 120)$conf.int dà la versione esatta.
IC per i coefficienti di un modello: confint()
I modelli stimati ottengono i loro intervalli con un'unica funzione generica:
Ogni riga racchiude un coefficiente della regressione lineare: l'intervallo al 95% della pendenza di wt va da circa −6.5 a −4.2 mpg per 1000 libbre. È più informativo del p-value del riepilogo: dice che l'effetto non è solo diverso da zero, ma vale almeno ~4 mpg e forse ~6.5.
Per un glm() logistico, confint(fit) funziona allo stesso modo ma restituisce limiti in log-odds; applica l'esponenziale per ottenere intervalli per gli odds ratio, exp(confint(fit)), e ricorda che il valore di riferimento "nessun effetto" diventa 1 invece di 0.
Dimensione del campione: la legge della radice quadrata
L'ampiezza si riduce con sqrt(n), e questo ha una conseguenza facile da ricordare: quadruplica i dati, dimezza l'intervallo. Guardalo succedere con dati simulati: stessa distribuzione, un campione 4 volte più grande (il seed rende tutto riproducibile; vedi i numeri casuali):
Le ampiezze finiscono vicine a un rapporto di 2 a 1 (il rumore di campionamento impedisce che sia esatto). La radice quadrata spiega perché la precisione diventa costosa: le prime 100 osservazioni restringono l'intervallo più delle 300 successive messe insieme, e dimezzare un intervallo già stretto costa sempre 4 volte quanto hai speso finora.
IC e p-value: due facce dello stesso test
Un intervallo di confidenza e un test d'ipotesi sono la stessa informazione con vestiti diversi. L'IC al 95% contiene esattamente i valori del parametro che un test bilaterale al livello 0.05 non rifiuterebbe. Quindi:
- IC per una differenza di medie che esclude 0 ⇔ il t-test dà p < 0.05.
- IC per un odds ratio che esclude 1 ⇔ il p del coefficiente è < 0.05.
Quando hai l'intervallo, di solito hai il riepilogo migliore: ti dà lo stesso verdetto di significatività più la dimensione dell'effetto in unità reali. "p = 0.03" dice che una differenza esiste; "IC al 95%: da 0.2 a 7.6" dice che esiste e che potrebbe essere trascurabile oppure enorme, ed è spesso questo il risultato che conta.
Cosa ti porti a casa
- Il 95% descrive il tasso di successo della procedura nel lungo periodo, non la probabilità che questo singolo intervallo abbia catturato il valore vero.
- Media:
t.test(x)$conf.int, oppure a mano come media ±qt(0.975, n−1)× errore standard. - Proporzione:
prop.test(x, n)$conf.int; coefficienti di un modello:confint(fit)(applica l'esponenziale per gli odds ratio dei glm). - Più confidenza = intervallo più largo; il 95% è una convenzione, non una legge.
- L'ampiezza si riduce con sqrt(n): 4 volte i dati dimezzano l'intervallo.
- L'IC contiene ogni valore che un test al livello 0.05 non rifiuterebbe e, a differenza del p-value, mostra la dimensione dell'effetto.
Prossimo passo: il kit di simulazione dietro a tutto questo, i numeri casuali con rnorm, runif, sample e set.seed.
Domande frequenti
Come si calcola un intervallo di confidenza al 95% in R?
Per una media, la strada più rapida è t.test(x)$conf.int. Per una proporzione, prop.test(successes, trials)$conf.int. Per i coefficienti di un modello lm() o glm() stimato, confint(fit). Tutti e tre usano il 95% come valore predefinito; cambialo con conf.level = 0.90 (o 0.99).
Cosa significa davvero un intervallo di confidenza al 95%?
È un'affermazione sulla procedura: se ripetessi lo studio molte volte e costruissi ogni volta un intervallo, circa il 95% di quegli intervalli conterrebbe il valore vero. Non significa "95% di probabilità che il parametro sia dentro questo intervallo specifico": il parametro è un numero fisso, e ogni singolo intervallo o l'ha catturato o no.
Come si calcola a mano un intervallo di confidenza in R?
Media ± valore critico × errore standard. Per una media: m <- mean(x); se <- sd(x)/sqrt(length(x)); m + c(-1, 1) * qt(0.975, df = length(x) - 1) * se. La chiamata qt(0.975, df) è il valore critico della t che lascia il 2.5% in ciascuna coda.
Come influisce la dimensione del campione su un intervallo di confidenza?
L'ampiezza si riduce con la radice quadrata di n: quadruplica il campione e l'intervallo si dimezza. Quella radice quadrata spiega perché l'ultimo pezzo di precisione è costoso: passare da ±2 a ±1 richiede quattro volte i dati, non il doppio.