Các mô hình phụ gia tổng quát (GAM), tương tác và hiệp phương sai


12

Tôi đã khám phá một số công cụ để dự báo và đã tìm thấy Mô hình phụ gia tổng quát (GAM) có tiềm năng nhất cho mục đích này. GAM thật tuyệt! Chúng cho phép các mô hình phức tạp được chỉ định rất ngắn gọn. Tuy nhiên, chính sự cô đọng đó lại gây cho tôi một số nhầm lẫn, đặc biệt là về cách các GAM nghĩ về các thuật ngữ tương tác và hiệp phương sai.

Hãy xem xét một tập dữ liệu mẫu (mã có thể tái tạo ở cuối bài) trong đó ylà một hàm đơn điệu bị nhiễu bởi một vài gaussian, cộng với một số nhiễu:

nhập mô tả hình ảnh ở đây

Tập dữ liệu có một vài biến dự đoán:

  • x: Chỉ số của dữ liệu (1-100).
  • w: Một tính năng phụ đánh dấu các phần ycó gaussian hiện diện. wcó các giá trị từ 1-20 trong xkhoảng từ 11 đến 30 và 51 đến 70. Mặt khác,w là 0.
  • w2: w + 1, sao cho không có giá trị 0.

mgcvGói của R giúp dễ dàng chỉ định một số mô hình có thể có cho các dữ liệu này:

nhập mô tả hình ảnh ở đây

Mô hình 1 và 2 khá trực quan. yChỉ dự đoán từ giá trị chỉ số xở độ mịn mặc định sẽ tạo ra một cái gì đó mơ hồ chính xác, nhưng quá trơn tru. yChỉ dự đoán từ các wkết quả trong một mô hình "gaussian trung bình" có trongy và không có "nhận thức" về các điểm dữ liệu khác, tất cả đều có mộtw giá trị 0.

Model 3 sử dụng cả hai xwlàm mịn 1D, tạo ra một sự phù hợp tốt đẹp. Mô hình 4 sử dụng xw trong một 2D mượt mà, cũng cho một phù hợp tốt đẹp. Hai mô hình này rất giống nhau, mặc dù không giống nhau.

Mô hình 5 mô hình x"bởi" w. Mô hình 6 thì ngược lại.mgcvTài liệu của tuyên bố rằng "đối số theo đảm bảo rằng hàm trơn được nhân với [hiệp phương thức được đưa ra trong đối số 'by']". Vì vậy, mô hình 5 & 6 không nên tương đương?

Mô hình 7 và 8 sử dụng một trong các yếu tố dự đoán như một thuật ngữ tuyến tính. Chúng có ý nghĩa trực quan với tôi, vì chúng chỉ đơn giản là làm những gì GLM sẽ làm với các dự đoán này, và sau đó thêm hiệu ứng cho phần còn lại của mô hình.

Cuối cùng, Model 9 giống như Model 5, ngoại trừ xđược làm mịn "bởi" w2(đó là w + 1). Điều kỳ lạ với tôi ở đây là sự vắng mặt của số không trongw2 tạo ra hiệu ứng khác biệt đáng kể trong tương tác "bởi".

Vì vậy, câu hỏi của tôi là:

  • Sự khác biệt giữa các thông số kỹ thuật trong Mô hình 3 và 4 là gì? Có một số ví dụ khác sẽ rút ra sự khác biệt rõ ràng hơn?
  • Chính xác thì "bằng" làm gì ở đây? Phần lớn những gì tôi đã đọc trong cuốn sách của Wood và trang web này cho thấy rằng "bằng" tạo ra hiệu ứng nhân, nhưng tôi gặp khó khăn trong việc nắm bắt trực giác của nó.
  • Tại sao có sự khác biệt đáng chú ý như vậy giữa Mô hình 5 và 9?

Reprex theo sau, được viết bằng 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)

Ở đây có một chút chống đối xã hội đối với mọi người ở đây để sử dụng gói tidyverse như một sự phụ thuộc của reprex; Tôi sử dụng khá nhiều trong số các gói đó và tôi vẫn yêu cầu một lễ hội cài đặt chỉ để chạy mã của bạn. Tối thiểu , tức là chỉ liệt kê các gói cần thiết, sẽ hữu ích hơn. Điều đó nói rằng, cảm ơn cho reprex; Tôi chỉ đang chạy nó bây giờ
Phục hồi Monica - G. Simpson

Câu trả lời:


11

Q1 Sự khác biệt giữa mô hình 3 và 4 là gì?

Mô hình 3 là mô hình hoàn toàn phụ gia

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

αxw

Mô hình 4 là sự tương tác trơn tru của hai biến liên tục

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')

nhập mô tả hình ảnh ở đây

Theo một nghĩa nào đó, mô hình 4 là phù hợp

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

f3xwf3

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

nhưng lưu ý điều này ước tính 4 thông số độ mịn:

  1. x
  2. w
  3. x
  4. w

Các te()mô hình chỉ chứa hai tham số êm ái, mỗi cơ sở biên.

www2

Câu 2 Chính xác là "bằng cách" làm gì ở đây?

bybybywwx

y=α+f1(x)w+ε

xβ1wwxx

Câu hỏi 3 Tại sao có sự khác biệt đáng chú ý như vậy giữa Mô hình 5 và 9?

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

www


Đó là một câu trả lời hữu ích cho Q1, cảm ơn! Việc lựa chọn tổng số độ mịn 1D hoặc độ mịn 2D đơn có vẻ gần giống (một lần nữa, đại khái ) tương tự như hiệu ứng chính so với tương tác trong mô hình tuyến tính tiêu chuẩn. Nhưng điều này làm cho sự tồn tại của bytham số trở nên khó hiểu hơn.
jdobres

Tôi đã thêm một cái gì đó vào quý 2 bây giờ, hy vọng giải thích những gì các mô hình đó đang làm. Bây giờ tôi sẽ xem xét Q3.
Phục hồi Monica - G. Simpson

Tôi nghĩ rằng câu trả lời cho Q3 chỉ là một vấn đề đơn giản về số học tương tác với phần hệ số thay đổi của các mô hình trong 5 và 9.
Tái lập Monica - G. Simpson

Rất hữu ích! Để làm rõ Q2, bạn có nói rằng công cụ dự đoán được cung cấp trong đối số "by" về cơ bản trở thành một hệ số phụ cho kết quả của công cụ dự đoán được làm mịn không? Tôi nghi ngờ rằng trực giác của tôi là sai, vì nó sẽ dẫn đến Mô hình 5 trông tương tự như Mô hình 2.
jdobres

α+f1(w)α+f1(x)wwwxwwxw
Phục hồi Monica - G. Simpson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.