Zwykle wiemy, że niemożliwe jest, aby zmienna była dokładnie normalnie rozłożona ...
Rozkład normalny ma nieskończenie długie ogony rozciągające się w obu kierunkach - mało prawdopodobne jest, aby dane leżały daleko w tych skrajnościach, ale dla prawdziwego rozkładu normalnego musi być fizycznie możliwe. W przypadku grup wiekowych normalnie rozłożony model przewiduje, że istnieje niezerowe prawdopodobieństwo, że dane leżą w granicach 5 odchyleń standardowych powyżej lub poniżej średniej - co odpowiadałoby fizycznie niemożliwym wiekom, takim jak poniżej 0 lub powyżej 150. (Chociaż jeśli spojrzysz na populacji piramidy , to nie jest jasne, dlaczego można oczekiwać wiek się nawet w przybliżeniu rozkład normalny w pierwszej kolejności). Podobnie, jeśli miał dane Heights, który intuicyjnie mogą wskutek rozkładu bardziej „normalne-like”, to może być tylko dobrze normalne, jeśli istnieje szansa wysokości poniżej 0 cm lub powyżej 300 cm.
Czasami widziałem, jak sugeruje to, że możemy uniknąć tego problemu, centrując dane tak, aby miały zero. W ten sposób możliwe są zarówno pozytywne, jak i negatywne „stulecia”. Ale chociaż sprawia to, że zarówno ujemne wartości są fizycznie wiarygodne, jak i interpretowalne (ujemne wyśrodkowane wartości odpowiadają faktycznym wartościom leżącym poniżej średniej), nie można obejść problemu, że normalny model wygeneruje fizycznie niemożliwe prognozy z niezerowym prawdopodobieństwem, gdy tylko dekodować modelowany „wiek centrowany” z powrotem do „wieku rzeczywistego”.
... więc po co zawracać sobie głowę testowaniem? Nawet jeśli nie jest dokładna, normalność może być nadal użytecznym modelem
Ważnym pytaniem nie jest tak naprawdę to, czy dane są dokładnie normalne - wiemy, że z góry nie może tak być w większości przypadków, nawet bez przeprowadzenia testu hipotez - ale czy przybliżenie jest wystarczająco bliskie dla twoich potrzeb. Widzisz pytanie, czy testowanie normalności jest zasadniczo bezużyteczne? Rozkład normalny jest wygodnym przybliżeniem dla wielu celów. Rzadko jest „poprawny” - ale ogólnie nie musi być dokładnie poprawny, aby był użyteczny. Spodziewałbym się, że rozkład normalny jest zwykle rozsądnym modelem wysokości ludzi, ale wymagałoby to bardziej niezwykłego kontekstu, aby rozkład normalny miał sens jako model wieku ludzi.
Jeśli naprawdę czujesz potrzebę przeprowadzenia testu normalności, to Kolmogorov-Smirnov prawdopodobnie nie jest najlepszą opcją: jak zauważono w komentarzach, dostępne są bardziej zaawansowane testy. Shapiro-Wilk ma dobrą siłę przeciwko wielu możliwym alternatywom i ma tę zaletę, że nie musisz wcześniej znać prawdziwego środka i wariancji . Należy jednak pamiętać, że w małych próbkach potencjalnie dość duże odchylenia od normalności mogą nadal pozostać niewykryte, podczas gdy w dużych próbkach nawet bardzo małe (i ze względów praktycznych nieistotne) odchylenia od normalności mogą okazać się „bardzo znaczące” (niskie p -wartość).
„W kształcie dzwonu” niekoniecznie jest normalne
Wygląda na to, że kazano ci myśleć o danych w kształcie dzwonu - danych symetrycznych, które osiągają maksimum w środku i które mają mniejsze prawdopodobieństwo w ogonach - jako „normalne”. Ale rozkład normalny wymaga określonego kształtu do szczytu i ogonów. Istnieją inne dystrybucje o podobnym kształcie na pierwszy rzut oka, które możesz również scharakteryzować jako „w kształcie dzwonu”, ale które nie są normalne. Chyba że masz dużo danych, prawdopodobnie nie będziesz w stanie rozróżnić, że „wygląda to na taką gotową dystrybucję, ale nie tak jak inne”. A jeśli masz dużo danych, można prawdopodobnie znaleźć nie wygląda zupełnie jak każdy dystrybucji w ogóle „off-the-shelf”! Ale w takim przypadku do wielu celów ty ”
Rozkład normalny jest „kształt dzwonu” jesteś przyzwyczajony; Cauchy- ma pik ostre i „cięższe” (to znaczy zawierający więcej prawdopodobieństwo) ogon; t rozkład z 5 stopni swobody pochodzi gdzieś pomiędzy (normalną, t nieskończoną DF i Cauchy- jest T z 1 df, tak że sens); rozkład wykładniczy Laplace'a lub podwójne jest utworzone z dwóch PDF przeskalowana wykładniczej rozkładów z powrotem do tyłu, w wyniku piku większy od rozkładu normalnego; dystrybucja Betajest zupełnie inna - na przykład nie ma ogonów, które zmierzają w nieskończoność, zamiast ostrych odcięć - ale nadal może mieć kształt „garbu” pośrodku. Właściwie, grając z parametrami, można również uzyskać rodzaj „wypaczonego garbu”, a nawet kształtu „U” - galeria na linkowanej stronie Wikipedii jest dość pouczająca o elastyczności tej dystrybucji. Wreszcie rozkład trójkątny jest kolejnym prostym rozkładem na skończonej podstawie, często stosowanym w modelowaniu ryzyka.
Prawdopodobnie żadna z tych dystrybucji nie opisuje dokładnie twoich danych i istnieje bardzo wiele innych dystrybucji o podobnych kształtach, ale chciałem odnieść się do błędnego przekonania, że „garbiony w środku i z grubsza symetryczny oznacza normalny”. Ponieważ istnieją fizyczne ograniczenia danych wieku, jeśli twoje dane wieku są „garbowane” pośrodku, nadal możliwe jest, że rozkład z ograniczonym wsparciem, takim jak Beta lub nawet rozkład trójkątny, może okazać się lepszym modelem niż ten z nieskończonymi ogonami jak normalne. Zauważ, że nawet jeśli twoje dane rzeczywiście były normalnie rozłożone, histogram nadal raczej nie będzie przypominał klasycznego „dzwonka”, chyba że twoja próbka jest dość duża. Nawet próbka z rozkładu takiego jak Laplace, którego pdf jest wyraźnie odróżnialny od normalnego ze względu na jego guzek,
Kod R.
par(mfrow=c(3,2))
plot(dnorm, -3, 3, ylab="probability density", main="Normal(0,1)")
plot(function(x){dt(x, df=1)}, -3, 3, ylab="probability density", main="Cauchy")
plot(function(x){dt(x, df=5)}, -3, 3, ylab="probability density", main="t with 5 df")
plot(function(x){0.5*exp(-abs(x))}, -3, 3, ylab="probability density", main="Laplace(0,1)")
plot(function(x){dbeta(x, shape1=2, shape2=2)}, ylab="probability density", main="Beta(2,2)")
plot(function(x){1-0.5*abs(x)}, -1, 1, ylab="probability density", main="Triangular")
par(mfrow=c(3,2))
normalhist <- function(n) {hist(rnorm(n), main=paste("Normal sample, n =",n), xlab="x")}
laplacehist <- function(n) {hist(rexp(n)*(1 - 2*rbinom(n, 1, 0.5)), main=paste("Laplace sample, n =",n), xlab="x")}
# No random seed is set
# Re-run the code to see the variability in histograms you might expect from sample to sample
normalhist(50); laplacehist(50)
normalhist(100); laplacehist(100)
normalhist(200); laplacehist(200)