Bagaimana cara menguji hubungan nonlinear?

37

Untuk plot 1, saya dapat menguji hubungan antara x dan y dengan melakukan korelasi sederhana. plot 1

Untuk plot 2, di mana hubungannya nonlinear namun ada hubungan yang jelas antara x dan y, bagaimana saya bisa menguji asosiasi dan label sifatnya? plot 2

pengguna1447630
sumber

Jawaban:

35

... 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 xyxyx

Khususnya, jika Anda memiliki pengamatan, , Anda dapat model:(Ysaya,Xsaya)

E(Ysaya|Xsaya)=α+f(Xsaya)+εsaya

dan uji hipotesis . Di , Anda dapat melakukan ini menggunakan fungsi. Jika ini adalah hasil Anda dan merupakan prediksi Anda, Anda dapat mengetik:H0:f(x)=0, xRgam()yx

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=binomialpanggilan 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.f(x,z)x, zgam

Makro
sumber
1
Saya lebih suka pendekatan ini ke dua korelasi peringkat yang terpisah di kedua sisi karena memeriksa hubungan secara keseluruhan. Ini juga lebih baik daripada model parametrik, jadi saya menerima ini sebagai gantinya. x=Sebuah
user1447630
@ user1447630 Ini adalah model untuk hubungan. Regresi linier polinomial atau regresi nonlinear serta model aditif adalah cara untuk mengkarakterisasi hubungan functionl. Saya bisa menyebutkan semua itu. Tetapi Anda meminta ukuran asosiasi, jadi saya memberi Anda bentuk korelasional yang mungkin. Sebagus jawaban Makro mungkin cocok dengan hubungan fungsional, tetapi tidak memberikan ukuran asosiasi.
Michael R. Chernick
1
@Michael, saya tidak tahu pertanyaan mana yang Anda baca tetapi OP bertanya bagaimana menguji asosiasi, bukan untuk ukuran asosiasi. Bagaimanapun, sebaik jawaban Anda, (dan mengabaikan fakta bahwa itu membutuhkan pengetahuan apriori yang cukup kuat tentang di mana titik perubahan terjadi) Saya pikir itu terlalu disesuaikan dengan plot spesifik dalam pertanyaan ini, bukan umum masalah "hubungan nonlinier".
Makro
3
@Michael, interpretasi Anda ( "pertanyaannya adalah tentang bagaimana menggeneralisasi konsep korelasi .." ) dan statistik "argumen" yang Anda berikan (btw, "pengujian siginicance dari koefisien dan model" dalam model linear ini adalah sama seperti menguji korelasi) tidak masuk akal, mengingat faktanya, jadi saya tidak akan mengatasinya. Tetapi, "..setelah Anda memberikan milik Anda, milik saya tidak dapat diterima dan Anda diterima ... Saya hanya merasa itu tidak benar" mengkampanyekan jawaban Anda yang hanya mencerminkan fiksasi pada poin rep, bukan sesuatu yang berguna bagi masyarakat.
Makro
5
@ Macro dan Michael kepada saya memasang model hubungan antara dan secara semi / non-parametrik adalah salah satu cara untuk menguji hubungan antara keduanya. Tes semacam itu dapat diperpanjang dengan mengukur tingkat keterkaitan dengan berbagai cara yang telah Anda sarankan masing-masing. Saya pikir kedua jawaban dan tindak lanjut di sini telah cukup berguna bagi saya, sans yang ad hominem . Namun, karena pertanyaan saya mencakup bagaimana kita dapat "memberi label sifatnya", yang dapat diartikan sebagai model-pas, saya akan tetap dengan jawaban Makro. yxy
user1447630
14

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 .0

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.x=Sebuah(x,y)x<Sebuahx>Sebuahxy0

(x,y)

Michael R. Chernick
sumber
y=ax2+bx+ca
1
Untuk itu Anda cocok dengan model kuadratik menggunakan katakanlah regresi linear OLS dan lakukan uji statistik standar bahwa koefisien a lebih besar dari 0 (katakanlah uji t satu sisi).
Michael R. Chernick
1
xxx2t
212
0

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.

Akshata T
sumber
8
Saya tidak berpikir ini benar-benar menjawab pertanyaan itu. Mengambil log tidak sama dengan melakukan perkiraan linier. Selain itu, bahkan jika Anda mengambil log, distribusi yang log dari variabel asli adalah variabel terdistribusi normal bukan distribusi eksponensial tetapi distribusi lognormal . Namun, baik variabel independen maupun dependen tidak perlu terdistribusi normal untuk regresi linier agar sesuai - masalah di sini adalah hubungan antara variabel, bukan distribusi marginal mereka.
Silverfish
0

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 nlcorpaket 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 x2dan 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

Ameer
sumber