Для графика 1 я могу проверить связь между x и y, выполнив простую корреляцию.
Для графика 2, где взаимосвязь нелинейная, но существует четкая связь между x и y, как я могу проверить связь и обозначить ее природу?
Для графика 1 я могу проверить связь между x и y, выполнив простую корреляцию.
Для графика 2, где взаимосвязь нелинейная, но существует четкая связь между x и y, как я могу проверить связь и обозначить ее природу?
Ответы:
... взаимосвязь нелинейная, но существует четкая связь между x и y, как я могу проверить ассоциацию и обозначить ее природу?
R
gam()
y
x
library(mgcv)
g <- gam(y ~ s(x))
Печатание summary(g)
даст вам результат проверки гипотезы выше. Что касается характеристики характера отношений, это лучше всего сделать с помощью сюжета. Один из способов сделать это R
(предполагая, что код выше уже был введен)
plot(g,scheme=2)
R
family=binomial
gam
x, z
gam
при оценке с использованием всех данных эти оценки будут большими и противоположными по знаку.
Вы можете проверить любую зависимость с помощью тестов корреляции расстояний. Смотрите здесь для получения дополнительной информации о корреляции расстояния: Понимание расчетов корреляции расстояния
А вот оригинал статьи: https://arxiv.org/pdf/0803.4101.pdf
В R это реализовано в energy
пакете с dcor.test
функцией.
Кто-то исправит меня, если мое понимание здесь неверно, но один из способов справиться с нелинейными переменными - это использовать линейное приближение. Так, например, взятие журнала экспоненциального распределения должно позволить вам рассматривать переменную как нормальное распределение. Затем он может быть использован для решения проблемы, как любая линейная регрессия.
Я использовал для реализации общей аддитивной модели для обнаружения нелинейных отношений между двумя переменными, но недавно я узнал о нелинейной корреляции, реализованной с помощью nlcor
пакета в R, вы можете реализовать этот метод так же, как корреляция Пирсона коэффициент корреляции находится между 0 и 1, а не -1 и 1, как в корреляции Пирсона. Более высокий коэффициент корреляции подразумевает существование сильной нелинейной связи. Давайте предположим, что два временных ряда, x2
и y2
нелинейная корреляция между двумя временными рядами проверяется следующим образом
install.packages("devtools")
library(devtools)
install_github("ProcessMiner/nlcor")
library(nlcor)
c <- nlcor(x2, y2, plt = T)
c$cor.estimate
[1] 0.897205
Кажется, что две переменные сильно коррелируют через нелинейные отношения, вы также можете получить скорректированное значение p для коэффициента корреляции
c$adjusted.p.value
[1] 0
Вы также можете построить результаты
print(c$cor.plot)
Вы можете просмотреть эту ссылку для более подробной информации