ตามปกติ:
p <- predict(mod, newdata, type = "link", se.fit = TRUE)
ทราบแล้วว่าp
มีส่วนประกอบที่มีข้อผิดพลาดมาตรฐานของการคาดการณ์สำหรับการสังเกตใน$se.fit
newdata
จากนั้นคุณสามารถสร้าง CI โดยการคูณ SE ด้วยค่าที่เหมาะสมกับระดับที่คุณต้องการ เช่นช่วงความมั่นใจโดยประมาณ 95% เกิดขึ้นเมื่อ:
upr <- p$fit + (2 * p$se.fit)
lwr <- p$fit - (2 * p$se.fit)
เสื้อ
โปรดทราบว่าฉันใช้type = "link"
เพราะคุณไม่ได้พูดว่าคุณมี GAM หรือแค่ AM ใน GAM คุณจะต้องสร้างช่วงความมั่นใจในระดับของเครื่องทำนายผลแบบเส้นตรงแล้วแปลงให้เป็นระดับของการตอบสนองโดยการใช้อินเวอร์สของฟังก์ชันลิงก์:
upr <- mod$family$linkinv(upr)
lwr <- mod$family$linkinv(lwr)
ตอนนี้โปรดทราบว่าสิ่งเหล่านี้เป็นช่วงเวลาที่ใกล้เคียงกันมาก นอกจากนี้ช่วงเวลาเหล่านี้เป็นจุดที่ชาญฉลาดเกี่ยวกับค่าที่คาดการณ์และพวกเขาไม่คำนึงถึงความจริงที่ว่าการเลือกความราบรื่นได้ดำเนินการ
สามารถคำนวณช่วงความเชื่อมั่นได้พร้อมกันผ่านการจำลองจากการกระจายหลังของพารามิเตอร์ ผมมีตัวอย่างของการที่บนของบล็อก
หากคุณต้องการช่วงความเชื่อมั่นที่ไม่ได้มีเงื่อนไขตามพารามิเตอร์การปรับให้เรียบ (เช่นหนึ่งที่คำนึงถึงที่เราไม่ทราบ แต่แทนที่จะประมาณค่าของพารามิเตอร์ความราบรื่น) แล้วเพิ่มunconditional = TRUE
การpredict()
โทร
นอกจากนี้หากคุณไม่ต้องการทำสิ่งนี้ด้วยตนเองโปรดทราบว่าmgcvรุ่นใหม่กว่ามีplot.gam()
ฟังก์ชันที่ส่งคืนออบเจ็กต์ที่มีข้อมูลทั้งหมดที่ใช้ในการสร้างพล็อตที่ราบรื่นและช่วงความมั่นใจ คุณสามารถบันทึกผลลัพธ์จากplot.gam()
ใน obj
obj <- plot(model, ....)
จากนั้นตรวจสอบobj
ซึ่งเป็นรายการที่มีหนึ่งองค์ประกอบต่อหนึ่งสมูท เพิ่มseWithMean = TRUE
ไปยังการplot()
โทรเพื่อรับช่วงความมั่นใจที่ไม่เป็นไปตามพารามิเตอร์ความราบรื่น