โมเดลสารเติมแต่งทั่วไป (GAMs), การโต้ตอบและ covariates


12

ฉันสำรวจเครื่องมือจำนวนหนึ่งเพื่อการคาดการณ์และพบว่าแบบจำลองการเติมทั่วไป (เกม) เพื่อให้มีศักยภาพมากที่สุดสำหรับจุดประสงค์นี้ เกมยอดเยี่ยม! พวกเขาอนุญาตให้ระบุแบบจำลองที่ซับซ้อนอย่างรัดกุม อย่างไรก็ตามความกระชับแบบเดียวกันนั้นทำให้ฉันสับสนโดยเฉพาะอย่างยิ่งในเรื่องที่ว่า GAMs เข้าใจถึงเงื่อนไขการมีปฏิสัมพันธ์และเพื่อนร่วมรัฐอย่างไร

ลองพิจารณาชุดข้อมูลตัวอย่าง (โค้ดที่ทำซ้ำได้เมื่อสิ้นสุดการโพสต์) ซึ่งyเป็นฟังก์ชั่นแบบโมโนโทนิกที่รบกวนโดย gaussians สองคู่พร้อมเสียงรบกวน:

ป้อนคำอธิบายรูปภาพที่นี่

ชุดข้อมูลมีตัวแปรตัวทำนายบางอย่าง:

  • x: ดัชนีของข้อมูล (1-100)
  • w: คุณลักษณะรองที่ทำเครื่องหมายส่วนต่างๆของyที่ซึ่งมีเกาส์เซียนอยู่ wมีค่า 1-20 โดยxอยู่ระหว่าง 11 ถึง 30 และ 51 ถึง 70 มิฉะนั้นwเท่ากับ 0
  • w2: w + 1เพื่อที่จะไม่มีค่า 0

mgcvแพ็คเกจของ R ทำให้ง่ายต่อการระบุจำนวนโมเดลที่เป็นไปได้สำหรับข้อมูลเหล่านี้:

ป้อนคำอธิบายรูปภาพที่นี่

โมเดล 1 และ 2 นั้นใช้งานง่าย การคาดการณ์yเฉพาะจากค่าดัชนีในxที่ความเรียบเริ่มต้นสร้างสิ่งที่ถูกต้องราง แต่เรียบเกินไป การคาดการณ์yจากwผลลัพธ์ในรูปแบบของ "เฉลี่ย gaussian" ที่มีอยู่yและไม่มี "การรับรู้" ของจุดข้อมูลอื่น ๆ ซึ่งทั้งหมดมีwค่า 0

แบบจำลอง 3 ใช้ทั้งแบบเรียบxและแบบw1D ทำให้พอดีได้ดี การใช้งานรุ่น 4 xและwในแบบ 2D เรียบลื่นยังให้ความพอดี ทั้งสองรุ่นมีความคล้ายคลึงกันมาก แต่ไม่เหมือนกัน

รูปแบบ 5 รุ่น"โดย"x wรุ่น 6 ทำในสิ่งที่ตรงกันข้าม mgcvเอกสารของระบุว่า "การโต้แย้งทำให้แน่ใจว่าฟังก์ชันที่ราบรื่นจะได้รับการคูณด้วย [ค่า covariate ที่ระบุในอาร์กิวเมนต์ 'by']" ดังนั้นโมเดล 5 และ 6 จึงไม่ควรเทียบเท่ากัน?

แบบจำลองที่ 7 และ 8 ใช้ตัวทำนายอย่างใดอย่างหนึ่งเป็นคำเชิงเส้น สิ่งเหล่านี้เหมาะสมกับฉันในขณะที่พวกเขากำลังทำสิ่งที่ GLM จะทำกับตัวทำนายเหล่านี้แล้วเพิ่มเอฟเฟกต์ให้กับส่วนที่เหลือของโมเดล

สุดท้ายรุ่น 9 จะเหมือนกับรุ่น 5 ยกเว้นว่าxจะราบรื่น "โดย" w2(ซึ่งก็คือw + 1) สิ่งที่แปลกสำหรับฉันที่นี่คือการขาดศูนย์ในการw2สร้างผลกระทบที่แตกต่างกันอย่างน่าทึ่งในการโต้ตอบ "โดย"

ดังนั้นคำถามของฉันคือ:

  • ความแตกต่างระหว่างข้อกำหนดในรุ่น 3 และ 4 คืออะไร? มีตัวอย่างอื่นอีกไหมที่จะดึงความแตกต่างให้ชัดเจนยิ่งขึ้น?
  • อะไรคือ "โดย" ทำที่นี่? สิ่งที่ฉันได้อ่านในหนังสือของวู้ดและเว็บไซต์นี้แสดงให้เห็นว่า "โดย" ก่อให้เกิดเอฟเฟกต์คูณ แต่ฉันมีปัญหาในการเข้าใจสัญชาตญาณของมัน
  • เหตุใดจึงมีความแตกต่างที่น่าทึ่งระหว่างรุ่น 5 และ 9

Reprex ติดตามเขียนใน 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)

มันเป็นการต่อต้านสังคมเล็กน้อยสำหรับคนที่นี่เพื่อใช้แพ็คเกจtidyverseเป็นการพึ่งพาของ reprex ฉันใช้แพคเกจเหล่านั้นค่อนข้างน้อยและฉันก็ยังต้องการติดตั้ง fest เพียงเพื่อเรียกใช้รหัสของคุณ น้อยที่สุดคือการแสดงรายการแพ็คเกจที่จำเป็นเท่านั้นจะมีประโยชน์มากกว่า ที่กล่าวว่าขอบคุณสำหรับ reprex; ฉันแค่เรียกใช้ตอนนี้
Reinstate Monica - G. Simpson

คำตอบ:


11

Q1 อะไรคือความแตกต่างระหว่างรุ่น 3 และ 4?

รุ่น 3 เป็นรูปแบบการเติมแต่งอย่างหมดจด

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

เพื่อให้เรามีอย่างต่อเนื่องบวกผลที่ราบรื่นของบวกผลที่ราบรื่นของWαxw

Model 4 เป็นการโต้ตอบที่ราบรื่นของตัวแปรสองตัวต่อเนื่อง

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

ในความเป็นจริงแล้ว Model 3 บอกว่าไม่ว่าผลของเช่นไรผลของต่อการตอบสนองก็เหมือนกัน ถ้าเราแก้ไขค่าตามค่าที่ทราบและเปลี่ยนค่าในบางช่วงการสนับสนุนจากไปยังโมเดลที่ติดตั้งยังคงเหมือนเดิม ตรวจสอบนี้ถ้าคุณต้องการโดยจากรุ่น 3 สำหรับค่าคงที่และค่าที่แตกต่างกันไม่กี่และใช้อาร์กิวเมนต์ของวิธีการ คุณจะเห็นผลงานอย่างต่อเนื่องเพื่อติดตั้ง / ค่าที่คาดการณ์ไว้สำหรับwxxwf1(x)predict()xwtype = 'terms'predict()s(x)

นี่ไม่ใช่กรณีของรุ่น 4 แบบจำลองนี้บอกว่าเอฟเฟกต์ที่ราบรื่นของแปรผันตามค่าของและในทางกลับกัน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')

ป้อนคำอธิบายรูปภาพที่นี่

ในแง่หนึ่งโมเดล 4 นั้นเหมาะสม

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

ที่เป็นปฏิสัมพันธ์เรียบบริสุทธิ์ของ "หลัก" เรียบผลกระทบของและและที่ได้ถูกลบออกเพื่อประโยชน์ของ identifiability จากพื้นฐานของf_3คุณสามารถรับโมเดลนี้ผ่านf3xwf3

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

แต่โปรดทราบว่านี่เป็นการประมาณค่าพารามิเตอร์ความเรียบ 4 ค่า:

  1. อันที่เกี่ยวข้องกับเอฟเฟกต์หลักอย่างราบรื่นของx
  2. อันที่เกี่ยวข้องกับเอฟเฟกต์หลักอย่างราบรื่นของw
  3. หนึ่งที่เกี่ยวข้องกับขอบเรียบของในผลิตภัณฑ์ปฏิสัมพันธ์เมตริกซ์เรียบx
  4. หนึ่งที่เกี่ยวข้องกับขอบเรียบของในผลิตภัณฑ์ปฏิสัมพันธ์เมตริกซ์เรียบw

ตัวte()แบบประกอบด้วยพารามิเตอร์ความราบรื่นเพียงสองรายการต่อหนึ่งส่วนล่าง

ปัญหาพื้นฐานของโมเดลเหล่านี้ทั้งหมดคือเอฟเฟ็กต์ของไม่ราบรื่นอย่างแน่นอน มีความไม่ต่อเนื่องเมื่อเอฟเฟกต์ของลดลงเหลือ 0 (หรือ 1 นิ้ว) นี่คือการแสดงในแผนการของคุณ (และสิ่งที่ฉันแสดงในรายละเอียดที่นี่)www2

Q2 อะไรคือสิ่งที่ "โดย" ทำที่นี่?

byตัวแปรที่ราบเรียบสามารถทำสิ่งต่าง ๆ ได้หลายอย่างขึ้นอยู่กับสิ่งที่คุณส่งผ่านไปยังการbyโต้แย้ง ในตัวอย่างของคุณbyตัวแปรนั้นต่อเนื่อง ในกรณีนั้นสิ่งที่คุณได้รับแบบจำลองสัมประสิทธิ์ที่แตกต่างกัน นี้เป็นรุ่นที่มีผลเชิงเส้นของแตกต่างกันไปได้อย่างราบรื่นด้วยxในสมการนี่คือสิ่งที่คุณพูดรุ่น 5 กำลังทำอยู่wwx

y=α+f1(x)w+ε

หากนี่ไม่ชัดเจนในทันที (สำหรับฉันเมื่อฉันดูที่โมเดลเหล่านี้เป็นครั้งแรก) สำหรับบางค่าที่กำหนดของเราจะประเมินฟังก์ชันที่ราบรื่นที่ค่านี้และนี่จะกลายเป็นสิ่งเทียบเท่า ; ในคำอื่น ๆ ก็เป็นผลเชิงเส้นของมูลค่าที่กำหนดของและผลกระทบเชิงเส้นเหล่านั้นแตกต่างกันไปได้อย่างราบรื่นด้วยxดูหัวข้อ 7.5.3 ในหนังสือ Simon ฉบับที่สองสำหรับตัวอย่างที่เป็นรูปธรรมซึ่งเอฟเฟกต์เชิงเส้นของ covariate นั้นมีฟังก์ชั่นการเว้นวรรคที่ราบรื่น (lat และ long)xβ1wwxx

Q3 เหตุใดจึงมีความแตกต่างที่โดดเด่นระหว่างรุ่น 5 และ 9

ความแตกต่างระหว่างรุ่น 5 และ 9 ฉันคิดว่าเป็นเพราะการคูณด้วย 0 หรือคูณด้วย 1 กับอดีตผลของคำศัพท์เฉพาะในรุ่นคือ 0 เพราะ . ในรูปแบบที่ 9 คุณมีในพื้นที่เหล่านั้นที่มีผลงานจาก Gaussians ของไม่มีWในฐานะที่เป็นเป็นฟังก์ชั่น ~ ชี้แจงคุณได้รับนี้ซ้อนทับกับผลกระทบโดยรวมของWf1(x)wf1(x)×0=0f1(x)×1=f1(x)wf1(x)w

กล่าวอีกนัยหนึ่งแบบ 5 มีแนวโน้มเป็นศูนย์ทุกแห่งที่คือ 0 แต่รุ่น 9 รวมถึง ~ แนวโน้มเลขชี้กำลังทุกแห่งที่คือ 0 (1) ซึ่งมีค่าสัมประสิทธิ์ผลต่าง ๆ ของถูกทับwww


นั่นเป็นคำตอบที่เป็นประโยชน์สำหรับไตรมาสที่ 1 ขอบคุณ! ทางเลือกของผลรวมของ 1D แบบเรียบหรือแบบ 2D เดียวดูเหมือนจะหยาบ (อีกครั้ง, คร่าวๆ ) คล้ายกับเอฟเฟกต์หลักเทียบกับการโต้ตอบในการสร้างแบบจำลองเชิงเส้นมาตรฐาน แต่สิ่งนี้ทำให้การมีอยู่ของbyพารามิเตอร์ยิ่งน่างง
jdobres

ฉันได้เพิ่มบางอย่างใน Q2 ตอนนี้ซึ่งหวังว่าจะอธิบายว่าแบบจำลองเหล่านั้นกำลังทำอะไร ฉันจะดู Q3 ตอนนี้
Reinstate Monica - G. Simpson

ฉันคิดว่าคำตอบในไตรมาสที่ 3 เป็นเพียงปัญหาทางคณิตศาสตร์ที่โต้ตอบกับสิ่งที่ส่วนต่าง ๆ ของสัมประสิทธิ์ในรุ่นที่ 5 และ 9
Reinstate Monica - G. Simpson

มีประโยชน์มาก! ในการชี้แจง Q2 คุณกำลังบอกว่าตัวทำนายที่ให้ไว้ในอาร์กิวเมนต์ "โดย" จะกลายเป็นสัมประสิทธิ์พิเศษสำหรับผลลัพธ์ของตัวทำนายที่ราบเรียบหรือไม่ ฉันสงสัยว่าสัญชาตญาณของฉันผิดเพราะมันควรนำไปสู่รุ่น 5 ที่ดูคล้ายกับรุ่น 2
jdobres

ใน M2 คุณมีและ M5 คุณมีอดีตเป็นที่ราบรื่นของหลังกล่าวว่าผลกระทบเชิงเส้นของแตกต่างกันเป็นฟังก์ชั่นที่ราบรื่นของxสิ่งเหล่านี้ค่อนข้างแตกต่างกัน แจ้งให้ทราบว่าใน 5 ผลของเป็นเชิงเส้น (ไม่มีการลดลงเมื่อ > 10) แต่เป็นเส้นตรงที่มีการแก้ไขได้อย่างราบรื่นผ่านxใน M2 คุณมีผิวเรียบผลของWα + F 1 ( x ) W W W x W W x Wα+f1(w)α+f1(x)wwwxwwxw
Reinstate Monica - G. Simpson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.