Вопрос или проблема
Я использую тест сезонного тренда Кендалла из пакета EnvStats для оценки данных о качестве воды.
-
Я хотел бы построить линии тренда, используя значение пересечения и наклон по методу Тейла-Сена из результатов теста, но у меня возникают проблемы с построением линии через мои данные. Я не уверён, связано ли это с проблемой масштабирования моих графиков или чем-то ещё?
-
Я также заметил, что значения пересечения, которые я получаю из теста сезонного тренда Кендалла, отличаются от ожидаемых, и хотел бы узнать, может ли кто-то объяснить, почему так происходит?
Я понимаю, что значение пересечения для теста сезонного Кендалла является медианным значением пересечений, полученных от отдельных трендов Кендалла, рассчитанных на каждую сезон. Однако я получаю значения, которые, похоже, не совпадают. Например, если я запускаю тренды Кендалла для каждого отдельного сезона и вычисляю медианное значение пересечения, я получаю значение 20.5. Однако результат теста сезонного Кендалла выводит значение -44.4 для пересечения.
Ниже приведен пример того, как я ожидаю, что будут выглядеть большинство моих графиков:
seasonal_test_sal <- kendallSeasonalTrendTest(Salinity_ppth ~ month + year, data = df)
seasonal_test_sal
# Оцененные параметры: tau = -1.188119e-03
# наклон = -5.050505e-05
# пересечение = 3.250258e+01
ggplot(df,aes(x= year, y = Salinity_ppth)) +
geom_point() +
geom_abline(intercept = 3.250258e+01, slope = -5.050505e-05) +
labs(x = "Год",
y = "Соленость") +
theme_minimal()
Однако, используя тот же код, я иногда получаю графики, которые выглядят так для других параметров качества воды:
seasonal_test_temp <- kendallSeasonalTrendTest(Water_Temp_deg_C ~ month + year, data = df)
seasonal_test_temp
#Оцененные параметры: tau = 0.10109619
# наклон = 0.03838542
# пересечение = -44.36713333
ggplot(df,aes(x=year, y = Water_Temp_deg_C)) +
geom_point() +
geom_abline(intercept = -44.36713333, slope = 0.03838542) +
labs(x = "Год",
y = "Температура воды (°C)") +
theme_minimal()
#Примечание: это создаёт линию в самом верхнем левом углу
seasonal_test_TN <- kendallSeasonalTrendTest(TN_mgL ~ month + year, data = df)
seasonal_test_TN
# Оцененные параметры: tau = 0.0143334926
# наклон = 0.0001207307
# пересечение = 0.3934360222
ggplot(df,aes(x=year, y = TN_mgL)) +
geom_point() +
geom_abline(intercept = 0.3934360222, slope = 0.0001207307) +
labs(x = "Год",
y = "Общий азот") +
theme_minimal()
#Примечание: линия для этого тренда кажется слишком высокой?
Ответ или решение
Проблема, с которой вы столкнулись при построении графиков результатов теста на сезонные тренды Кендалла с использованием пакета EnvStats в R, может быть вызвана несколькими факторами. Давайте разберем вашу ситуацию более подробно.
1. Построение графиков с трендовыми линиями
Вы упомянули, что получаете проблемы с отрисовкой трендовой линии через ваши данные. Прежде всего, важно убедиться, что оси графика правильно масштабированы и что данные не имеют значительных выбросов, которые могут влиять на визуализацию. Если ваши данные находятся в разных диапазонах, использование функции geom_abline
может не дать ожидаемого результата.
Вместо geom_abline
можно использовать geom_smooth
, чтобы более точно оценить трендовая линия, основываясь на ваших данных:
ggplot(df, aes(x = year, y = Salinity_ppth)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "blue", formula = y ~ x) +
labs(x = "Год", y = "Соленость") +
theme_minimal()
Такой подход даст более корректное представление о тренде, учитывая все точки данных.
2. Разница в значениях перехвата
Относительно разницы в значениях перехвата между результатами сезонного теста Кендалла и расчетами, основанными на индивидуальных сезонах, следует учитывать, что сезонный тест Кендалла включает в себя статистическую обработку, выполняемую на основе всей выборки, а не на основании медианных значений для каждого сезона. Это может привести к значительным расхождениям, особенно если распределение данных не является линейным.
Для понимания различий важно также учитывать следующие моменты:
- Статистическая природа теста: Тест Кендалла производит оценку, которая основывается на всех данных, а не отдельно по сезонам, что может привести к другим значениям.
- Шум в данных: Если ваши данные имеют высокую степень изменчивости или выбросы, это окажет значительное влияние на интерпретацию результатов.
3. Наиболее вероятные причины проблем
В вашем случае значения перехвата значительно варьируются, и это может быть связано с:
- Неправильным выбором модели: Убедитесь, что выбранная вами модель адекватно описывает данные. Возможно, линейная модель не подходит для ваших данных.
- Проблемы с данные: Проверьте ваши данные на отсутствие выбросов или неожиданных значений, так как это может искажать результаты.
Рекомендуемые шаги
- Перепроверьте ваши данные на наличие выбросов и пропусков, используя методы визуализации, такие как коробочные диаграммы или распределения.
- Используйте
geom_smooth
, чтобы оценить тренд по данным, а не только по оцененным параметрам. - Обратитесь к документации пакета EnvStats и литературе по статистике, чтобы лучше понять, как интерпретировать выходные данные теста Кендалла.
В заключение, наличие различий в значениях интерцепта между индивидуальными и сезонными трендами должно быть более подробно изучено в контексте ваших данных, так как это может повлиять на вашу интерпретацию результатов. Удачи в вашем анализе данных!