Как выполнить тест крамера-фон мизеса в r (с примерами)
Критерий Крамера-фон Мизеса используется для определения того, соответствует ли выборка нормальному распределению .
Этот тип теста полезен для определения того, исходит ли данный набор данных из нормального распределения, что является широко используемым предположением во многих статистических тестах, включая регрессию , дисперсионный анализ , t-тесты и многие другие. ‘другие.
Мы можем легко выполнить тест Крамера-фон Мизеса, используя функцию cvm.test() из пакета goftest в R.
В следующем примере показано, как использовать эту функцию на практике.
Пример 1: Тест Крамера-фон Мизеса на нормальных данных
Следующий код показывает, как выполнить тест Крамера-фон Мизеса для набора данных с размером выборки n = 100:
library (goftest) #make this example reproducible set. seeds (0) #create dataset of 100 random values generated from a normal distribution data <- rnorm(100) #perform Cramer-Von Mises test for normality cvm. test (data, ' pnorm ') Cramer-von Mises test of goodness-of-fit Null hypothesis: Normal distribution Parameters assumed to be fixed data:data omega2 = 0.078666, p-value = 0.7007
Значение p теста оказалось равным 0,7007 .
Поскольку это значение не меньше 0,05, можно предположить, что данные выборки взяты из нормально распределенной совокупности.
Этот результат не должен вызывать удивления, поскольку мы сгенерировали выборочные данные с помощью функции rnorm() , которая генерирует случайные значения из стандартного нормального распределения .
Связанный: Руководство по dnorm, pnorm, qnorm и rnorm в R.
Мы также можем создать гистограмму, чтобы визуально убедиться, что выборочные данные нормально распределены:
hist(data, col=' steelblue ')
Мы видим, что распределение имеет колоколообразную форму с пиком в центре распределения, что типично для нормально распределенных данных.
Пример 2: Тест Крамера-фон Мизеса на ненормальных данных
Следующий код показывает, как выполнить тест Крамера-фон Мизеса на наборе данных с размером выборки 100, в котором значения генерируются случайным образом из распределения Пуассона :
library (goftest) #make this example reproducible set. seeds (0) #create dataset of 100 random values generated from a Poisson distribution data <- rpois(n=100, lambda=3) #perform Cramer-Von Mises test for normality cvm. test (data, ' pnorm ') Cramer-von Mises test of goodness-of-fit Null hypothesis: Normal distribution Parameters assumed to be fixed data:data omega2 = 27.96, p-value < 2.2e-16
Значение p теста оказывается чрезвычайно низким.
Поскольку это значение меньше 0,05, у нас есть достаточно доказательств, чтобы сказать, что данные выборки не взяты из нормально распределенной совокупности.
Этот результат не должен вызывать удивления, поскольку мы сгенерировали выборочные данные с помощью функции rpois() , которая генерирует случайные значения из распределения Пуассона.
Связанный: Руководство по dpois, ppois, qpois и rpois в R.
Мы также можем создать гистограмму, чтобы визуально увидеть, что выборочные данные не распределены нормально:
hist(data, col=' coral2 ')
Мы видим, что распределение искажено вправо и не имеет типичной «колокольчатой формы», свойственной нормальному распределению.
Таким образом, наша гистограмма соответствует результатам теста Крамера-фон Мизеса и подтверждает, что данные нашей выборки не соответствуют нормальному распределению.
Что делать с нестандартными данными
Если данный набор данных не является нормально распределенным, мы часто можем выполнить одно из следующих преобразований, чтобы сделать его более нормальным:
1. Преобразование журнала: преобразуйте переменную ответа из y в log(y) .
2. Преобразование квадратного корня: преобразуйте переменную ответа из y в √y .
3. Преобразование корня куба: преобразуйте переменную ответа из y в y 1/3 .
Выполняя эти преобразования, переменная ответа обычно приближается к нормальному распределению.
Обратитесь к этому руководству , чтобы узнать, как выполнить эти преобразования на практике.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие тесты на нормальность в R:
Как выполнить тест Шапиро-Уилка в R
Как выполнить тест Андерсона-Дарлинга в R
Как выполнить тест Колмогорова-Смирнова в R