Mam zestaw danych o następującej strukturze:
a word | number of occurrence of a word in a document | a document id
Jak mogę wykonać test normalnej dystrybucji w R? Prawdopodobnie jest to łatwe pytanie, ale jestem początkującym R.
r
distributions
normality-assumption
Skarab
źródło
źródło
zipfR
paczkę.Odpowiedzi:
Jeśli dobrze rozumiem twoje pytanie, to aby sprawdzić, czy występowanie słów w zestawie dokumentów ma rozkład normalny, możesz po prostu użyć testu shapiro-Wilka i niektórych qqplotów. Na przykład,
Polecenia qqplot dają:
Widzisz, że drugi zestaw danych wyraźnie nie jest normalny przy ciężkich ogonach ( więcej informacji ).
W teście normalności Shapiro-Walk wartość p jest duża dla pierwszego zestawu danych (> .9), ale bardzo mała dla drugiego zestawu danych (<.01). Doprowadzi cię to do odrzucenia hipotezy zerowej dla drugiej.
źródło
qqline
powinny mieć 1 nachylenie i punkt przecięcia mu .Zakładając, że Twój zestaw danych jest wywoływany
words
i macounts
kolumnę, możesz wykreślić histogram, aby uzyskać wizualizację rozkładu:gdzie 100 to liczba pojemników
Możesz również wykonać normalny wykres QQ, używając
Na koniec możesz także użyć testu Shapiro-Wilka dla normalności
Chociaż spójrz na tę dyskusję: Testowanie normalności: „Zasadniczo bezużyteczne?”
źródło
Żaden test nie pokaże, że twoje dane mają rozkład normalny - będzie w stanie pokazać ci tylko, gdy dane będą wystarczająco niespójne z normalnym, że odrzucisz zero.
Ale w każdym razie liczby nie są normalne, są dodatnimi liczbami całkowitymi - jakie jest prawdopodobieństwo, że obserwacja z rozkładu normalnego przyjmie wartość, która nie jest liczbą całkowitą? (... to zdarzenie o prawdopodobieństwie 1).
Dlaczego miałbyś w tym przypadku testować normalność? To oczywiście nieprawda.
[W niektórych przypadkach niekoniecznie musi mieć znaczenie fakt, że można stwierdzić, że dane nie są normalne. Rzeczywiste dane nigdy (lub prawie nigdy) nie zostaną faktycznie wyciągnięte z normalnego rozkładu.]
Jeśli naprawdę musisz wykonać test, test Shapiro-Wilka (
?shapiro.test
) jest dobrym ogólnym testem normalności, który jest szeroko stosowany.źródło
Bardziej formalnym sposobem patrzenia na normalność jest testowanie, czy kurtoza i skośność różnią się znacznie od zera.
Aby to zrobić, musimy uzyskać:
w przypadku kurtozy i:
na skośność.
Oba te testy są jednostronne, więc musisz pomnożyć wartość p przez 2, aby stać się dwustronnym. Jeśli twoja wartość p stanie się większa niż jedna, musisz użyć 1-kurtosis.test () zamiast kurtosis.test.
Jeśli masz inne pytania, możesz wysłać do mnie e-mail na adres [email protected]
źródło
kurtosis()
iskewness()
z pakietu momentów ? Wyniki przy użyciurnorm()
próbek są różne.Oprócz testu Shapiro-Wilka pakietu statystyk, najdalej wysunięty na północ pakiet (dostępny w CRAN) zapewnia inne testy normalności.
źródło
Korzystając z
nortest
pakietu R, testy te można przeprowadzić:Wykonaj test normalności Andersona-Darlinga
Wykonaj test Craméra-von Misesa na normalność
Wykonaj test chi-kwadrat Pearsona dla normalności
Wykonaj test Shapiro-Francia pod kątem normalności
Korzystając z
normtest
pakietu, można wykonać wiele innych testów . Zobacz opis na https://cran.r-project.org/web/packages/normtest/normtest.pdfźródło