Jak pytał @whuber w komentarzach, potwierdzenie mojego kategorycznego NIE. edycja: z testem shapiro, ponieważ test ks z jedną próbką jest w rzeczywistości nieprawidłowo stosowany. Whuber ma rację: Aby poprawnie zastosować test Kołmogorowa-Smirnova, musisz określić parametry dystrybucji i nie wyodrębniać ich z danych. Tak dzieje się jednak w pakietach statystycznych, takich jak SPSS, dla testu KS z jedną próbą.
Próbujesz powiedzieć coś o rozkładzie i chcesz sprawdzić, czy możesz zastosować test t. Ten test jest wykonywany w celu potwierdzenia, że dane nie odbiegają wystarczająco od normalności wystarczająco, aby unieważnić podstawowe założenia analizy. Dlatego nie jesteś zainteresowany błędem typu I, ale błędem typu II.
Teraz trzeba zdefiniować „znacząco inny”, aby móc obliczyć minimalną wartość n dla akceptowalnej mocy (powiedzmy 0,8). W przypadku dystrybucji nie jest to łatwe do zdefiniowania. Dlatego nie odpowiedziałem na to pytanie, ponieważ nie mogę udzielić rozsądnej odpowiedzi poza stosowaną przeze mnie zasadą: n> 15 in <50. W oparciu o co? W zasadzie przeczucie, więc nie mogę bronić tego wyboru poza doświadczeniem.
Wiem jednak, że przy tylko 6 wartościach błąd typu II musi wynosić prawie 1, co oznacza, że twoja moc jest bliska 0. Dzięki 6 obserwacjom test Shapiro nie rozróżnia rozkładu normalnego, Poissona, jednolitego lub nawet wykładniczego. Ponieważ błąd typu II wynosi prawie 1, wynik testu jest bez znaczenia.
Aby zilustrować test normalności za pomocą testu shapiro:
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
Jedynym przypadkiem, gdy około połowa wartości jest mniejsza niż 0,05, jest ostatnia. Co jest również najbardziej ekstremalnym przypadkiem.
jeśli chcesz dowiedzieć się, jakie jest minimum n, które daje moc, którą lubisz dzięki testowi shapiro, możesz wykonać symulację w następujący sposób:
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)
})
co daje taką analizę mocy:
z czego dochodzę do wniosku, że potrzebujesz mniej więcej 20 wartości, aby odróżnić wykładniczy rozkład normalny w 80% przypadków.
działka kodu:
plot(lowess(results[2,]~results[1,],f=1/6),type="l",col="red",
main="Power simulation for exponential distribution",
xlab="n",
ylab="power"
)