Як @whuber запитав у коментарях, підтвердження мого категоричного НІ. редагувати: за допомогою тесту shapiro, оскільки тест однопробного ks насправді неправильно використовується. Вір правильний: для правильного використання тесту Колмогорова-Смірнова потрібно вказати параметри розподілу, а не витягувати їх з даних. Однак це робиться в статистичних пакетах, таких як SPSS, для однопробного KS-тесту.
Ви намагаєтесь сказати щось про розподіл, і хочете перевірити, чи можете ви застосувати t-тест. Таким чином, цей тест робиться для підтвердження того, що дані не відходять від нормальності досить суттєво, щоб зробити основні припущення аналізу недійсними. Отже, вас цікавить не помилка I типу, а помилка II типу.
Тепер треба визначити "суттєво інше", щоб можна було обчислити мінімум n для прийнятної потужності (скажімо, 0,8). З дистрибутивами це не просто визначити. Отже, я не відповів на це питання, оскільки не можу дати розумної відповіді, окрім правил, які я використовую: n> 15 та n <50. На основі чого? В основному почуття кишечника, тому я не можу захистити цей вибір окрім досвіду.
Але я знаю, що лише з 6 значеннями ваша помилка типу II повинна становити майже 1, що робить вашу потужність близькою до 0. За 6 спостережень тест Шапіро не може розрізнити нормальне, пуассонне, рівномірне або навіть експоненціальне розподіл. Якщо помилка типу II становить майже 1, ваш тестовий результат є безглуздим.
Для ілюстрації тестування на нормальність за допомогою тесту шапіро:
shapiro.test(rnorm(6)) # test a the normal distribution
shapiro.test(rpois(6,4)) # test a poisson distribution
shapiro.test(runif(6,1,10)) # test a uniform distribution
shapiro.test(rexp(6,2)) # test a exponential distribution
shapiro.test(rlnorm(6)) # test a log-normal distribution
Єдине, де приблизно половина значень менше 0,05, - це останнє. Що також є самим крайнім випадком.
якщо ви хочете дізнатися, який мінімальний рівень n дає вам потужність, яка вам подобається за допомогою тесту шапіро, можна зробити таке моделювання:
results <- sapply(5:50,function(i){
p.value <- replicate(100,{
y <- rexp(i,2)
shapiro.test(y)$p.value
})
pow <- sum(p.value < 0.05)/100
c(i,pow)
})
який дає вам аналіз потужності таким чином:
з чого я роблю висновок, що вам потрібно приблизно мінімум 20 значень, щоб відрізнити показник від нормального розподілу в 80% випадків.
сюжет коду:
plot(lowess(results[2,]~results[1,],f=1/6),type="l",col="red",
main="Power simulation for exponential distribution",
xlab="n",
ylab="power"
)