Mgcv GAM modelinde yumuşatma nasıl ayarlanır


14

Bir mgcv: gam modelinde düzgünleştirme parametrelerini nasıl kontrol edeceğimizi anlamaya çalışıyorum.

Öncelikle sabit bir ızgarada x ve y koordinatlarının bir fonksiyonu olarak modellemeye çalıştığım bir binom değişkenim var, artı daha küçük etkileri olan diğer değişkenler. Geçmişte paket yerini ve sadece (x, y) değerlerini kullanarak oldukça iyi bir yerel regresyon modeli oluşturdum.

Ancak, diğer değişkenleri modele katmayı denemek istiyorum ve genelleştirilmiş katkı modelleri (GAM) iyi bir olasılık gibi görünüyordu. Her ikisi de GAM işlevine sahip olan gam ve mgcv paketlerine baktıktan sonra, posta listesi iş parçacıklarında bir dizi yorum tavsiye ettiği için ikincisini seçtim. Bir dezavantajı, loess veya locfit gibi daha pürüzsüz bir yerel regresyonu desteklemediği görülüyor.

Başlamak için, sadece (x, y) koordinatlarını kullanarak yaklaşık locfit modelini çoğaltmayı denemek istedim. Hem normal hem de tensör ürün düzeltmelerini denedim:

my.gam.te <- gam(z ~ te(x, y), family=binomial(logit), data=my.data, scale = -1)

my.gam.s  <- gam(z ~  s(x, y), family=binomial(logit), data=my.data, scale = -1)

Bununla birlikte, modelden tahminleri çizerken, locfit modeline kıyasla çok daha pürüzsüzdür. Bu yüzden modeli çok fazla aşmayacak şekilde ayarlamaya çalışıyorum. Sp ve k parametrelerini ayarlamayı denedim, ancak yumuşatmayı nasıl etkilediği net değil. Locfit'te, nn parametresi, kullanılan mahallenin açıklığını kontrol eder, daha küçük değerler daha az düzgünleştirme ve daha fazla "kıpırdatmaya" izin verir, bu da binom sonuçlarının olasılığının hızla değiştiği ızgaradaki bazı alanları yakalamaya yardımcı olur. Benzer şekilde davranmasını sağlamak için oyun modelini nasıl ayarlayabilirim?

Yanıtlar:


24

kBağımsız değişken etkili olarak her dönem için yumuşatma matrisinin boyutluluk kurar. gam()optimum düzeyde pürüzsüzlük seçmek için bir GCV veya UBRE skoru kullanıyor, ancak yalnızca düzeltme matrisinin boyutsallığı dahilinde çalışabiliyor. Varsayılan olarak, te()düzlemelerin k = 5^22d yüzeyleri vardır. Bunun ne olduğunu unutuyorum, s()bu yüzden belgeleri kontrol et. Simon Wood, yazarı güncel danışma mgcv , model tarafından seçilen düzgünlük derecesi olan veya yakın için kullanılan değer dayattığı boyutluluk sınırına eğer ki k, sen artmalıdır kve görmek için bir model takın bir daha karmaşık model, yüksek boyutlu yumuşatma matrisinden seçilir.

Ancak, locfit'in nasıl çalıştığını bilmiyorum , ancak bunları kullanmayı seçerseniz çok karmaşık bir yüzeye (GCV ve UBRE veya (RE) ML) uymanızı engelleyen bir şeye sahip olmanız gerekir. set scale = -1], bunu yapmaya çalışıyoruz), veriler tarafından desteklenmiyor. Başka bir deyişle, verilerin çok yerel özelliklerine sığdırabilirsiniz, ancak topladığınız veri örneğindeki paraziti mi yoksa olasılık dağılımının ortalamasını mı belirliyorsunuz? temel boyutsallığı (yukarıda) sıraladığınızı varsayarak, verilerinizden neyin tahmin edilebileceği hakkında bir şeyler söylüyor gam() olabilir .

Bakılması gereken başka bir şey, şu anda kullandığınız pürüzsüzleştiricilerin, seçilen pürüzsüzlüğün, tüm pürüzsüz ürün yelpazesine uygulanması anlamında küresel olmasıdır. Uyarlanabilir düzleştiriciler, verilen düzlük "payını" yanıtın hızla değiştiği kısımlarda harcayabilir. gam()uyarlanabilir düzleştirici kullanma yeteneklerine sahiptir.

Kullanarak nelerin takılabileceğini görün ?smooth.termsve görün . bu düzleştiricilerin tümü olmasa bile çoğunu birleştirebilir (tensör ürünlerine dahil edilebilecek ve eklenemeyen dokümanları kontrol edin), böylece verilerin, yanıt hızla değişiyor.?adaptive.smoothgam()te()

Şunu eklemeliyim ki, R fx = TRUEdeğişkenini s()ve ifadesini kullanarak düzgün bir terim tarafından kullanılan sabit bir serbestlik dereceleri kümesine sahip bir model tahmin edebilirsiniz te(). Temel olarak, ayarlanan k Ne istediğinizi ve olmaya fx = TRUEve gam()sadece özgürlük sabit derecelik bir cezalandırılmış regresyon eğri bir regresyon spline uyacaktır.


Çok detaylı bir cevap için çok teşekkürler Gavin. Uyarlanabilir düzleştiricileri tamamen kaçırdım ve onları deneyeceğim. Aşırı takma konusundaki endişeyi anlıyorum, ancak şu ana kadar gam ile yaptığım şey, alan uzmanlığı yoluyla orada olduğu bilinen verilerde özellikler göstermiyordu.
albay triq
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.