Finora ho usato la statistica di Shapiro-Wilk per testare ipotesi di normalità in piccoli campioni.
Potresti per favore consigliare un'altra tecnica?
Finora ho usato la statistica di Shapiro-Wilk per testare ipotesi di normalità in piccoli campioni.
Potresti per favore consigliare un'altra tecnica?
Risposte:
Il pacchetto fBasics in R (parte di Rmetrics ) include diversi test di normalità , che coprono molti dei popolari test per frequentisti - Kolmogorov-Smirnov, Shapiro-Wilk, Jarque – Bera e D'Agostino - insieme a un wrapper per i test di normalità nel pacchetto più settentrionale - Anderson – Darling, Cramer – von Mises, Lilliefors (Kolmogorov-Smirnov), Pearson chi – square e Shapiro – Francia. La documentazione del pacchetto fornisce anche tutti i riferimenti importanti. Ecco una demo che mostra come utilizzare i test da Nortest .
Un approccio, se hai tempo, è quello di utilizzare più di un test e verificare l'accordo. I test variano in vari modi, quindi non è del tutto semplice scegliere "il migliore". Che cosa usano gli altri ricercatori nel tuo campo? Questo può variare e potrebbe essere meglio attenersi ai metodi accettati in modo che altri accettino il tuo lavoro. Uso frequentemente il test Jarque-Bera, in parte per questo motivo, e Anderson-Darling per il confronto.
Puoi dare un'occhiata a "Confronto di test per la normalità univariata" (Seier 2002) e "Un confronto di vari test di normalità" (Yazici; Yolacan 2007) per un confronto e una discussione dei problemi.
È anche banale testare questi metodi per il confronto in R, grazie a tutte le funzioni di distribuzione . Ecco un semplice esempio con dati simulati (non stamperò i risultati per risparmiare spazio), anche se sarebbe necessaria un'esposizione più completa:
library(fBasics); library(ggplot2)
set.seed(1)
# normal distribution
x1 <- rnorm(1e+06)
x1.samp <- sample(x1, 200)
qplot(x1.samp, geom="histogram")
jbTest(x1.samp)
adTest(x1.samp)
# cauchy distribution
x2 <- rcauchy(1e+06)
x2.samp <- sample(x2, 200)
qplot(x2.samp, geom="histogram")
jbTest(x2.samp)
adTest(x2.samp)
Una volta ottenuti i risultati dei vari test su diverse distribuzioni, puoi confrontare quali erano i più efficaci. Ad esempio, il valore p per il test Jarque-Bera sopra ha restituito 0,276 per la distribuzione normale (accettando) e <2,2e-16 per il cauchy (rifiutando l'ipotesi nulla).
Per la normalità, l'attuale Shapiro-Wilk ha un buon potere in campioni abbastanza piccoli.
Il principale concorrente negli studi che ho visto è il più generale Anderson-Darling, che fa abbastanza bene, ma non direi che era meglio. Se puoi chiarire quali alternative ti interessano, probabilmente una statistica migliore sarebbe più ovvia. [modifica: se si stimano i parametri, il test AD dovrebbe essere adattato per quello.]
[Consiglio vivamente di non considerare Jarque-Bera in piccoli campioni (che probabilmente è meglio conosciuto come Bowman-Shenton nei circoli statistici - hanno studiato la piccola distribuzione dei campioni). La distribuzione congiunta asintotica di asimmetria e curtosi non assomiglia affatto alla distribuzione di piccoli campioni - allo stesso modo una banana non assomiglia molto a un'arancia. Ha anche una potenza molto bassa rispetto ad alcune alternative interessanti - ad esempio ha una bassa potenza per captare una distribuzione bimodale simmetrica che ha una curtosi simile a quella di una distribuzione normale.]
Spesso le persone testano la bontà di adattamento per quelle che si rivelano ragioni non particolarmente buone, oppure rispondono a una domanda diversa da quella a cui realmente vogliono rispondere.
Ad esempio, quasi sicuramente sai già che i tuoi dati non sono davvero normali (non esattamente), quindi non ha senso cercare di rispondere a una domanda a cui conosci la risposta - e il test di ipotesi in realtà non risponde comunque .
Dato che sai che non hai già la normalità esatta, il tuo test di ipotesi sulla normalità ti sta davvero dando una risposta a una domanda più vicina a "la mia dimensione del campione è abbastanza grande da raccogliere la quantità di non normalità che ho", mentre la vera domanda a cui sei interessato a rispondere è di solito più vicina a "qual è l' impatto di questa non normalità su queste altre cose che mi interessano?". Il test di ipotesi sta misurando la dimensione del campione, mentre la domanda a cui sei interessato a rispondere non dipende molto dalla dimensione del campione.
Ci sono momenti in cui il test della normalità ha un senso, ma quelle situazioni non si verificano quasi mai con piccoli campioni.
Perché stai testando la normalità?
Esiste un'intera categoria di Wikipedia sui test di normalità, tra cui:
Penso che AD sia probabilmente il migliore.
Per completezza, agli econometrici piace anche il test di Kiefer e Salmon dal loro articolo del 1983 in Economics Letters - riassume espressioni "normalizzate" di asimmetria e curtosi che viene poi distribuita chi-quadro. Ho una vecchia versione C ++ che ho scritto durante la scuola elementare che potrei tradurre in R.
Edit: Ed ecco un recente articolo di Bierens (ri) derivante da Jarque-Bera e Kiefer-Salmon.
Modifica 2: Ho esaminato il vecchio codice e sembra che sia davvero lo stesso test tra Jarque-Bera e Kiefer-Salmon.
In effetti, il test Kiefer Salmon e il test Jarque Bera sono sostanzialmente diversi, come mostrato in diversi punti, ma più recentemente qui - Test momentanei per distribuzioni di errori standardizzate: un approccio semplice e robusto di Yi-Ting Chen. Il test Kiefer Salmon per costruzione è solido di fronte alle strutture di errore di tipo ARCH a differenza del test Jarque Bera standard. Il documento di Yi-Ting Chen sviluppa e discute su quelli che penso siano probabilmente i migliori test al momento.
Per campioni di dimensioni <30 soggetti, si ritiene che Shapiro-Wilk abbia una potenza robusta - Fare attenzione , quando si regola il livello di significatività del test, poiché potrebbe causare un errore di tipo II! [1]