Saya telah menjelajahi sejumlah alat untuk perkiraan, dan telah menemukan Generalized Additive Models (GAMs) memiliki potensi paling besar untuk tujuan ini. GAM itu luar biasa! Mereka memungkinkan untuk model yang rumit untuk ditentukan dengan sangat ringkas. Namun, kejelasan yang sama itu membuat saya kebingungan, khususnya terkait dengan bagaimana GAM memahami istilah interaksi dan kovariat.
Pertimbangkan contoh kumpulan data (kode yang dapat direproduksi di akhir posting) yang y
merupakan fungsi monoton yang diganggu oleh beberapa gaussians, ditambah beberapa noise:
Kumpulan data memiliki beberapa variabel prediktor:
x
: Indeks data (1-100).w
: Fitur sekunder yang menandai bagiany
tempat gaussian hadir.w
memiliki nilai 1-20 dix
antara 11 dan 30, dan 51 hingga 70. Jika tidak,w
adalah 0.w2
:w + 1
, sehingga tidak ada nilai 0.
mgcv
Paket R membuatnya mudah untuk menentukan sejumlah model yang mungkin untuk data ini:
Model 1 dan 2 cukup intuitif. Memprediksi y
hanya dari nilai indeks x
pada kelancaran default menghasilkan sesuatu yang samar-samar benar, tetapi terlalu mulus. Memprediksi y
hanya dari w
hasil dalam model "rata-rata gaussian" hadir y
, dan tidak ada "kesadaran" dari titik data lainnya, yang semuanya memiliki w
nilai 0.
Model 3 menggunakan keduanya x
dan w
sebagai smooth 1D, menghasilkan kecocokan yang bagus. Penggunaan Model 4 x
dan w
dalam 2D mulus, juga memberikan kecocokan yang bagus. Kedua model ini sangat mirip, meskipun tidak identik.
Model 5 model x
"oleh" w
. Model 6 melakukan yang sebaliknya. mgcv
Dokumentasi menyatakan bahwa "dengan argumen memastikan bahwa fungsi yang lancar dikalikan dengan [kovariat yang diberikan dalam argumen 'oleh']". Jadi bukankah seharusnya Model 5 & 6 setara?
Model 7 dan 8 menggunakan salah satu prediktor sebagai istilah linier. Ini masuk akal bagi saya, karena mereka hanya melakukan apa yang akan dilakukan GLM dengan prediktor ini, dan kemudian menambahkan efek ke seluruh model.
Terakhir, Model 9 sama dengan Model 5, kecuali yang x
dihaluskan "oleh" w2
(yang w + 1
). Yang aneh bagi saya di sini adalah bahwa tidak adanya nol w2
menghasilkan efek yang sangat berbeda dalam interaksi "oleh".
Jadi, pertanyaan saya adalah ini:
- Apa perbedaan antara spesifikasi dalam Model 3 dan 4? Apakah ada contoh lain yang akan menjelaskan perbedaannya lebih jelas?
- Apa, tepatnya, yang "dilakukan" di sini? Banyak dari apa yang saya baca di buku Wood dan situs web ini menunjukkan bahwa "oleh" menghasilkan efek multiplikasi, tetapi saya mengalami kesulitan memahami intuisi itu.
- Mengapa ada perbedaan yang mencolok antara Model 5 dan 9?
Reprex berikut, ditulis dalam R.
library(magrittr)
library(tidyverse)
library(mgcv)
set.seed(1222)
data.ex <- tibble(
x = 1:100,
w = c(rep(0, 10), 1:20, rep(0, 20), 1:20, rep(0, 30)),
w2 = w + 1,
y = dnorm(x, mean = rep(c(20, 60), each = 50), sd = 3) + (seq(0, 1, length = 100)^2) / 2 + rnorm(100, sd = 0.01)
)
models <- tibble(
model = 1:9,
formula = c('y ~ s(x)', 'y ~ s(w)', 'y ~ s(x) + s(w)', 'y ~ s(x, w)', 'y ~ s(x, by = w)', 'y ~ s(w, by = x)', 'y ~ x + s(w)', 'y ~ w + s(x)', 'y ~ s(x, by = w2)'),
gam = map(formula, function(x) gam(as.formula(x), data = data.ex)),
data.to.plot = map(gam, function(x) cbind(data.ex, predicted = predict(x)))
)
plot.models <- unnest(models, data.to.plot) %>%
mutate(facet = sprintf('%i: %s', model, formula)) %>%
ggplot(data = ., aes(x = x, y = y)) +
geom_point() +
geom_line(aes(y = predicted), color = 'red') +
facet_wrap(facets = ~facet)
print(plot.models)
Jawaban:
Q1 Apa perbedaan antara model 3 dan 4?
Model 3 adalah model aditif murni
jadi kami memiliki konstanta ditambah efek halus ditambah efek halus .α x w
Model 4 adalah interaksi yang lancar dari dua variabel kontinu
Dalam arti praktis, Model 3 mengatakan bahwa tidak peduli apa efek , efek pada respons adalah sama; jika kita memperbaiki pada beberapa nilai yang diketahui dan bervariasi atas beberapa rentang, kontribusi dari dengan model dipasang tetap sama. Verifikasi ini jika Anda ingin dengan -ing dari model 3 untuk nilai tetap dan beberapa nilai berbeda dan gunakan argumen metode ini. Anda akan melihat kontribusi konstan pada nilai yang dipasang / diprediksi untuk .w x x w f1(x)
predict()
x
w
type = 'terms'
predict()
s(x)
Ini bukan kasus model 4; model ini mengatakan bahwa efek kelancaran dari bervariasi dengan lancar dengan nilai dan sebaliknya.x w
Perhatikan bahwa kecuali dan berada dalam unit yang sama atau kami mengharapkan kegoyahan yang sama di kedua variabel, Anda harus menggunakan agar sesuai dengan interaksi.x w
te()
Di satu sisi, model 4 pas
di mana adalah interaksi halus murni dari efek halus "utama" dari dan , dan yang telah dihapus, demi pengidentifikasian, dari dasar . Anda bisa mendapatkan model ini melaluif3 x w f3
tapi perhatikan ini perkiraan 4 parameter kelancaran:
The
te()
Model hanya berisi dua parameter kelancaran, satu per basis marginal.Masalah mendasar dengan semua model ini adalah bahwa efek tidak sepenuhnya mulus; ada diskontinuitas di mana efek jatuh ke 0 (atau 1 in ). Ini muncul di plot Anda (dan yang saya tunjukkan secara rinci di sini).w w
w2
Q2 Apa, tepatnya, yang "dilakukan" di sini?
by
variabel smooths dapat melakukan sejumlah hal berbeda tergantung pada apa yang Anda sampaikan keby
argumen. Dalam contoh Andaby
variabel, adalah kontinu. Dalam hal ini apa yang Anda dapatkan model koefisien bervariasi. Ini adalah model di mana efek linear bervariasi dengan . Dalam istilah persamaan, inilah yang dilakukan model 5 AndaJika ini tidak segera jelas (bukan bagi saya ketika saya pertama kali melihat model-model ini) untuk beberapa nilai diberikan, kami mengevaluasi fungsi halus pada nilai ini dan ini kemudian menjadi setara dengan ; dengan kata lain, itu adalah efek linier dari pada nilai diberikan , dan efek linier itu bervariasi dengan mulus dengan . Lihat bagian 7.5.3 dalam edisi kedua buku Simon untuk contoh konkret di mana efek linear kovariat bervariasi fungsi ruang yang halus (lat dan panjang).x β1w w x x
Q3 Mengapa ada perbedaan yang mencolok antara Model 5 dan 9?
Perbedaan antara model 5 dan 9 saya pikir hanya karena mengalikan dengan 0 atau mengalikan dengan 1. Dengan yang pertama, efek dari satu-satunya istilah dalam model adalah 0 karena . Dalam model 9, Anda memiliki di area tersebut di mana tidak ada kontribusi dari gaussians of . Karena adalah ~ fungsi eksponensial, Anda mendapatkan ini ditumpangkan pada efek keseluruhan dari .f1(x)w f1(x)×0=0 f1(x)×1=f1(x) w f1(x) w
Dengan kata lain, model 5 berisi tren nol di mana-mana adalah 0, tetapi model 9 mencakup tren ~ eksponensial di mana-mana adalah 0 (1), di mana efek koefisien bervariasi dari ditumpangkan.w w w
sumber
by
parameter semakin membingungkan.