2013-07-09 4 views
-1

Я сравнительный новичок R и пытаюсь использовать его для оценки нормальности (или иначе) данных качества воды примерно с 1900 отдельных сайтов. Каждый сайт имеет уникальный Sitecode с результатами Meas_res образцов за 3 года. Данные хранятся в CSV-файле, отсортированном по адресу Sitecode/Sample Date. Я хотел бы запустить тест Andersen Дарлинга (и другие подобные оценки от nortest пакета), чтобы получить выходной сигнал в общем виде:Тестирование на нормальность в наборе данных со многими сайтами

Sitecode, выход теста объявления записывается обратно в формат CSV-файл

Может ли кто-нибудь дать мне либо набор кода для запуска теста, либо рекомендации относительно его подготовки?

+0

Просьба указать [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – Thomas

+1

Код будет комбинацией 'read.csv',' ad.test' и 'write.csv'. Дополнительная помощь, если вы предоставите воспроизводимый пример. – QuantIbex

+0

Скорее всего, это должно быть перемещено в StackExchange. – John

ответ

2

Без каких-либо оснований для того, почему вы хотите запустить тест и, возможно, объясните, почему вы думаете, что он будет отличать некоторые сайты, около 100 выйдет как ненормальное просто случайно. Если вы хотите проверить, нормальны ли данные о качестве воды, тогда лучше всего сразу проверить все данные. Средство будет варьироваться от сайта к сайту, поэтому вы можете проверить остатки линейной модели с коэффициентом Sitecode в качестве предиктора.

library(nortest) 
dat <- read.csv('myDataFileName.csv') 
m <- lm(Mean_res ~ Sitecode, data = dat) 
res <- resid(m) 
ad.test(res) 

Теперь вы можете сделать тест Андерсон Дарлинг на res.

Но только для удовольствия попробуйте создать несколько тестов AD из ваших многочисленных образцов из известного нормального распределения и посмотрите на участки qqnorm, чтобы посмотреть, как они выглядят.

y <- rnorm(nrow(dat)) 
ad.test(y) 
qqnorm(y); qqline(y) 

Что вы найдете так много очков, что вы по-прежнему не тест AD раз в то время, но данные по-прежнему выглядит довольно удивительно нормально. Таким образом, ответ, вероятно, не является тестом AD. Вероятно, лучше всего просто взглянуть на график остатков и оценить там нормальность.

Возвращаясь к моему первому комментарию, тест на нормальность говорит только о том, можно ли обнаружить отклонение от нормальности. Это также, как и t-тесты, чрезвычайно чувствительны к очень высоким N и дают ложные сигналы тревоги с альфа-скоростью. Он не говорит вам, являются ли данные нормальными. Таким образом, «прохождение» тестов не даст вам демонстрации, что данные нормальные. Учитывая, что это тесты против нормальности, что они сделают, покажут, какие сайты не являются нормальными (со многими ложными тревогами). Без какой-либо причины полагать, что некоторые из сайтов не являются нормальными, ваши запланированные тесты, вероятно, не то, что вы хотите делать.

 Смежные вопросы

  • Нет связанных вопросов^_^