วิธีการทำนายข้อมูลใหม่ด้วยการถดถอยอิสระ


11

ใครสามารถช่วยอธิบายแนวคิดเกี่ยวกับวิธีการคาดการณ์สำหรับข้อมูลใหม่เมื่อใช้แบบเรียบ / เส้นโค้งสำหรับแบบจำลองการทำนายได้หรือไม่ ตัวอย่างเช่นเมื่อสร้างแบบจำลองที่ใช้gamboostในmboostแพ็คเกจใน R ด้วย p-splines การคาดการณ์สำหรับข้อมูลใหม่ทำอย่างไร ข้อมูลอะไรที่ใช้ในการฝึกอบรม?

สมมติว่ามีค่าใหม่ของตัวแปรอิสระ x และเราต้องการทำนาย y สูตรสำหรับการสร้างอิสระถูกนำไปใช้กับค่าข้อมูลใหม่นี้โดยใช้ knots หรือ df ที่ใช้เมื่อทำการฝึกอบรมรูปแบบแล้วค่าสัมประสิทธิ์จากแบบจำลองที่ผ่านการฝึกอบรมจะถูกนำไปใช้ในการทำนายผลลัพธ์หรือไม่?

นี่คือตัวอย่างของ R สิ่งที่คาดการณ์ว่าจะทำให้เกิดแนวคิดในการแสดงผล 899.4139 สำหรับข้อมูลใหม่ mean_radius = 15.99

#take the data wpbc as example
library(mboost)
data(wpbc)

modNew<-gamboost(mean_area~mean_radius, data = wpbc, baselearner = "bbs", dfbase = 4, family=Gaussian(),control = boost_control(mstop = 5))
test<-data.frame(mean_radius=15.99)
predict(modNew,test)

คำถาม: สิ่งนี้เกี่ยวกับการแก้ไข (ภายในโดเมน) หรือการประมาณค่าหรือไม่? พวกเขาจัดการแตกต่างกัน พวกเขายังขึ้นอยู่กับฟังก์ชั่น "พื้นฐาน" ฟังก์ชั่นพื้นฐานในแนวรัศมีจะคาดหวังใน GLM จะมีพฤติกรรมที่แตกต่างกันอย่างมีนัยสำคัญโดยเฉพาะอย่างยิ่งนอกเหนือจากก้อยกว่าบางส่วน (พหุนาม) คำสั่งพื้นฐานพหุนามสูง
EngrStudent

EngrStudent ฉันสนใจที่จะเข้าใจแนวคิดว่าเกิดอะไรขึ้นในทั้งสองกรณี ฉันสันนิษฐาน (อาจไม่ถูกต้อง) ว่ากระบวนการเหมือนกันในทั้งสองกรณี แต่ค่าผลลัพธ์ต่างกันและแตกต่างกันตามฟังก์ชั่นพื้นฐานที่ใช้ (แต่กระบวนการนั้นเหมือนกัน)
B_Miner

ในฐานพหุนามมีปรากฏการณ์บางครั้งเรียกว่า "ผลกิ๊บส์" ถ้าคุณใส่ข้อมูลที่เป็นตัวอย่างสม่ำเสมอของการแจกแจงแบบปกติมาตรฐานกับพหุนามลำดับที่ 10 จากนั้นดูคุณภาพของการแก้ไขคุณจะเห็นว่าที่ปลายเนินลาดสูงและการแก้ไขแย่มาก ในฐานพหุนามเป็นธรรมเนียมในการใช้ extrapolant คำสั่งต่ำกว่าหน่วยสอดแทรก โดยไม่ทราบว่า "ฟิสิกส์" ที่กำหนดปรากฏการณ์ที่ extrapolants มักจะเป็นเส้นตรง ผมใช้ MatLab: mathworks.com/help/matlab/ref/interp1.html
EngrStudent

คำตอบ:


10

วิธีการคำนวณการทำนายเป็นเช่นนี้

จากจุดเริ่มต้นพอดีคุณจะมีที่ตั้งของปมที่กระจายไปทั่วช่วงmean_radiusข้อมูลการฝึกอบรม เมื่อรวมกับระดับของพื้นฐาน B-spline (ลูกบาศก์โดยค่าเริ่มต้นในmboost) ตำแหน่งปมเหล่านี้จะกำหนดรูปร่างของฟังก์ชันพื้นฐาน B-spline ของคุณ ค่าเริ่มต้น mboostคือการมีน็อตภายใน 20 อันซึ่งกำหนดฟังก์ชันพื้นฐานแบบ B-spline 24 ลูกบาศก์ (ไม่ต้องถาม ... ) ให้เรียกฟังก์ชันพื้นฐานเหล่านี้Jเอฟเฟกต์ของโควาเรียต `` mean_radius`` แสดงเพียงแค่เป็น นี่เป็นกลอุบายที่ประณีตมากเพราะมันช่วยลดปัญหาที่ยากของการประมาณ ฟังก์ชันที่ไม่ได้ระบุถึงปัญหาที่ง่ายกว่ามากในการประมาณน้ำหนักการถดถอยเชิงเส้นBj(x);j=1,,24x=

f(x)=j24Bj(x)θj
f(x)θjที่เกี่ยวข้องกับการเก็บรวบรวมสังเคราะห์ตัวแปร(x)Bj(x)

การทำนายนั้นไม่ซับซ้อน: เนื่องจากค่าสัมประสิทธิ์โดยประมาณเราจำเป็นต้องประเมินสำหรับข้อมูลการทำนาย{ใหม่} สำหรับสิ่งที่เราต้องการคือตำแหน่งปมที่กำหนดฟังก์ชั่นพื้นฐานสำหรับข้อมูลต้นฉบับ จากนั้นเราจะได้ค่าที่คาดการณ์ไว้เป็น θ^jBj();j=1,,24xnew

f^(xnew)=j24Bj(xnew)θ^j.

ตั้งแต่การส่งเสริมการเป็นขั้นตอนซ้ำค่าสัมประสิทธิ์ที่ประมาณหยุดย้ำเป็นจริงผลรวมของการปรับปรุงค่าสัมประสิทธิ์ในซ้ำ{} หากคุณต้องการรับรายละเอียดจริงๆลองดูผลลัพธ์ที่คุณได้รับจากmstop1,,mstop

bbs(rnorm(100))$dpp(rep(1,100))$predict,

และไปสำรวจจากที่นั่น ตัวอย่างเช่น,

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), newX)

โทร

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), Xfun)

เพื่อประเมินใน{ใหม่}Bj()xnew


มันเยี่ยมมาก ฉันสงสัยว่าคุณจะอธิบายอย่างกว้าง ๆ ว่าฟังก์ชั่นเหล่านี้ทำอะไรได้บ้าง มันเป็นความจริงหรือไม่ที่สิ่งที่จำเป็นในการ "ให้คะแนน" ข้อมูลใหม่นั้นคือชุดของค่าสัมประสิทธิ์ตำแหน่งปมที่ใช้เมื่อทำการฝึกอบรมและสูตรสำหรับเส้นโค้ง? มีข้อมูลการฝึกอบรมอื่น ๆ ที่จำเป็นในการให้คะแนนข้อมูลใหม่ (เช่นในรูปแบบ KNN) หรือไม่
B_Miner

1
ข้อมูลใดที่คุณต้องการจะขึ้นอยู่กับประเภทของพื้นฐานที่คุณใช้ สำหรับ B-splines สิ่งที่คุณต้องรู้คือลำดับของ B-splines (กำลังสอง / ลูกบาศก์ / ฯลฯ .. ) และที่ตั้งปม "สูตร" B-เส้นโค้งเป็น recursion ที่Cox-de คนบ้านนอกเรียกซ้ำ ฉันเพิ่มประโยคครึ่งคำตอบ
fabians
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.