Untuk plot 1, saya dapat menguji hubungan antara x dan y dengan melakukan korelasi sederhana.
Untuk plot 2, di mana hubungannya nonlinear namun ada hubungan yang jelas antara x dan y, bagaimana saya bisa menguji asosiasi dan label sifatnya?
Untuk plot 1, saya dapat menguji hubungan antara x dan y dengan melakukan korelasi sederhana.
Untuk plot 2, di mana hubungannya nonlinear namun ada hubungan yang jelas antara x dan y, bagaimana saya bisa menguji asosiasi dan label sifatnya?
Jawaban:
... hubungannya tidak linier namun ada hubungan yang jelas antara x dan y, bagaimana saya bisa menguji asosiasi dan memberi label sifatnya?
Salah satu cara untuk melakukan ini adalah mencocokkan sebagai fungsi estimasi semi-parametrik dari penggunaan , misalnya, model aditif umum dan pengujian apakah estimasi fungsional itu konstan, yang akan menunjukkan tidak ada hubungan antara dan . Pendekatan ini membebaskan Anda dari keharusan melakukan regresi polinomial dan membuat keputusan kadang-kadang sewenang-wenang tentang urutan polinomial, dll.x y x
Khususnya, jika Anda memiliki pengamatan, , Anda dapat model:
dan uji hipotesis . Di , Anda dapat melakukan ini menggunakan fungsi. Jika ini adalah hasil Anda dan merupakan prediksi Anda, Anda dapat mengetik:R
gam()
y
x
library(mgcv)
g <- gam(y ~ s(x))
Mengetik summary(g)
akan memberi Anda hasil uji hipotesis di atas. Sejauh karakterisasi sifat hubungan, ini akan lebih baik dilakukan dengan plot. Salah satu cara untuk melakukan ini R
(dengan asumsi kode di atas telah dimasukkan)
plot(g,scheme=2)
Jika variabel respons Anda diskrit (misalnya biner), Anda dapat mengakomodasi hal itu dalam kerangka kerja ini dengan memasang GAM logistik (dalam R
, Anda akan menambah family=binomial
panggilan Anda ke gam
). Selain itu, jika Anda memiliki beberapa prediktor, Anda dapat memasukkan beberapa istilah aditif (atau istilah linier biasa), atau cocok dengan fungsi multivariabel, misalnya jika Anda memiliki prediktor . Kompleksitas hubungan secara otomatis dipilih oleh validasi silang jika Anda menggunakan metode default, meskipun ada banyak fleksibilitas di sini - lihat file bantuan jika tertarik.x, z
gam
Jika hubungan nonlinear adalah korelasi peringkat monotonik (Spearman rho) akan sesuai. Dalam contoh Anda ada wilayah kecil yang jelas di mana kurva berubah dari meningkat secara monoton menjadi menurun secara monton seperti parabola akan lakukan pada titik di mana turunan pertama sama dengan .
Saya pikir jika Anda memiliki pengetahuan pemodelan (di luar informasi empiris) di mana titik perubahan itu terjadi (katakanlah pada ) maka Anda dapat mengkarakterisasi korelasi sebagai positif dan menggunakan Spearman rho pada set pasangan di mana untuk memberikan estimasi korelasi itu dan menggunakan estimasi korelasi Spearman lain untuk x> mana korelasinya negatif. Kedua estimasi ini kemudian mencirikan struktur korelasi antara dan dan tidak seperti estimasi korelasi yang akan mendekati ketika diperkirakan menggunakan semua data, estimasi ini akan besar dan berlawanan.
Anda dapat menguji segala jenis ketergantungan dengan menggunakan uji korelasi jarak. Lihat di sini untuk informasi lebih lanjut tentang korelasi jarak: Memahami perhitungan korelasi jarak
Dan di sini makalah aslinya: https://arxiv.org/pdf/0803.4101.pdf
Dalam R ini diimplementasikan dalam energy
paket dengan dcor.test
fungsi.
Seseorang mengoreksi saya jika pemahaman saya salah di sini tetapi salah satu cara untuk menangani variabel non-linear adalah dengan menggunakan pendekatan linier. Jadi, misalnya, mengambil log distribusi eksponensial harus memungkinkan Anda untuk memperlakukan variabel sebagai distribusi normal. Kemudian dapat digunakan untuk menyelesaikan masalah seperti halnya regresi linier.
Saya dulu menerapkan model aditif umum untuk mendeteksi hubungan non-linear antara dua variabel, tetapi baru-baru ini saya menemukan tentang korelasi non-linear yang diimplementasikan melalui nlcor
paket dalam R, Anda dapat menerapkan metode ini dengan cara yang sama seperti korelasi Pearson , koefisien korelasi antara 0 dan 1 dan bukan -1 dan 1 seperti pada korelasi Pearson. Koefisien korelasi yang lebih tinggi menyiratkan adanya hubungan non-linear yang kuat. Mari kita asumsikan dua deret waktu x2
dan y2
, korelasi nonlinier antara dua deret waktu diuji sebagai berikut
install.packages("devtools")
library(devtools)
install_github("ProcessMiner/nlcor")
library(nlcor)
c <- nlcor(x2, y2, plt = T)
c$cor.estimate
[1] 0.897205
Kedua variabel tersebut tampaknya sangat berkorelasi melalui hubungan nonlinear, Anda juga dapat memperoleh nilai p yang disesuaikan untuk koefisien korelasi
c$adjusted.p.value
[1] 0
Anda juga dapat merencanakan hasilnya
print(c$cor.plot)
Anda dapat melihat tautan ini untuk lebih jelasnya