Model aditif umum adalah yang mana
Pertanyaan saya adalah tentang interaksi dalam model-model semacam ini. Bagaimana jika saya ingin melakukan sesuatu seperti berikut:
Tetapi paket MGCV dalam GAM memiliki hal-hal ini disebut "tensor product smooths". Saya google "produk tensor" dan mata saya langsung berkaca-kaca mencoba membaca penjelasan yang saya temukan. Entah aku tidak cukup pintar atau matematika tidak dijelaskan dengan baik, atau keduanya.
Alih-alih coding
normal = gam(y~s(x1)+s(x2)+s(x1*x2))
produk tensor akan melakukan hal yang sama (?) oleh
what = gam(y~te(x1,x2))
ketika saya melakukannya
plot(what)
atau
vis.gam(what)
Saya mendapatkan beberapa output yang sangat keren. Tapi saya tidak tahu apa yang terjadi di dalam kotak hitam itu te()
, atau bagaimana menafsirkan output keren tersebut. Malam yang lalu saya mengalami mimpi buruk bahwa saya memberikan seminar. Saya menunjukkan kepada semua orang grafik yang keren, mereka bertanya apa artinya, dan saya tidak tahu. Kemudian saya menemukan bahwa saya tidak punya pakaian.
Adakah yang bisa membantu saya, dan keturunan, dengan memberikan sedikit mekanika dan intuisi tentang apa yang terjadi di balik tenda di sini? Idealnya dengan mengatakan sedikit tentang perbedaan antara kasus interaksi aditif normal dan kasus tensor? Poin bonus untuk mengatakan semuanya dalam bahasa Inggris sederhana sebelum beralih ke matematika.
sumber
Jawaban:
Saya akan (mencoba) menjawab ini dalam tiga langkah: pertama, mari kita mengidentifikasi dengan tepat apa yang kita maksud dengan smooth univariate. Selanjutnya, kami akan menjelaskan kelancaran multivarian (khususnya kelancaran dua variabel). Akhirnya, saya akan berusaha sebaik mungkin untuk menggambarkan produk tensor dengan lancar.
1) Univariat mulus
Katakanlah kita memiliki beberapa data jawaban yang kita dugaan adalah fungsi yang tidak diketahui f dari variabel prediktor x ditambah beberapa kesalahan ε . Modelnya adalah:y f x ε
Sekarang, agar sesuai dengan model ini, kita harus mengidentifikasi bentuk fungsional dari . Cara kami melakukan ini adalah dengan mengidentifikasi fungsi dasar, yang ditumpangkan untuk mewakili fungsi f secara keseluruhan. Contoh yang sangat sederhana adalah regresi linier, di mana fungsi dasarnya hanya β 2 x dan β 1 , intersep. Menerapkan perluasan basis, kami milikif f β2x β1
Dalam bentuk matriks, kita akan memiliki:
Di mana adalah vektor kolom n-by-1, X adalah matriks model n-by-2, β adalah vektor kolom 2-by-1 dari koefisien model, dan ε adalah vektor kesalahan kolom n-by-1 . X memiliki dua kolom karena ada dua istilah dalam ekspansi basis kami: istilah linier dan intersep.Y X β ε X
Prinsip yang sama berlaku untuk ekspansi basis di MGCV, meskipun fungsi dasarnya jauh lebih canggih. Secara khusus, fungsi-fungsi basis individual tidak perlu didefinisikan pada domain penuh dari variabel independen . Hal ini sering terjadi ketika menggunakan basis berbasis simpul (lihat "contoh berbasis simpul"x ). Model ini kemudian direpresentasikan sebagai jumlah dari fungsi dasar, yang masing-masing dievaluasi pada setiap nilai variabel independen. Namun, seperti yang saya sebutkan, beberapa fungsi dasar ini mengambil nilai nol di luar interval yang diberikan dan dengan demikian tidak berkontribusi pada ekspansi basis di luar interval itu. Sebagai contoh, perhatikan basis spline kubik di mana setiap fungsi basis simetris tentang nilai yang berbeda (simpul) dari variabel independen - dengan kata lain, setiap fungsi basis terlihat sama tetapi hanya bergeser di sepanjang sumbu variabel independen (Ini adalah penyederhanaan yang berlebihan, karena dasar praktis apa pun juga akan mencakup istilah intersep dan linear, tetapi mudah-mudahan Anda mendapatkan ide).
Secara eksplisit, perluasan dasar dimensi dapat terlihat seperti:i−2
di mana setiap fungsi , mungkin, fungsi kubik dari variabel independen x .f x
Persamaan matriks masih dapat digunakan untuk mewakili model kami. Satu-satunya perbedaan adalah bahwa X sekarang menjadi matriks n-by-i; yaitu, ia memiliki kolom untuk setiap istilah dalam ekspansi basis (termasuk istilah intersep dan linear). Karena proses ekspansi basis telah memungkinkan kami untuk merepresentasikan model dalam bentuk persamaan matriks, kita dapat menggunakan kuadrat terkecil linier agar sesuai dengan model dan menemukan koefisien β .Y=Xβ+ε X β
Ini adalah contoh dari regresi yang tidak di-posting, dan salah satu kekuatan utama MGCV adalah estimasi kelancarannya melalui matriks penalti dan parameter smoothing. Dengan kata lain, alih-alih:
kita punya:
di mana adalah matriks penalti kuadrat i -dengan i dan λ adalah parameter pemulusan skalar. Saya tidak akan masuk ke dalam spesifikasi matriks hukuman di sini, tetapi harus cukup untuk mengatakan bahwa untuk setiap perluasan basis tertentu dari beberapa variabel independen dan definisi hukuman "kebimbangan" kuadratik (misalnya, penalti derivatif kedua), satu dapat menghitung hukuman matriks S .S i i λ S
MGCV dapat menggunakan berbagai cara untuk memperkirakan parameter smoothing optimal . Saya tidak akan membahas hal itu karena tujuan saya di sini adalah untuk memberikan tinjauan luas tentang bagaimana kelancaran univariat dibangun, yang saya yakin telah saya lakukan.λ
2) Multivarian mulus
Penjelasan di atas dapat digeneralisasi ke beberapa dimensi. Mari kita kembali ke model kita yang memberikan respons sebagai fungsi f dari prediktor x dan z . Pembatasan dua variabel independen akan mencegah kekacauan penjelasan dengan notasi misterius. Modelnya kemudian:y f x z
Sekarang, harus jelas secara intuitif bahwa kita akan mewakili dengan basis ekspansi (yaitu, superposisi fungsi basis) sama seperti yang kami lakukan dalam kasus univariat dari f ( x ) di atas. Seharusnya juga jelas bahwa setidaknya satu, dan hampir pasti lebih banyak, dari fungsi-fungsi dasar ini harus merupakan fungsi dari x dan z (jika ini bukan kasusnya, maka secara implisit f akan dapat dipisahkan sehingga f ( x , z ) = f x ( x ) + ff(x,z) f(x) x z f ). Ilustrasi visual dari dasar spline multidimensi dapat ditemukan disini. Perluasan dua dimensi penuh dari dimensi i - 3 dapat terlihat seperti:f(x,z)=fx(x)+fz(z) i−3
Saya pikir sudah cukup jelas bahwa kita masih dapat mewakili ini dalam bentuk matriks dengan:
dengan hanya mengevaluasi setiap fungsi dasar pada setiap kombinasi unik dan z . Solusinya masih:x z
Menghitung matriks penalti derivatif kedua sangat mirip dengan dalam kasus univariat, kecuali bahwa alih-alih mengintegrasikan derivatif kedua dari masing-masing fungsi basis berkenaan dengan variabel tunggal, kami mengintegrasikan jumlah semua derivatif kedua (termasuk sebagian) dengan hormat untuk semua variabel independen. Rincian di atas tidak terlalu penting: intinya adalah bahwa kita masih dapat membangun matriks penalti dan menggunakan metode yang sama untuk mendapatkan nilai optimal dari parameter smoothing λ , dan mengingat parameter smoothing, vektor koefisien masih:S λ
Sekarang, smooth dua dimensi ini memiliki penalti isotropik : ini berarti bahwa nilai tunggal berlaku di kedua arah. Ini berfungsi dengan baik ketika x dan z berada pada skala yang kira-kira sama, seperti aplikasi spasial. Tetapi bagaimana jika kita mengganti variabel spasial z dengan variabel temporal t ? Unit t mungkin jauh lebih besar atau lebih kecil dari unit x , dan ini dapat membuang integrasi turunan kedua kami karena beberapa turunan tersebut akan berkontribusi secara tidak proporsional terhadap keseluruhan integrasi (misalnya, jika kita mengukur t dalam nanodetik dan xλ x z z t t x t x dalam tahun-tahun cahaya, integral dari turunan kedua sehubungan dengan mungkin jauh lebih besar dari integral turunan kedua sehubungan dengan x , dan dengan demikian "kegoyahan" di sepanjang arah x mungkin sebagian besar tidak dilunasi). Slide 15 dari "kotak alat halus" yang saya tautkan memiliki detail lebih lanjut tentang topik ini.t x x
Perlu dicatat bahwa kami tidak menguraikan fungsi basis menjadi basis marginal dari dan z . Implikasinya di sini adalah bahwa multivariate smooths harus dibangun dari basis yang mendukung banyak variabel. Kelancaran produk Tensor mendukung konstruksi pangkalan multivarian dari basis marginal univariat, seperti yang saya jelaskan di bawah ini.x z
3) Produk tensor halus
Produk smooth Tensor mengatasi masalah respons pemodelan terhadap interaksi beberapa input dengan unit yang berbeda. Anggaplah kita memiliki respons yang merupakan fungsi f dari variabel spasial x dan variabel temporal t . Model kami adalah:y f x t
Apa yang ingin kita lakukan adalah membangun basis dua dimensi untuk variabel dan t . Ini akan jauh lebih mudah jika kita dapat mewakili f sebagai:x t f
Dalam arti aljabar / analitik, ini belum tentu mungkin. Tapi ingat, kami sedang mendiskritisasi domain dari dan t (bayangkan "kisi" dua dimensi yang ditentukan oleh lokasi simpul pada sumbu x dan t ) sedemikian rupa sehingga fungsi "true" f diwakili oleh superposisi fungsi basis . Sama seperti kita mengasumsikan bahwa fungsi univariat yang sangat kompleks dapat didekati oleh fungsi kubik sederhana pada interval spesifik dari domainnya, kita dapat mengasumsikan bahwa fungsi non-terpisah f ( x , t ) dapat didekati oleh produk dari fungsi yang lebih sederhana f x ( xx t x t f f( x , t ) Dan f t ( t ) pada interval-asalkan pilihan kami secara dimensi membuat interval yang cukup kecil!fx( x ) ft( t )
Dasar ekspansi kami, diberi dasar berdimensi di x dan j dasar berdimensi di t , maka akan terlihat seperti:saya x j t
Yang dapat diartikan sebagai produk tensor. Bayangkan bahwa kita mengevaluasi masing-masing fungsi dasar dalam dan t , dengan demikian membangun matriks model n-by-i dan n-by-j masing-masing X dan T. Kami kemudian bisa menghitung n 2 -by- i j tensor produk X ⊗ T dari dua matriks Model ini dan mereorganisasi ke dalam kolom, sehingga setiap kolom mewakili unik kombinasi i j . Ingat bahwa matriks model marginal memiliki i dan jx t X T n2 ij X⊗T ij i j kolom, masing-masing. Nilai-nilai ini sesuai dengan dimensi dasar masing-masing. Dasar dua variabel baru kami kemudian harus memiliki dimensi , dan oleh karena itu jumlah kolom yang sama dalam matriks modelnya.ij
CATATAN: Saya ingin menunjukkan bahwa karena kami secara eksplisit membangun fungsi basis produk tensor dengan mengambil produk dari fungsi basis marginal, basis produk tensor dapat dibangun dari basis marginal dari jenis apa pun. Mereka tidak perlu mendukung lebih dari satu variabel, tidak seperti kelancaran multivariat yang dibahas di atas.
Jadi kita dapat mewakili ini sebagai:
Yang (masih) punya solusinya:
dan,
Saya merekomendasikan membaca semua sketsa di situs web MGCV, serta " Generalized Additive Models: dan pengantar dengan R. " Panjang umur Simon Wood.
sumber