Genelleştirilmiş katkı modelleri (GAM'lar), etkileşimler ve ortak değişkenler


12

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 :

resim açıklamasını buraya girin

Veri kümesinin birkaç tahmin değişkeni vardır:

  • x: Verilerin dizini (1-100).
  • w: Bir ygaussianın bulunduğu bölümleri belirten ikincil bir özellik . 1 ila 20 arasındadır, wburada x11 ila 30 ve 51 ila 70 arasındadır. Aksi takdirde w0'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:

resim açıklamasını buraya girin

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)

Buradaki insanlar için tidyverse paketini reprex'e bağımlı olarak kullanmak biraz anti-sosyal ; Bu paketlerin birçoğunu kullanıyorum ve yine de sadece kodunuzu çalıştırmak için bir yükleme festivali gerekli. Minimal , yani sadece gerekli paketleri listelemek daha yararlı olurdu. Bununla birlikte, reprex için teşekkürler; Sadece şimdi çalıştırıyorum
Monica'yı eski durumuna getirin - G. Simpson

Yanıtlar:


11

S1 3 ve 4 modelleri arasındaki fark nedir?

Model 3 tamamen ilave bir modeldir

y=α+f1(x)+f2(w)+ε

αxw

Model 4, iki sürekli değişkenin düzgün bir etkileşimidir

y=α+f1(x,w)+ε

wxxwf1(x)predict()xwtype = 'terms'predict()s(x)

xw

xwte()

m4a <- gam(y ~ te(x, w), data = data.ex, method = 'REML')

pdata <- mutate(data.ex, Fittedm4a = predict(m4a))
ggplot(pdata, aes(x = x, y = y)) +
  geom_point() +
  geom_line(aes(y = Fittedm4a), col = 'red')

resim açıklamasını buraya girin

Bir anlamda, model 4 uygun

y=α+f1(x)+f2(w)+f3(x,w)+ε

f3xwf3

m4b <- gam(y ~ ti(x) + ti(w) + ti(x, w), data = data.ex, method = 'REML')

ancak bunun 4 düzgünlük parametresini tahmin ettiğini unutmayın:

  1. ana pürüzsüz etkisi ile ilişkili olanx
  2. ana pürüzsüz etkisi ile ilişkili olanw
  3. x
  4. w

te()Modeli sadece iki düzgünlük parametreleri, marjinal bazda başına bir tane içeriyor.

www2

S2 "by" tam olarak burada ne yapıyor?

bybybywwx

y=α+f1(x)w+ε

xβ1wwxx

S3 5. ve 9. Modeller arasında neden bu kadar dikkate değer bir fark olsun ki?

f1(x)wf1(x)×0=0f1(x)×1=f1(x)wf1(x)w

www


Bu 1. çeyreğe yararlı bir cevap, teşekkürler! 1D pürüzsüz veya tek bir 2D pürüzsüz toplamlarının seçimi, standart doğrusal modellemedeki etkileşimlere ve ana etkilere kabaca (tekrar, kabaca ) benzer görünüyor . Ancak bu, byparametrenin varlığını daha da şaşırtıcı hale getirir .
jdobres

Şimdi Q2'ye bir şeyler ekledim, umarım bu modellerin ne yaptığını açıklar. Şimdi üçüncü çeyreğe bakacağım.
Monica'yı eski durumuna getirin - G. Simpson

Ben Q3 cevabı ile aritmetik etkilesmeyen sadece basit bir mesele olduğunu düşünüyorum 5. ve 9. modellerin değiştirilmesi,-katsayı parçası
G. Simpson - Eski Monica

Çok yararlı! İkinci çeyreği açıklığa kavuşturmak için, "by" argümanında sağlanan öngörücünün, yumuşatılmış öngörücünün sonucu için esasen ekstra bir katsayı haline geldiğini mi söylüyorsunuz? Model 5'in Model 2'ye benzemesine yol açacağı için
sezgimin

α+f1(w)α+f1(x)wwwxwwxw
Monica - G. Simpson
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.