Tahmin için bir dizi araç araştırıyorum ve Genelleştirilmiş Katkı Modellerinin (GAM) bu amaç için en yüksek potansiyele sahip olduğunu gördüm. OYUNLAR harika! Karmaşık modellerin çok kısa bir şekilde belirlenmesine izin verirler. Bununla birlikte, aynı özlük bana, özellikle de GAM'ların etkileşim terimlerini ve ortak değişkenleri nasıl algıladıkları konusunda bazı karışıklıklara neden oluyor.
yBirkaç gaussian tarafından rahatsız edilen monoton bir fonksiyonun yanı sıra biraz gürültü olan bir örnek veri setini (post sonunda tekrarlanabilir kod) düşünün :
Veri kümesinin birkaç tahmin değişkeni vardır:
x: Verilerin dizini (1-100).w: Birygaussianın bulunduğu bölümleri belirten ikincil bir özellik . 1 ila 20 arasındadır,wburadax11 ila 30 ve 51 ila 70 arasındadır. Aksi takdirdew0'dır.w2:w + 1, böylece 0 değer olmaz.
R'nin mgcvpaketi, bu veriler için bir dizi olası modeli belirtmeyi kolaylaştırır:
Model 1 ve 2 oldukça sezgiseldir. Varsayılan pürüzsüzlükte yyalnızca indeks değerinden tahmin etmek xbelirsiz bir şekilde doğru, ama çok pürüzsüz bir şey üretir. Tahmin ysadece gelen wiçinde "ortalama Gauss" mevcut bir modelinde sonuç yve, her biri diğer veri noktaları, bir "duyarlılık" w0 değeri.
Model 3 kullanır hem xve wgüzel bir uyum üreten 1D yumuşatır gibi. Model 4, 2D pürüzsüz olarak kullanır xve wayrıca güzel bir uyum sağlar. Bu iki model aynı olmasa da çok benzer.
Model 5 modelleri x"by" w. Model 6 tam tersini yapar. mgcvdokümantasyonunda "by argümanı, düzgün işlevin ['by' argümanında verilen eşdeğişken] ile çarpılmasını sağlar. Öyleyse Model 5 ve 6 eşdeğer olmamalı mı?
Model 7 ve 8, öngörücülerden birini doğrusal bir terim olarak kullanır. Bunlar benim için sezgisel bir anlam taşıyor, çünkü bunlar sadece bir GLM'nin bu öngörücülerle ne yapacağını yapıyor ve daha sonra etkiyi modelin geri kalanına ekliyorlar.
Son olarak, Model 9, Model 5 ile aynıdır, ancak x"by" w2(ki w + 1) düzeltir . Burada garip olan şey, sıfırların yokluğunun w2"by" etkileşimi üzerinde oldukça farklı bir etki yaratmasıdır.
Yani, sorularım:
- Model 3 ve 4'teki özellikler arasındaki fark nedir? Farkı daha açık bir şekilde ortaya koyacak başka bir örnek var mı?
- Tam olarak, "by" burada ne yapıyor? Wood'un kitabında ve bu web sitesinde okuduğum şeylerin çoğu "by" ın çarpma etkisi oluşturduğunu, ancak sezgisini kavramakta güçlük çektiğimi gösteriyor.
- Model 5 ve 9 arasında neden bu kadar dikkate değer bir fark olsun ki?
Reprex, R ile yazılmıştı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)


