Adaptive GAM ทำให้เรียบเป็น mgcv


9

หนังสือของ Simon Wood เกี่ยวกับ GAMs และแพ็คเกจ R ที่เกี่ยวข้อง mgcv นั้นมีทั้งรายละเอียดสูงและให้ข้อมูลเมื่อพูดถึงทฤษฎี GAM และการปรับโมเดลให้เหมาะสมกับข้อมูลจริงและจำลอง

สำหรับสมูทต์ 1D นั้นไม่ต้องกังวลมากนักประหยัดสำหรับการตัดสินใจว่าจะใช้ฟังก์ชั่นแบบวัฏจักรเทียบกับแบบปรับตัวได้หรือไม่ซึ่งสามารถให้ผลการทำนายที่แตกต่างกันมากเมื่อเทียบกับลูกบาศก์, แผ่นบางและ P-spline กรณีที่ปรับตัวได้เกมหลายเกมมีการติดตั้งไปยังภูมิภาคต่างๆตามแนวโค้ง เท่าที่ฉันสามารถบอกได้ว่าฐานวงจรเป็นเรื่องธรรมดาในการสร้างแบบจำลองอนุกรมเวลาในขณะที่การปรับให้เรียบแบบปรับได้นั้นควรได้รับการพิจารณาเมื่อข้อมูลมีความหลากหลายมากเมื่อเทียบกับตัวแปรตอบสนอง แม้กระนั้นการปรับตัวให้ราบรื่นควรใช้ "เท่าที่จำเป็นและด้วยความระมัดระวัง"

ฉันได้รับการตรวจสอบเกมมาระยะหนึ่งแล้วและเมื่อถามคำถามการวิจัยของฉันฉันพบว่าตัวเองเปลี่ยนใจได้มากเมื่อพูดถึงเรื่องการใช้งานที่ราบรื่น mgcv มี 17 smooths ที่แตกต่างกันให้เลือก (โดยการนับของฉัน) ฉันได้พิจารณาทั้งลูกบาศก์และ P-spline ให้เรียบ

คำถามของฉันคือ : เมื่อใดควรพิจารณาความราบรื่นในการปรับตัวเมื่อพิจารณาจากคู่ที่ไม่ได้ปรับตัวถ้าเป้าหมายท้ายที่สุดคือการใช้ GAMs ที่พอดีเพื่อการคาดการณ์? สำหรับวัตถุประสงค์ของฉันฉันกำลังยึดติดกับเกณฑ์ความราบรื่น GCV เริ่มต้นแม้ว่ามันจะมีแนวโน้มที่จะไม่ราบรื่น

วรรณกรรมกำลังเติบโตขึ้นใน GAMs เชิงนิเวศน์ประยุกต์ แต่ฉันยังไม่เจอการศึกษาที่ใช้การปรับตัวที่ราบรื่น

คำแนะนำใด ๆ ที่ชื่นชม

คำตอบ:


20

ส่วนใหญ่ของ smooths พิเศษในกล่องเครื่องมือmgcvนั้นมีอยู่จริงสำหรับแอปพลิเคชันมืออาชีพ - คุณสามารถเพิกเฉยต่อเกมทั่วไปได้โดยเฉพาะอย่างยิ่งโดยเฉพาะอย่างยิ่ง univariate smooths (คุณไม่จำเป็นต้องมีเอฟเฟกต์สุ่มแบบสุ่ม หรือฟิล์มสบู่เรียบขึ้นหากคุณมีข้อมูลที่ไม่แปรเปลี่ยนเช่นกัน)

หากคุณสามารถแบกรับค่าใช้จ่ายในการติดตั้งให้ใช้แผ่นโค้งการถดถอยแบบบางแผ่น (TPRS)

เส้นโค้งเหล่านี้มีความเหมาะสมที่สุดในความรู้สึกเชิงเส้นเอ็นเซมโทติก แต่ต้องการฟังก์ชั่นพื้นฐานหนึ่งอย่างต่อการสังเกต สิ่งที่ Simon ทำในmgcvคือการสร้างเวอร์ชันมาตรฐานต่ำของ TPRS มาตรฐานโดยใช้พื้นฐาน TPRS เต็มรูปแบบและทำให้เป็นมาตรฐาน สิ่งนี้จะสร้างพื้นฐานใหม่ที่kฟังก์ชันพื้นฐานอันดับแรกในพื้นที่ใหม่จะรักษาสัญญาณส่วนใหญ่ในแบบดั้งเดิม แต่ในฟังก์ชั่นพื้นฐานที่น้อยลงจำนวนมาก นี่คือวิธีที่mgcvจัดการเพื่อรับ TPRS ที่ใช้เฉพาะฟังก์ชันพื้นฐานที่ระบุจำนวนมากกว่าหนึ่งรายการต่อการสังเกต eigendecomposition นี้จะรักษาความได้เปรียบสูงสุดของพื้นฐาน TPRS แบบคลาสสิก แต่ก็มีความพยายามในการคำนวณอย่างมากสำหรับชุดข้อมูลขนาดใหญ่

หากคุณไม่สามารถแบกรับต้นทุนการติดตั้งของ TPRS ได้ให้ใช้ splines ถดถอยแบบลูกบาศก์ (CRS)

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

อื่น ๆ ที่ราบรื่นในmgcvเป็นพิเศษถูกนำมาใช้ในกรณีที่คุณต้องการ isotropic smooths หรือสองหรือมากกว่า covariates หรือสำหรับการทำให้ราบเรียบเชิงพื้นที่หรือที่ใช้การหดตัวหรือผลกระทบแบบสุ่มและเส้นโค้งสุ่มหรือที่ covariates เป็นวงจรหรือความแตกต่างกันไป ช่วงของความแปรปรวนร่วม คุณเพียงแค่ต้องเอาสิ่งนี้ไปไว้ในกล่องเครื่องมือที่ราบรื่นหากคุณมีปัญหาที่ต้องใช้การจัดการแบบพิเศษ

การหดตัว

มีรุ่นการหดตัวของทั้งสอง tprs และ CRS ในมีmgcv สิ่งเหล่านี้นำมาใช้เป็นเส้นโค้งที่ส่วนที่ราบรื่นอย่างสมบูรณ์แบบของพื้นฐานยังอาจได้รับการลงโทษอย่างราบรื่น วิธีนี้ช่วยให้กระบวนการเลือกความนุ่มนวลลดความนุ่มนวลกลับคืนแม้กระทั่งฟังก์ชั่นเชิงเส้นเป็นศูนย์ สิ่งนี้จะช่วยให้การปรับความนุ่มนวลยังสามารถเลือกคุณสมบัติได้

Duchon splines, P Splines และ B Splines

เส้นโค้งเหล่านี้พร้อมใช้งานสำหรับแอปพลิเคชันเฉพาะทางที่คุณต้องระบุคำสั่งพื้นฐานและคำสั่งลงโทษแยกต่างหาก Duchon splines พูดคุยกับ TPRS ฉันได้รับความประทับใจว่า P splines ถูกเพิ่มเข้าไปในmgcvเพื่อให้สามารถเปรียบเทียบกับวิธีการที่ใช้โอกาสในการลงโทษอื่น ๆ และเนื่องจากเป็นเส้นโค้งที่ใช้โดย Eilers & Marx ในบทความ 1996 ของพวกเขาซึ่งกระตุ้นงานที่ตามมาจำนวนมากใน GAMs เส้นโค้ง P ยังมีประโยชน์ในฐานะที่เป็นฐานสำหรับเส้นโค้งอื่น ๆ เช่นเส้นโค้งที่มีข้อ จำกัด ด้านรูปร่างและเส้นโค้งแบบปรับได้

B splines ดังที่มีการใช้งานในmgcvช่วยให้มีความยืดหยุ่นอย่างมากในการตั้งค่าการปรับและ knots สำหรับ splines ซึ่งสามารถอนุญาตให้มีการประมาณค่าเกินขอบเขตของข้อมูลที่สังเกตได้

เส้นโค้งวงกลม

หากช่วงของค่าสำหรับ covariate สามารถคิดได้ว่าเป็นวงกลมที่จุดสิ้นสุดของช่วงนั้นควรจะเท่ากันจริง ๆ (เดือนหรือวันของปีมุมของการเคลื่อนไหวมุมกว้างทิศทางลม) ข้อ จำกัด นี้สามารถกำหนดได้ พื้นฐาน. หากคุณมีโควาเรียต์เช่นนี้คุณควรกำหนดข้อ จำกัด นี้

ปรับให้เรียบขึ้น

แทนที่จะพอดีกับเกมแยกในส่วนของ covariate splines ที่ปรับตัวใช้เมทริกซ์การลงโทษที่ถ่วงน้ำหนัก สำหรับ TPRS และ CRS splines จะถือว่าระดับความเรียบเท่ากันตลอดช่วงของ covariate หากคุณมีความสัมพันธ์ที่ไม่เป็นเช่นนั้นคุณสามารถใช้ความอิสระได้มากกว่าที่คาดไว้เพื่อให้อิสระในการปรับตัวเข้ากับส่วนที่ไม่มั่นคงและไม่ลื่น ตัวอย่างคลาสสิกในวรรณคดีที่ราบเรียบคือ

library('ggplot2')
theme_set(theme_bw())
library('mgcv')
data(mcycle, package = 'MASS')
pdata <- with(mcycle,
              data.frame(times = seq(min(times), max(times), length = 500)))

ggplot(mcycle, aes(x = times, y = accel)) + geom_point()

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

ข้อมูลเหล่านี้แสดงให้เห็นถึงช่วงเวลาของความนุ่มนวลที่แตกต่างกันอย่างชัดเจน - มีประสิทธิภาพเป็นศูนย์สำหรับส่วนแรกของซีรีส์ซึ่งมีจำนวนมากระหว่างการกระแทกลดลงหลังจากนั้น

ถ้าเราพอดีกับ GAM มาตรฐานกับข้อมูลเหล่านี้

m1 <- gam(accel ~ s(times, k = 20), data = mcycle, method = 'REML')

เราได้รับแบบที่สมเหตุสมผล แต่มีความบางพิเศษที่จุดเริ่มต้นและจุดสิ้นสุดของช่วงtimesและแบบที่ใช้ ~ 14 องศาอิสระ

plot(m1, scheme = 1, residuals = TRUE, pch= 16)

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

เพื่อรองรับความหลากหลายของวิกผมความโค้งงอที่ปรับได้นั้นใช้เมทริกซ์การลงโทษแบบถ่วงน้ำหนักพร้อมกับน้ำหนักที่แปรผันได้อย่างราบรื่นด้วย covariate ที่นี่ฉันปรับโฉมโมเดลดั้งเดิมด้วยขนาดพื้นฐานเดียวกัน (k = 20) แต่ตอนนี้เรามีพารามิเตอร์ความราบรื่น 5 ค่า (ค่าเริ่มต้นคือm = 5) แทนที่จะเป็น 1 ดั้งเดิม

m2 <- gam(accel ~ s(times, k = 20, bs = 'ad'), data = mcycle, method = 'REML')

ขอให้สังเกตว่ารุ่นนี้ใช้องศาอิสระน้อยกว่า (~ 8) และการติดตั้งที่ราบรื่นนั้นจะลดลงเล็กน้อยในตอนท้ายในขณะที่ยังคงสามารถปรับให้เข้ากับการเปลี่ยนแปลงขนาดใหญ่ของการเร่งความเร็วของศีรษะในระหว่างการกระแทกได้อย่างเพียงพอ

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

สิ่งที่เกิดขึ้นจริงที่นี่คือเส้นโค้งมีพื้นฐานสำหรับความราบรื่นและพื้นฐานสำหรับการลงโทษ (เพื่อให้น้ำหนักแตกต่างกันอย่างราบรื่นด้วย covariate) โดยค่าเริ่มต้นทั้งสองเหล่านี้เป็นเส้นโค้ง P แต่คุณยังสามารถใช้ประเภทพื้นฐานจำมากเกินไป ( bsเพียงสามารถเป็นหนึ่ง'ps', 'cr', 'cc', 'cs'.)

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


1
ขอบคุณกาวิน! นี่เป็นคำตอบที่ยอดเยี่ยมจริง ๆ ที่ฉันคิดว่าจะช่วยผู้อื่นด้วยความกังวลเดียวกัน
compbiostats

สำหรับปัญหาของฉันฉันพอดีกับเส้นโค้งที่เพิ่มขึ้นแบบโมโนโทนิกซึ่งท้ายที่สุดก็ตรงกับเส้นกำกับแนวนอน ที่จุดเริ่มต้นของเส้นโค้งของฉันข้อมูลเพิ่มขึ้นอย่างรวดเร็วก่อนที่จะช้าลงไปสู่เส้นกำกับ ในบางกรณีการคาดการณ์ (ใกล้ / ไกล) เกินช่วงของข้อมูลที่สังเกตได้นั้นเป็นสิ่งจำเป็น แบบจำลองของฉันง่ายมาก แต่ฉันรู้ว่าการคาดการณ์ที่นี่เป็นการเก็งกำไรที่ดีที่สุด
compbiostats
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.