Аналіз результатів тестування A / B, які зазвичай не розподіляються, використовуючи незалежний t-тест


14

У мене є набір результатів тесту A / B (одна контрольна група, одна група функцій), які не відповідають нормальному розподілу. Насправді розподіл більше нагадує розподіл Ландау.

Я вважаю, що незалежний t-тест вимагає, щоб зразки були принаймні приблизно нормально розподілені, що відштовхує мене від використання t-тесту як дійсного методу перевірки значимості.

Але моє запитання: У який момент можна сказати, що t-тест не є хорошим методом перевірки значимості?

Або кажучи іншим способом, як можна визначити, наскільки надійні р-значення t-тесту, враховуючи лише набір даних?

Відповіді:


8

Поширення ваших даних не повинно бути нормальним, а вибіркове розподіл має бути майже нормальним. Якщо розмір вибірки досить великий, то розподіл вибірки засобів з розподілу Ландау повинен бути майже нормальним, завдяки теоремі про центральний межа .

Тож це означає, що ви повинні мати можливість безпечно використовувати t-test зі своїми даними.

Приклад

Розглянемо цей приклад: припустимо, у нас є популяція з лонормальним розподілом з mu = 0 і sd = 0,5 (це виглядає трохи схоже на Ландау)

лонормальна щільність

Таким чином, ми вибираємо 30 спостережень 5000 разів з цього розподілу кожен раз, обчислюючи середнє значення вибірки

І це ми отримуємо

розподіл вибірки

Виглядає цілком нормально, чи не так? Якщо ми збільшимо розмір вибірки, це ще очевидніше

розподіл вибірки

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)))

Привіт, Олексій! Здається, ви добре знаєте R, тому мені цікаво, чи є у вас поради щодо проблеми, з якою я зараз стикаюся: stackoverflow.com/questions/25101444/… . Крім того, я б радий з вами зв’язатися (див. Aleksandrblekh.com для моїх профілів у професійних соціальних мережах), оскільки, схоже, у нас є спільні інтереси (включаючи рідну мову :-).
Олександр Блех

Це чудове пояснення, і насправді це метод, який я в кінцевому підсумку використовував. Мені подобається вважати цей метод як розбиття всього набору вибірок на більш дрібні під зразки та використання засобів (середнього з CLT) кожного підвідбору як розподілу набору даних. Дякую за відповідь!
teebszet

1

В основному незалежний t-тест або 2-зразок t-тесту використовується для перевірки, чи є середні значення двох зразків значно різними. Або, кажучи іншими словами, якщо є значна різниця між засобами двох зразків.

Тепер засоби цих двох вибірок - це дві статистичні дані, які відповідно до CLT мають нормальний розподіл, якщо надається достатня кількість вибірок. Зауважте, що CLT працює незалежно від розподілу, з якого будується середня статистика.

Зазвичай можна використовувати z-тест, але якщо відхилення оцінюються у вибірці (оскільки це невідомо), вводиться деяка додаткова невизначеність, яка включена в t розподіл. Ось чому тут застосовується 2-зразковий t-тест.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.