Intuisi di balik interaksi produk tensor dalam GAM (paket MGCV dalam R)

30

Model aditif umum adalah yang mana

y=α+f1(x1)+f2(x2)+ei
misalnya. fungsinya halus, dan diperkirakan. Biasanya dengan splines dihukum. MGCV adalah paket dalam R yang melakukannya, dan penulis (Simon Wood) menulis buku tentang paketnya dengan contoh-contoh R. Ruppert, dkk. (2003) menulis buku yang jauh lebih mudah diakses tentang versi yang lebih sederhana dari hal yang sama.

Pertanyaan saya adalah tentang interaksi dalam model-model semacam ini. Bagaimana jika saya ingin melakukan sesuatu seperti berikut:

y=α+f1(x1)+f2(x2)+f3(x1×x2)+ei
jika kami berada di tanah OLS (di mana f hanya beta), saya akan tidak punya masalah dengan menafsirkan f 3 . Jika kita memperkirakan melalui splines yang dihukum, saya juga tidak punya masalah dengan interpretasi dalam konteks aditif. f^3

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.

generic_user
sumber
contoh sederhana, diambil dari buku paket penulis: perpustakaan (mgcv) data (pohon) ct5 <- gam (Volume ~ te (Tinggi, Ketebalan, k = 5), keluarga = Gamma (tautan = log), data = pohon) ct5 vis.gam (ct5) plot (ct5, too.far = 0.15)
generic_user

Jawaban:

30

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:yfxε

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 milikiffβ2xβ1

y=β1+β2x+ε

Dalam bentuk matriks, kita akan memiliki:

Y=Xβ+ε

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.YXβε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:i2

y=β1+β2x+β3f1(x)+β4f2(x)+...+βifi2(x)+ε

di mana setiap fungsi , mungkin, fungsi kubik dari variabel independen x .fx

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:

β=(XTX)1XTY

kita punya:

β=(XTX+λS)1XTY

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 .Siiλ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:yfxz

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)xzf ). 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)i3

y=β1+β2x+β3z+β4f1(x,z)+...+βifi3(x,z)+ε

Saya pikir sudah cukup jelas bahwa kita masih dapat mewakili ini dalam bentuk matriks dengan:

Y=Xβ+ε

dengan hanya mengevaluasi setiap fungsi dasar pada setiap kombinasi unik dan z . Solusinya masih:xz

β=(XTX)1XTY

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λ

β=(XTX+λS)1XTY

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λxzzttxtxdalam 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.txx

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

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:yfxt

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:xtf

f(x,t)=fx(x)ft(t)

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 ( xxtxtff(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:ixjt

y=β1+β2x+β3fx1(x)+β4fx2(x)+...+βifx(i3)(x)+βi+1t+βi+2tx+βi+3tfx1(x)+βi+4tfx2(x)+...+β2itfx(i3)(x)+β2i+1ft1(t)+β2i+2ft1(t)x+β2i+3ft1(t)fx1(x)+βi+4ft1(t)fx2(x)+...+β2ift1(t)fx(i3)(x)++βijft(j3)(t)fx(i3)(x)+ε

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 jxtXTn2ij XTijijkolom, 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.

ijij+1tβx1jxβt1i

Jadi kita dapat mewakili ini sebagai:

y=β1+β2x+β3t+β4f1(x,t)+β5f2(x,t)+...+βijij+1fijij2(x,t)+ε

fxt

Y=Xβ+ε

Yang (masih) punya solusinya:

β=(XTX)1XTY

Xijij+1JxJt

Jx=βTIjSxβ

dan,

Jt=βTStIiβ

xtλxλt

Saya merekomendasikan membaca semua sketsa di situs web MGCV, serta " Generalized Additive Models: dan pengantar dengan R. " Panjang umur Simon Wood.

Josh
sumber
Jawaban bagus. Sejak itu saya telah belajar lebih banyak dari yang saya tahu tiga tahun lalu. Tetapi saya tidak yakin bahwa saya akan mengerti 3 tahun yang lalu apa yang Anda tulis hari ini. Atau mungkin saya akan melakukannya. Saya pikir tempat untuk memulai adalah memikirkan perluasan basis di banyak dimensi sebagai "jaring" di seluruh ruang variabel. Saya kira tensor dapat digambarkan sebagai jaring dengan pola persegi panjang ... Dan mungkin gaya "geser" yang berbeda menarik dari setiap arah.
generic_user
xt
1
βxiβtj
1
@ Astaga, saya sudah mencoba. Tidak mudah untuk membuatnya benar dan mudah dimengerti pada saat yang sama (dan untuk mengikuti notasi orang lain). By the way, tautan ke smooth-toolbox.pdf tampaknya rusak.
jarauh
1
Kelihatan bagus. Tampaknya hasil edit Anda ditolak, tetapi saya menolak penolakan dan menyetujuinya. Ketika saya mulai menulis jawaban ini, saya tidak menyadari betapa membingungkannya ekspansi itu. Saya mungkin harus kembali dan menulis ulang dengan notasi pi (produk) suatu hari ini.
Josh