Perché è sbagliato interrompere un test A / B prima che venga raggiunta la dimensione ottimale del campione?


13

Sono incaricato di presentare i risultati dei test A / B (eseguiti su varianti di siti Web) presso la mia azienda. Eseguiamo il test per un mese e quindi controlliamo i valori p a intervalli regolari fino a raggiungere la significatività (o abbandoniamo se la significatività non viene raggiunta dopo aver eseguito il test per molto tempo), qualcosa che sto scoprendo ora è una pratica sbagliata .

Voglio interrompere questa pratica ora, ma per farlo, voglio capire PERCHÉ questo è sbagliato. Ho capito che la dimensione dell'effetto, la dimensione del campione (N), il criterio alfa significatività (α) e potenza statistica, o beta scelto o implicita (β) sono matematicamente correlato. Ma cosa cambia esattamente quando interrompiamo il test prima di raggiungere la dimensione del campione richiesta?

Ho letto alcuni post qui (vale a dire questo , questo e questo ), e mi dicono che le mie stime sarebbero distorte e il tasso del mio errore di tipo 1 aumenta drammaticamente. Ma come succede? Sto cercando una spiegazione matematica , qualcosa che mostri chiaramente gli effetti della dimensione del campione sui risultati. Immagino che abbia qualcosa a che fare con le relazioni tra i fattori che ho menzionato sopra, ma non sono stato in grado di scoprire le formule esatte e di elaborarle da solo.

Ad esempio, interrompere il test prematuramente aumenta il tasso di errore di tipo 1. Tutto a posto. Ma perché? Cosa succede per aumentare il tasso di errore di tipo 1? Mi manca l'intuizione qui.

Aiuto per favore.



1
Sì, ho passato questo link, ma non ho capito l'esempio fornito.
sgk,

scusa Gopalakrishnan - non avevo visto che il tuo primo link lo aveva già indicato.
seanv507,

1
Puoi spiegare cosa non capisci. La matematica / intuizione sembra abbastanza chiara: non si ferma tanto prima della dimensione del campione richiesta, ma controlla ripetutamente. , quindi non puoi utilizzare un test progettato per singoli controlli più volte. P(io1...NXio>θ)P(XN>θ)
seanv507,

@GopalakrishnanShanker spiegazione matematica fornita nella mia risposta
tomka

Risposte:


4

I test A / B che eseguono semplicemente test ripetuti sugli stessi dati con un livello di errore di tipo 1 fisso ( ) sono fondamentalmente imperfetti. Ci sono almeno due ragioni per cui è così. Innanzitutto, i test ripetuti sono correlati ma i test sono condotti in modo indipendente. In secondo luogo, l' α fisso non tiene conto dei test condotti moltiplicando che portano all'inflazione di errore di tipo 1.αα

Per vedere il primo, supponi che ad ogni nuova osservazione conduci un nuovo test. Chiaramente ogni due successivi valori p saranno correlati perché casi non sono cambiati tra i due test. Di conseguenza, vediamo una tendenza nella trama di @ Bernhard che dimostra questa correlazione dei valori p.n-1

Per vedere il secondo, notiamo che anche quando i test sono indipendenti la probabilità di avere un valore p inferiore a aumenta con il numero di test t P ( A ) = 1 - ( 1 - α ) t , dove A è l'evento di un'ipotesi nulla falsamente respinta. Quindi la probabilità di avere almeno un risultato positivo del test va contro 1αt

P(UN)=1-(1-α)t,
UN1mentre ripetutamente test a / b. Se poi ti fermi semplicemente dopo il primo risultato positivo, avrai mostrato solo la correttezza di questa formula. In altre parole, anche se l'ipotesi nulla è vera, alla fine la respingerai. Il test a / b è quindi il modo migliore per trovare effetti dove non ce ne sono.

Poiché in questa situazione si verificano contemporaneamente correlazione e test multipli, il valore p del test dipende dal valore p di t . Quindi, se finalmente raggiungi un p < α , probabilmente rimarrai in questa regione per un po '. Puoi anche vedere questo nella trama di @ Bernhard nella regione da 2500 a 3500 e da 4000 a 5000.t+1tp<α

Test multipli di per sé sono legittimi, ma non lo sono i test contro un fisso . Esistono molte procedure che riguardano sia la procedura di test multipli sia i test correlati. Una famiglia di correzioni di test è chiamata controllo del tasso di errore saggio della famiglia . Quello che fanno è assicurare P ( A ) α .α

P(UN)α.

αun'dj=α/t,
P(UN)αP(UN)<α0.05

(0,0.1)α=0.05

inserisci qui la descrizione dell'immagine

Come possiamo vedere, l'adeguamento è molto efficace e dimostra quanto radicale dobbiamo modificare il valore p per controllare il saggio tasso di errore della famiglia. In particolare, ora non troviamo più alcun test significativo, come dovrebbe essere perché l'ipotesi nulla di @ Berhard è vera.

P(UN)α


Ecco il codice:

set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)

p.values <- numeric(n)
for (i in 5:n){
  p.values[i] <- binom.test(table(toss[1:i]))$p.value
}
p.values = p.values[-(1:6)]
plot(p.values[seq(1, length(p.values), 100)], type="l", ylim=c(0,0.1),ylab='p-values')
abline(h=0.05, lty="dashed")
abline(v=0)
abline(h=0)
curve(0.05/x,add=TRUE, col="red", lty="dashed")

2
Questo funziona per me. Dovrò tradurre questo in business-speak per comunicare il mio punto di vista ai miei anziani, ma questo è il mio problema. Grazie mille
sgk

8

Se l'ipotesi nulla è vera, allora le persone spesso si aspettano che il valore p sia molto alto. Questo non è vero. Se l'ipotesi nulla è vera, allora p è una variabile casuale distribuita uniformemente. Ciò significa che di tanto in tanto sarà inferiore a 0,05 in modo casuale. Se si osservano molti sottocampioni diversi, a volte il valore p sarà inferiore a 0,05.

Per semplificare la comprensione, ecco una piccola simulazione in R:

Questo lancerà una moneta 10.000 volte e sappiamo che è una moneta giusta:

set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)

A partire dal 5 ° lancio, questo eseguirà un test binomiale per correttezza dopo ogni lancio e salverà i valori p:

p.values <- numeric(n)
for (i in 5:n){
     p.values[i] <- binom.test(table(toss[1:i]))$p.value
}

E questo traccia i valori p uno dopo l'altro:

plot(p.values, type="l")
abline(h=0.05)

inserisci qui la descrizione dell'immagine

H0H0

(Solo per essere perfettamente aperto, ho provato più di un seme per il generatore di numeri prima che fosse chiaro come questo esempio, ma è giusto per scopi educativi. Se hai Rinstallato e funzionante, puoi facilmente giocare con i numeri .)


Grazie per il semplice esperimento. Ma supponiamo di aver interrotto il test in una di queste fasi (quando il valore p <0,05), cosa significheranno i miei risultati? (a parte il fatto che è sbagliato). È possibile compensare riducendo la soglia del valore p?
sgk

+1 Annotare i test correlati e il relativo problema con più test. Vedi la mia risposta estesa con le opzioni di regolazione di seguito, basate sul tuo (ottimo) esempio.
tomka,

αα

Il mio punto principale è quello di controllare il tasso di errore saggio familiare (FWER) o il tasso di rilevamento falso (FDR) entrambi mirando all'errore di tipo 1. Il controllo dell'errore di tipo 2 è meno problematico nei test a / b a causa di campioni generalmente molto grandi.
tomka,

p=0.05
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.