Для сюжету 1 я можу перевірити асоціацію між x та y, зробивши просту кореляцію.
Для сюжету 2, де зв'язок нелінійний, але чітке співвідношення між x та y є, як я можу перевірити асоціацію та позначити її природу?
Для сюжету 1 я можу перевірити асоціацію між x та y, зробивши просту кореляцію.
Для сюжету 2, де зв'язок нелінійний, але чітке співвідношення між x та y є, як я можу перевірити асоціацію та позначити її природу?
Відповіді:
... зв’язок нелінійний, але чітке відношення між x та y є, як я можу перевірити асоціацію та позначити її характер?
Одним із способів цього було б пристосування до напівпараметрично оціненої функції x з використанням, наприклад, узагальненої моделі добавок та перевірка того, чи є ця функціональна оцінка постійною чи ні, що вказувало б на відсутність зв'язку між y та x . Такий підхід звільняє вас від необхідності здійснювати поліноміальну регресію та приймати іноді довільні рішення щодо порядку полінома тощо.
Зокрема, якщо у вас є спостереження, , ви можете відповідати моделі:
і перевірити гіпотезу . У , ви можете це зробити за допомогою функції. Якщо ваш результат і ваш прогноз , ви можете ввести:R
gam()
y
x
library(mgcv)
g <- gam(y ~ s(x))
Введення тексту summary(g)
дасть вам результат випробування гіпотези вище. Що стосується характеристики характеру стосунків, то це найкраще зробити за допомогою сюжету. Один із способів зробити це R
(припускаючи, що код вище вже введений)
plot(g,scheme=2)
Якщо ваша змінна відповіді дискретна (наприклад, двійкова), ви можете розмістити її в цьому рамках, встановивши логістичну GAM (в 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)
Ви можете переглянути це посилання для більш детальної інформації