Spline / pürüzsüz regresyon ile yeni veriler nasıl tahmin edilir?


11

Bir model için düzleştirmeler / spline'lar kullanırken yeni veriler için tahminlerin nasıl yapıldığına dair kavramsal bir açıklama yapmaya yardımcı olabilir misiniz? Örneğin, kullanılarak oluşturulan bir model verilmiş gamboostiçinde mboostp-yivler ile, R paketin ne kadar yeni veri tahminleri yapılır? Eğitim verilerinden ne kullanılır?

Diyelim ki x bağımsız değişkeninin yeni bir değeri var ve biz y'yi tahmin etmek istiyoruz. Model oluştururken kullanılan knot veya df kullanılarak bu yeni veri değerine spline oluşturma formülü uygulandı ve daha sonra tahmini çıkarmak için eğitimli modeldeki katsayılar uygulandı mı?

İşte R ile bir örnek, yeni veriler için 899.4139 çıktısını kavramsal olarak yapmak için öngörülen şey nedir 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)

Soru: Bu enterpolasyon (alanın içi) veya ekstrapolasyon ile mi ilgili? Farklı işlem görürler. Ayrıca "temel" işlevine de çok bağımlıdırlar. Bir GLM'de bekleneceği gibi radyal bir temel fonksiyon, özellikle kuyrukların ötesinde, bazı yüksek (er) düzen polinomik bazlardan çok farklı bir davranışa sahip olacaktır.
EngrStudent

EngrStudent, her iki durumda da ne olduğunu kavramsal olarak anlamakla ilgileniyorum. Sürecin her iki durumda da aynı olduğunu (ancak sonuçların kullanılan temel işlevlere göre farklılık gösterdiğini ve farklılık gösterdiğini (ancak sürecin aynı olduğunu) varsaydım (belki de yanlış)
B_Miner

Polinom bazlarında bazen "Gibbs etkisi" olarak adlandırılan bir fenomen vardır. 10. sıra polinom gibi bir şeye standart normal dağılımın tek tip örnekleri olan verileri takarsanız ve daha sonra enterpolasyonun kalitesine bakarsanız, uçlarda eğimlerin yüksek ve enterpolasyonun çok zayıf olduğunu göreceksiniz. Polinom bazlarında, interpolanttan daha düşük dereceli bir ekstrapolant kullanmak gelenekseldir. Olayları tanımlayan "fizik" i bilmeden, ekstrapolantlar genellikle doğrusaldır. MatLab kullanıyorum: mathworks.com/help/matlab/ref/interp1.html .
EngrStudent

Yanıtlar:


10

Tahminin hesaplanma şekli şöyledir:

Orijinal uyumdan itibaren, mean_radiuseğitim verilerinizdeki düğüm noktalarına yayılmış düğüm konumlarınız vardır . B-spline temelinin derecesi (varsayılan olarak kübik olarak mboost) ile birlikte, bu düğüm konumları B-spline temel işlevlerinizin şeklini tanımlar. Varsayılan, mboost24 kübik B-spline temel fonksiyonunu tanımlayan 20 iç düğümün bulunmasıdır (sormayın ...). Bu temel işlevleri . İçin ortak değişken etkisi `` mean_radius`` olarak sadece temsil edilir bu tahmin sabit problemi azaltır, çünkü bu çok düzgün bir numara olduğunu belirtilmemiş fonksiyon lineer regresyon ağırlıklarını tahmin etmenin çok daha basit problemineBj(x);j=1,,24x=

f(x)=j24Bj(x)θj
f(x)θj sentetik ortak değişkenler .Bj(x)

Tahmin o kadar karmaşık değildir: Tahmin edilen katsayılar göz önüne alındığında , tahmin verileri için . Bunun için ihtiyacımız olan tek şey, orijinal veriler için temel fonksiyonları tanımlayan düğüm konumlarıdır. Daha sonra öngörülen değerleri θ^jx n e ağırlık f ( x , n , e ağırlık ) = 24 Σ j B j ( x , n , e w ) θ j .Bj();j=1,,24xnew

f^(xnew)=j24Bj(xnew)θ^j.

Arttırma yinelemeli bir prosedür olduğundan, stop iterasyonundaki tahmini katsayılar aslında iterasyonlarındaki katsayı güncellemelerinin toplamıdır . Ayrıntıları gerçekten kavramak istiyorsanız, elde ettiğiniz çıktıya bir göz atın 1 , , m s t o pmstop1,,mstop

bbs(rnorm(100))$dpp(rep(1,100))$predict,

ve oradan keşfetmeye gidin. Örneğin,

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), newX)

aramalar

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), Xfun)

üzerindeki değerini değerlendirmek için .x n e wBj()xnew


bu harika. Acaba bu işlevlerin ne yaptığını açıklamak ister misiniz? Yeni verileri "puanlamak" için gereken şeyin katsayılar, eğitim sırasında düğüm yerleri ve spline formülleri olduğu doğru mu? Yeni verilerin puanlanması için gerekli diğer eğitim verileri var mı (KNN modelinde olduğu gibi)?
B_Miner

1
Hangi bilgilere ihtiyaç duyduğunuz, kullandığınız spline tabanının türüne bağlıdır. B-kamaları için bilmeniz gereken tek şey B-kamalarının (kuadratik / kübik / vb.) Ve düğüm konumlarının sırasıdır. B-kamaları için "formül" bir özyineleme, Cox-de Boor özyineleme . Cevabıma yarım cümle ekledim.
fabians
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.