У меня есть набор данных со следующей структурой:
a word | number of occurrence of a word in a document | a document id
Как я могу выполнить тест для нормального распределения в R? Возможно, это простой вопрос, но я новичок в R.
У меня есть набор данных со следующей структурой:
a word | number of occurrence of a word in a document | a document id
Как я могу выполнить тест для нормального распределения в R? Возможно, это простой вопрос, но я новичок в R.
zipfR
пакет.Ответы:
Если я правильно понимаю ваш вопрос, то для проверки соответствия слов в наборе документов нормальному распределению вы можете просто использовать тест Шапиро-Вилка и несколько qqplots. Например,
Команды qqplot дают:
Вы можете видеть, что второй набор данных явно не является нормальным для тяжелых хвостов ( Подробнее ).
В тесте нормальности Shapiro-Walk значение p велико для первого набора данных (> .9), но очень мало для второго набора данных (<.01). Это приведет вас к отказу от нулевой гипотезы для второго.
источник
qqline
должен быть 1 уклон и перехват му .Предполагая, что ваш набор данных вызван
words
и имеетcounts
столбец, вы можете построить гистограмму для визуализации распределения:где 100 - количество бинов
Вы также можете сделать нормальный график QQ, используя
Наконец, вы также можете использовать тест Шапиро-Уилка для нормальности
Хотя, посмотрите на это обсуждение: Тестирование нормальности: «По существу бесполезно?»
источник
Никакой тест не покажет вам, что ваши данные имеют нормальное распределение - он сможет показать вас только тогда, когда данные достаточно несовместимы с нормой, что вы отклоните нуль.
Но в любом случае значения не являются нормальными, они являются положительными целыми числами - какова вероятность того, что наблюдение из нормального распределения примет значение, которое не является целым числом? (... это событие с вероятностью 1).
Зачем вам проверять нормальность в этом случае? Это явно не соответствует действительности.
[В некоторых случаях это не обязательно означает, что вы можете сказать, что ваши данные не являются нормальными. Реальные данные никогда (или почти никогда) не будут взяты из нормального распределения.]
Если вам действительно нужно сделать тест, то тест Шапиро-Уилка (
?shapiro.test
) является хорошим общим тестом нормальности, который широко используется.источник
Более формальным взглядом на нормальность является проверка того, значительно ли эксцесс и перекос значительно отличаются от нуля.
Для этого нам нужно получить:
для куртоза и:
для асимметрии.
Оба эти теста являются односторонними, поэтому вам нужно умножить значение p на 2, чтобы стать двусторонними. Если ваше значение p станет больше единицы, вам нужно использовать 1-kurtosis.test () вместо kurtosis.test.
Если у вас есть какие-либо другие вопросы, вы можете написать мне на j.bredman@gmail.com
источник
kurtosis()
иskewness()
функций из моментов пакета? Результаты с использованиемrnorm()
образцов разные.В дополнение к тесту Shapiro-Wilk пакета stats, самый тестовый пакет (доступный на CRAN) предоставляет другие тесты нормальности.
источник
Используя
nortest
пакет R, эти тесты могут быть проведены:Выполнить тест нормальности Андерсона-Дарлинга
Выполните тест Крамера-фон Мизеса на нормальность
Выполните тест Хи-квадрат Пирсона на нормальность
Выполните тест Шапиро-Франсии на нормальность
Многие другие тесты могут быть выполнены с помощью
normtest
пакета. Смотрите описание на https://cran.r-project.org/web/packages/normtest/normtest.pdfисточник