Saya sedang membangun model di mana beberapa kovariat saya hidup pada "lingkaran", dalam arti bahwa mereka mengambil nilai dalam interval [0,1), dan 0 = 1. Saya bertanya-tanya tentang teknik untuk menghadapi situasi ini. Satu ide adalah untuk mewakili theta variabel lingkaran sebagai pasangan variabel (sin (theta), cos (theta)). Adakah pemikiran tentang pendekatan ini atau pendekatan yang lebih baik?
Saya secara khusus menggunakan paket GAM mgsv. Apakah ada cara untuk memberi tahu model bahwa potongan aditif tertentu harus memiliki nilai yang sama di titik akhir? Paket lain?
Terima kasih!
circular
paket yang mungkin menarik. Semoga tanggapan Anda lebih baik.Jawaban:
Ada dua cara berurusan dengan variabel melingkar, satu metode hacky akan secara manual menduplikasi set data Anda di kedua sisi kondisi batas tetapi solusi yang lebih elegan saya pikir akan menggunakan fungsi basis spline built-in dengan kondisi batas periodik !
Sebagai contoh:
bs="cc"
menentukan splines regresi kubik siklik (lihatcyclic.cubic.spline
). yaitu splines regresi kubik dihukum yang ujungnya cocok, hingga turunan kedua.Splines pada sphere
bs="sos"
. Ini adalah dua splines dimensi pada sphere. Argumen adalah garis lintang dan bujur, dan mereka adalah analog dari splines pelat tipis untuk bola. Berguna untuk data sampel di sebagian besar bola dunia, saat isotropi sesuai. LihatSpherical.Spline
detailnya.bs="cp"
memberikan versi siklik dari P-splinesumber
Anda mungkin ingin melihat ke Gill dan Hangartner (2010). Data Edaran dalam Ilmu Politik dan Cara Menanganinya . Mereka berbicara tentang berbagai model untuk data lingkaran / jam / musiman, dan Jeff Gill memberikan kode R untuk makalah yang dapat Anda lihat sebagai inspirasi. Seharusnya ada versi presentasi dari materi ini yang akan menenun metodologi dan kode R bersama-sama.
sumber