Analizzare i risultati del test A / B che non sono normalmente distribuiti, usando un test t indipendente


13

Ho una serie di risultati da un test A / B (un gruppo di controllo, un gruppo di funzioni) che non rientrano in una distribuzione normale. In effetti la distribuzione ricorda più da vicino la distribuzione di Landau.

Credo che il test t indipendente richieda che i campioni siano almeno approssimativamente distribuiti normalmente, il che mi scoraggia a usare il test t come metodo valido di test di significatività.

Ma la mia domanda è: a che punto si può dire che il test t non è un buon metodo di test di significatività?

O, in altre parole, come si può qualificare l'affidabilità dei valori p di un test t, dato solo il set di dati?

Risposte:


8

La distribuzione dei dati non deve essere normale, è la distribuzione campionaria che deve essere quasi normale. Se la dimensione del tuo campione è abbastanza grande, la distribuzione campionaria dei mezzi di Landau Distribution dovrebbe essere quasi normale, a causa del Teorema del limite centrale .

Quindi significa che dovresti essere in grado di utilizzare in modo sicuro t-test con i tuoi dati.

Esempio

Consideriamo questo esempio: supponiamo di avere una popolazione con distribuzione Lognormal con mu = 0 e sd = 0.5 (sembra un po 'simile a Landau)

densità lognormale

Quindi campioniamo 30 osservazioni 5000 volte da questa distribuzione ogni volta calcolando la media del campione

E questo è ciò che otteniamo

distribuzione campionaria

Sembra abbastanza normale, no? Se aumentiamo la dimensione del campione, è ancora più evidente

distribuzione campionaria

Codice R.

x = seq(0, 4, 0.05)
y = dlnorm(x, mean=0, sd=0.5)
plot(x, y, type='l', bty='n')


n = 30
m = 1000

set.seed(0)
samp = rep(NA, m)

for (i in 1:m) {
  samp[i] = mean(rlnorm(n, mean=0, sd=0.5))
}

hist(samp, col='orange', probability=T, breaks=25, main='sample size = 30')
x = seq(0.5, 1.5, 0.01)
lines(x, dnorm(x, mean=mean(samp), sd=sd(samp)))


n = 300
samp = rep(NA, m)

for (i in 1:m) {
  samp[i] = mean(rlnorm(n, mean=0, sd=0.5))
}

hist(samp, col='orange', probability=T, breaks=25, main='sample size = 300')
x = seq(1, 1.25, 0.005)
lines(x, dnorm(x, mean=mean(samp), sd=sd(samp)))

Ciao Alexei! Sembra che tu sia competente in R, quindi mi chiedo, se hai qualche consiglio sul problema in cui sono attualmente bloccato: stackoverflow.com/questions/25101444/… . Oltre a ciò, sarei felice di connettermi con te (vedi aleksandrblekh.com per i miei profili sui social network professionali), poiché sembra che abbiamo alcuni interessi comuni (inclusa la lingua madre :-).
Aleksandr Blekh,

Questa è un'ottima spiegazione ed è in effetti il ​​metodo che ho finito per usare. Mi piace pensare a questo metodo come a dividere l'intero set di campioni in sottocampioni più piccoli e usare i mezzi (media con CLT) di ciascun sottocampione come distribuzione del set di dati. Grazie per la risposta!
teebszet,

1

Fondamentalmente viene utilizzato un test t indipendente o un test t a 2 campioni per verificare se le medie dei due campioni sono significativamente diverse. O, in altre parole, se c'è una differenza significativa tra le medie dei due campioni.

Ora, i mezzi di quei 2 campioni sono due statistiche, che secondo CLT, hanno una distribuzione normale, se fornite abbastanza campioni. Si noti che CLT funziona indipendentemente dalla distribuzione da cui viene costruita la statistica media.

Normalmente si può usare un test z, ma se le varianze sono stimate dal campione (perché non è noto), viene introdotta qualche ulteriore incertezza, che è incorporata nella distribuzione t. Ecco perché si applica qui il test t a 2 campioni.

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.