Adakah yang bisa membantu memberikan penjelasan konseptual tentang bagaimana prediksi dibuat untuk data baru saat menggunakan smooths / splines untuk model prediksi? Misalnya, mengingat model yang dibuat menggunakan gamboost
dalam mboost
paket di R, dengan p-splines, bagaimana prediksi untuk data baru dibuat? Apa yang digunakan dari data pelatihan?
Katakanlah ada nilai baru dari variabel independen x dan kami ingin memprediksi y. Apakah rumus untuk pembuatan spline diterapkan pada nilai data baru ini menggunakan knot atau df yang digunakan ketika melatih model dan kemudian koefisien dari model yang terlatih diterapkan untuk menghasilkan prediksi?
Berikut ini adalah contoh dengan R, apa yang diprediksi dilakukan secara konseptual ke output 899,4139 untuk data baru mean_radius = 15,99?
#take the data wpbc as example
library(mboost)
data(wpbc)
modNew<-gamboost(mean_area~mean_radius, data = wpbc, baselearner = "bbs", dfbase = 4, family=Gaussian(),control = boost_control(mstop = 5))
test<-data.frame(mean_radius=15.99)
predict(modNew,test)
Jawaban:
Cara prediksi dihitung seperti ini:
Dari fit asli, Anda memiliki lokasi simpul yang tersebar melalui rentangBj(x);j=1,…,24 x=
mean_radius
dalam data pelatihan Anda. Bersama dengan derajat basis B-spline (kubik secara default dimboost
), lokasi simpul ini menentukan bentuk fungsi basis B-spline Anda. Default inmboost
adalah memiliki 20 knot interior, yang mendefinisikan 24 fungsi basis B-spline kubik (jangan tanya ...). Mari panggil fungsi-fungsi dasar ini . Efek dari kovariat Anda `` mean_radius`` diwakili hanya sebagai Ini adalah trik yang sangat rapi, karena mengurangi masalah sulit dalam memperkirakan fungsi tidak spesifik untuk masalah yang lebih sederhana dalam memperkirakan bobot regresi linierPrediksi tidak begitu rumit: Dengan perkiraan koefisien , kita perlu mengevaluasi untuk data prediksi . Untuk itu, yang kita butuhkan hanyalah lokasi simpul yang mendefinisikan fungsi dasar untuk data asli. Kami kemudian mendapatkan nilai prediksi sebagaiθ^j Bj(⋅);j=1,…,24 xnew
Karena boosting adalah prosedur berulang, koefisien yang diperkirakan pada berhenti iterasi sebenarnya adalah jumlah dari pembaruan koefisien dalam iterasi . Jika Anda benar-benar ingin menguasai detailnya, lihat output yang Anda dapatkanmstop 1,…,mstop
bbs(rnorm(100))$dpp(rep(1,100))$predict
,dan pergi menjelajah dari sana. Sebagai contoh,
with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), newX)
panggilan
with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), Xfun)
untuk mengevaluasi pada .Bj(⋅) xnew
sumber