Le notizie sulla morte del test t sono state notevolmente esagerate?


25

Leggendo i classici di sempre di CV, mi sono imbattuto in una dichiarazione che vorrei chiarire. Questo è il post e la mia domanda si riferisce alle osservazioni conclusive: "Devo notare che tutte le conoscenze che ho appena impartito sono in qualche modo obsolete; ora che abbiamo i computer, possiamo fare meglio dei test t. Come osserva Frank, tu probabilmente vorrai usare i test Wilcoxon ovunque ti sia stato insegnato per eseguire un test t ".

La mancanza di preoccupazioni sul fatto che sia ragionevole supporre che la distribuzione dei mezzi di campionamento sia abbastanza normale da eseguire il test t è ovviamente un enorme vantaggio. E vedo che i computer possono classificare lunghe liste di differenze tra due vettori di dati in un gioco da ragazzi ... Ricordo di averlo fatto manualmente molti anni fa, ma sto divagando ...

Quindi, il test T è davvero un ricordo del passato? Che dire dei test di permutazione? Sono troppo ad hoc, nel senso che tipicamente implica la scrittura di alcune righe di codice?


3
Cosa rende ad hoc un test di permutazione ? Fisher considerava i test t appropriati nella misura in cui il loro comportamento era vicino a quello di un test di permutazione (scusate se non ho il preventivo esatto a portata di mano, se lo trovo lo darò), suggerendo che ha visto il test di permutazione come più fondamentale. Inoltre non vedo cosa sia difficile nei test di permutazione a due code. Ma forse sto cercando una specie di risposta.
Glen_b

1
Forse qualcosa a favore del test t di uguale varianza è la sua relazione con la stima dei parametri in un modello piuttosto semplice che potresti voler intrattenere.
Scortchi - Ripristina Monica

Risposte:


22

Non direi che i classici test t di un campione (incluso accoppiato) e di due campioni di uguale varianza sono esattamente obsoleti, ma ci sono moltissime alternative che hanno proprietà eccellenti e in molti casi dovrebbero essere usate.

Né direi che la capacità di eseguire rapidamente test di Wilcoxon-Mann-Whitney su campioni di grandi dimensioni - o persino test di permutazione - è recente, stavo facendo regolarmente più di 30 anni fa come studente, e la capacità di farlo aveva stato disponibile da molto tempo a quel punto.

Quindi, ecco alcune alternative e perché possono aiutare:

  1. Welch-Satterthwaite : quando non si è sicuri che le varianze siano vicine alla parità (se le dimensioni del campione sono uguali, l'assunzione della varianza uguale non è critica)

  2. Wilcoxon-Mann-Whitney - Eccellente se le code sono normali o più pesanti del normale, in particolare in casi vicini al simmetrico. Se le code tendono ad essere vicine alla norma, un test di permutazione sui mezzi offrirà leggermente più potenza.

  3. Test a T rinforzati - ce ne sono diversi che hanno una buona potenza al normale ma funzionano anche bene (e mantengono una buona potenza) con alternative più pesanti o leggermente inclinate.

  4. GLM - utile per conteggi o casi di inclinazione a destra continua (ad es. Gamma); progettato per affrontare situazioni in cui la varianza è correlata alla media.

  5. effetti casuali o modelli di serie temporali possono essere utili nei casi in cui esistono particolari forme di dipendenza

  6. Approcci bayesiani , bootstrap e una pletora di altre importanti tecniche che possono offrire vantaggi simili alle idee di cui sopra. Ad esempio, con un approccio bayesiano è del tutto possibile disporre di un modello in grado di spiegare un processo contaminante, gestire conteggi o dati distorti e gestire particolari forme di dipendenza, allo stesso tempo .

Sebbene esistano moltissime alternative utili, il vecchio test t a due campioni a varianza uguale standard di serie può spesso funzionare bene in campioni di grandi dimensioni e uguali purché la popolazione non sia molto lontana dalla norma (come ad esempio una coda molto pesante / skew) e abbiamo quasi indipendenza.

Le alternative sono utili in una serie di situazioni in cui potremmo non essere altrettanto sicuri con il semplice test t ... e tuttavia in genere funzionano bene quando le assunzioni del test t sono soddisfatte o prossime al raggiungimento.

Il Welch è un valore predefinito ragionevole se la distribuzione tende a non allontanarsi troppo dal normale (con campioni più grandi che consentono un maggiore margine di manovra).

Mentre il test di permutazione è eccellente, senza perdita di potenza rispetto al test t quando le sue ipotesi valgono (e l'utile vantaggio di dare inferenza direttamente sulla quantità di interesse), Wilcoxon-Mann-Whitney è senza dubbio una scelta migliore se le code possono essere pesanti; con un'ipotesi aggiuntiva minore, il WMW può dare conclusioni relative al cambiamento di media. (Ci sono altri motivi per cui uno potrebbe preferirlo al test di permutazione)

[Se sai di avere a che fare con conteggi, tempi di attesa o dati simili, la rotta GLM è spesso ragionevole. Se conosci un po 'le potenziali forme di dipendenza, anche questo viene prontamente gestito e il potenziale di dipendenza dovrebbe essere preso in considerazione.]

Quindi, anche se il test t sicuramente non sarà un ricordo del passato, puoi quasi sempre fare altrettanto bene o quasi quando si applica e potenzialmente guadagnare molto quando non lo fa arruolando una delle alternative . Vale a dire, sono ampiamente d'accordo con il sentimento in quel post relativo al test t ... per la maggior parte del tempo dovresti probabilmente pensare ai tuoi presupposti prima ancora di raccogliere i dati, e se qualcuno di loro non è davvero prevedibile per resistere, con il t-test di solito non c'è quasi nulla da perdere nel non fare semplicemente quel presupposto poiché le alternative di solito funzionano molto bene.

Se uno sta andando nella grande difficoltà di raccogliere dati, non c'è certamente motivo di non investire un po 'di tempo sinceramente considerando il modo migliore per affrontare le proprie inferenze.

Si noti che in genere sconsiglio di verificare esplicitamente i presupposti: non solo risponde alla domanda sbagliata, ma lo fa e quindi la scelta di un'analisi basata sul rifiuto o il non rifiuto dell'assunzione influisce sulle proprietà di entrambe le scelte del test; se non puoi ragionevolmente assumere il presupposto in modo sicuro (o perché conosci il processo abbastanza bene da poterlo assumere o perché la procedura non è sensibile ad esso nelle tue circostanze), in generale stai meglio usare la procedura questo non lo assume.


# set up some data
x <- c(53.4, 59.0, 40.4, 51.9, 43.8, 43.0, 57.6)
y <- c(49.1, 57.9, 74.8, 46.8, 48.8, 43.7)
xyv <- stack(list(x=x,y=y))$values
nx  <- length(x)

# do sample-x mean for all combinations for permutation test
permmean = combn(xyv,nx,mean)

# do the equivalent resampling for a randomization test
randmean <- replicate(100000,mean(sample(xyv,nx)))

# find p-value for permutation test
left  = mean(permmean<=mean(x))
# for the other tail, "at least as extreme" being as far above as the sample
# was below
right = mean(permmean>=(mean(xyv)*2-mean(x)))
pvalue_perm = left+right
"Permutation test p-value"; pvalue_perm

# this is easier: 
#      pvalue = mean(abs(permmean-mean(xyv))>=abs(mean(x)-mean(xyv))) 
# but I'd keep left and right above for adapting to other tests

# find p-value for randomization test
left  = mean(randmean<=mean(x))
right = mean(randmean>=(mean(xyv)*2-mean(x)))
pvalue_rand = left+right
"Randomization test p-value"; pvalue_rand

(I valori p risultanti sono rispettivamente 0,538 e 0,539; il corrispondente test t ordinario a due campioni ha un valore p di 0,504 e il test t Welch-Satterthwaite ha un valore p di 0,522.)

Si noti che il codice per i calcoli è in ogni caso 1 riga per le combinazioni per il test di permutazione e il valore p può anche essere eseguito in 1 riga.

Adattarlo a una funzione che eseguiva un test di permutazione o un test di randomizzazione e produceva risultati piuttosto come un test t sarebbe una cosa da poco.

Ecco una visualizzazione dei risultati:

inserisci qui la descrizione dell'immagine

# Draw a display to show distn & p-vale region for both 
opar <- par()
par(mfrow=c(2,1))
hist(permmean, n=100, xlim=c(45,58))
abline(v=mean(x), col=3)
abline(v=mean(xyv)*2-mean(x), col=3, lty=2)
abline(v=mean(xyv), col=4)
hist(randmean, n=100, xlim=c(45,58))
abline(v=mean(x), col=3)
abline(v=mean(xyv)*2-mean(x), col=3, lty=2)
abline(v=mean(xyv), col=4)

par(opar)

Sulla riga 16 del primo blocco di codice c'è un piccolo errore di battitura. Credo che dovrebbe leggere: # pvalue = mean (abs (permmean-mean (xyv))> = abs (mean (x) -mean (xyv))). Inoltre, perché la coda destra è testata come right = mean (permmean> = 2 * mean (xyv) - mean (x))?
Antoni Parellada,

Buona risposta (+1), ma in generale non sono d'accordo con l'affermazione secondo cui di solito c'è poco da perdere non facendo ipotesi, a meno che non si riferisca solo al test t. Non è chiaro se dovrebbe essere un'affermazione generale o meno. Per modelli più complessi e dimensioni del campione limitate, le ipotesi sono spesso cruciali, ad esempio sotto forma di priori debolmente informativi.
Erik,

1
@Erik Non era inteso come una dichiarazione generale. Consentitemi di chiarire
Glen_b -Sostituisci Monica il

1
tt

2
@Stephan ci sono così tante altre considerazioni lì (e un insieme piuttosto ridotto di alternative ampiamente utilizzate, almeno se guardiamo alla regressione multipla) che risponderebbero in quel caso sarebbe lungo e avrebbe alcune differenze sostanziali.
Glen_b Ripristina Monica il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.