Как спросил @whuber в комментариях, проверка моего категорического НЕТ. редактировать: с помощью теста Шапиро, поскольку тест 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"
)