Cara menentukan simpul di R
The ns
Fungsi menghasilkan spline regresi alami secara diberikan vektor input. Knot dapat ditentukan baik melalui argumen derajat kebebasan df
yang mengambil integer atau melalui argumen knot knots
yang mengambil vektor yang memberikan penempatan knot yang diinginkan. Perhatikan bahwa dalam kode yang Anda tulis
library(splines)
lda.pred <- lda(y ~ ns(x, knots=5))
Anda belum meminta lima simpul, melainkan meminta satu simpul (interior) di lokasi 5.
Jika Anda menggunakan df
argumen, maka simpul interior akan dipilih berdasarkan pada kuantil vektor x
. Misalnya, jika Anda melakukan panggilan
ns(x, df=5)
Kemudian dasar akan mencakup dua simpul batas dan 4 simpul internal, ditempatkan pada kuantil ke-20, ke-40, ke-60, dan ke-80 x
masing-masing. Simpul batas, secara default, ditempatkan pada min dan maks x
.
Berikut adalah contoh untuk menentukan lokasi knot
x <- 0:100
ns(x, knots=c(20,35,50))
Jika Anda sebaliknya menelepon ns(x, df=4)
, Anda akan berakhir dengan 3 simpul internal di lokasi 25, 50, dan 75, masing-masing.
Anda juga dapat menentukan apakah Anda ingin istilah intersepsi. Biasanya ini tidak ditentukan karena ns
paling sering digunakan dalam hubungannya dengan lm
, yang mencakup intersepsi secara implisit (kecuali dipaksa untuk tidak). Jika Anda menggunakan intercept=TRUE
panggilan Anda untuk ns
, pastikan Anda tahu mengapa Anda melakukannya, karena jika Anda melakukan ini dan kemudian menelepon secara lm
naif, matriks desain akan berakhir dengan kekurangan peringkat.
Strategi untuk menempatkan simpul
Simpul paling sering ditempatkan pada kuantil, seperti perilaku default ns
. Intuisi adalah bahwa jika Anda memiliki banyak data yang berkerumun berdekatan, maka Anda mungkin ingin lebih banyak simpul di sana untuk memodelkan potensi nonlinier di wilayah itu. Tetapi, itu tidak berarti bahwa ini adalah (a) satu-satunya pilihan atau (b) pilihan terbaik.
Pilihan lain jelas dapat dibuat dan khusus untuk domain. Melihat histogram dan perkiraan kepadatan prediksi Anda dapat memberikan petunjuk di mana simpul diperlukan, kecuali ada beberapa pilihan "kanonik" yang diberikan data Anda.
Dalam hal menafsirkan regresi, saya akan mencatat bahwa, sementara Anda pasti dapat "bermain-main" dengan penempatan simpul, Anda harus menyadari bahwa Anda dikenakan penalti pemilihan model untuk ini sehingga Anda harus berhati-hati untuk mengevaluasi dan harus menyesuaikan setiap kesimpulan sebagai hasil.