วิธีหนึ่งในการตรวจสอบให้แน่ใจว่านี่คือการทำให้แน่ใจว่าคุณได้ทำสิ่งต่าง ๆทั้งหมดที่คุณทำเพื่อให้พอดีกับแบบจำลองแม้กระทั่ง "แก้ไข" ด้วยวิธีนี้เมื่อคุณเรียกใช้กระบวนการซ้ำ ๆ พูดผ่านการตรวจสอบข้ามคุณจะทำให้สิ่งต่าง ๆ ที่สอดคล้องกันระหว่างการทำงาน สิ่งนี้ทำให้มั่นใจได้ว่าแหล่งที่มาของการเปลี่ยนแปลงที่เป็นไปได้ทั้งหมดจะถูกบันทึกไว้โดยกระบวนการตรวจสอบข้าม
สิ่งสำคัญอื่น ๆ ที่สำคัญคือการทำให้แน่ใจว่าคุณมีตัวอย่างตัวแทนทั้งในชุดข้อมูล หากชุดข้อมูลของคุณไม่ได้เป็นตัวแทนของประเภทข้อมูลที่คุณคาดว่าจะใช้ในการคาดการณ์แสดงว่าคุณสามารถทำได้ไม่มากนัก การสร้างแบบจำลองทั้งหมดวางอยู่บนสมมติฐานที่ว่า "อุปนัย" ทำงาน - สิ่งที่เราไม่ได้สังเกตเห็นประพฤติเหมือนสิ่งที่เราสังเกต
ตามกฎทั่วไปให้หลีกเลี่ยงขั้นตอนการติดตั้งแบบจำลองที่ซับซ้อนเว้นแต่ (i) คุณรู้ว่าคุณกำลังทำอะไรและ (ii) คุณลองใช้วิธีที่ง่ายกว่าและพบว่ามันไม่ทำงานและวิธีการที่ซับซ้อนแก้ไข ปัญหาด้วยวิธีการง่าย ๆ "ง่าย" และ "ซับซ้อน" มีความหมายในแง่ของ "ง่าย" หรือ "ซับซ้อน" กับคนที่ทำข้อต่อ เหตุผลนี้สำคัญมากเพราะช่วยให้คุณสามารถใช้สิ่งที่ฉันต้องการเรียกว่า "การทดสอบการสูดดม" กับผลลัพธ์ ผลลัพธ์ดูถูกต้องไหม? คุณไม่สามารถ "ดม" ผลลัพธ์จากกระบวนการที่คุณไม่เข้าใจ
หมายเหตุ: ต่อไปส่วนที่ค่อนข้างยาวของคำตอบของฉันจะขึ้นอยู่กับประสบการณ์ของผมซึ่งอยู่ใน พื้นที่กับขนาดใหญ่อาจจะเป็น ผมเกือบจะแน่ใจว่าสิ่งที่ตามมาด้านล่างจะไม่นำไปใช้กับหรือกรณีN>>p p N≈p N<p
เมื่อคุณมีตัวอย่างจำนวนมากความแตกต่างระหว่างการใช้งานและไม่ใช้การสังเกตที่ให้นั้นมีขนาดเล็กมากหากการสร้างแบบจำลองของคุณไม่ได้ "ท้องถิ่น" มากเกินไป นี้เป็นเพราะอิทธิพลของจุดข้อมูลที่กำหนดโดยทั่วไปคำสั่งของ{N} ดังนั้นในชุดข้อมูลขนาดใหญ่ส่วนที่เหลือที่คุณได้รับจาก "การจับ" ชุดข้อมูลการทดสอบนั้นจะเหมือนกับชุดที่เหลือที่คุณได้รับจากการใช้ในชุดข้อมูลการฝึกอบรม คุณสามารถแสดงสิ่งนี้ได้โดยใช้กำลังสองน้อยสุดธรรมดา ส่วนที่เหลือที่คุณได้รับจากการยกเว้นการสังเกตที่ (เช่นข้อผิดพลาดของชุดทดสอบจะเป็นอย่างไรถ้าเราให้การสังเกตในชุดทดสอบ) คือโดยที่คือการฝึกอบรมที่เหลือและ1Nietesti=(1−hii)−1etrainietrainihiiเป็นประโยชน์ของจุดข้อมูลที่ตอนนี้เรามีแล้วโดยที่คือจำนวนของตัวแปรในการถดถอย ตอนนี้ถ้าดังนั้นจะยากมากสำหรับจะมีขนาดใหญ่พอที่จะสร้างความแตกต่างที่เห็นได้ระหว่างชุดทดสอบและข้อผิดพลาดของชุดการฝึกอบรม เราสามารถนำตัวอย่างที่เข้าใจง่ายสมมติว่า (สกัดกั้นและตัวแปร),เมทริกซ์การออกแบบคือ (ทั้งชุดฝึกอบรมและทดสอบ) และยกระดับคือi∑ihii=ppN>>phiip=21N×pX
hii=xTi(XTX)−1xi=1Ns2x(1xi)(x2¯¯¯¯¯−x¯¯¯−x¯¯¯1)(1xi)=1+x~2iN
โดยที่ ,และ 2 ในที่สุดเป็นตัวแปรทำนายมาตรฐานและวัดว่าค่าเบี่ยงเบนมาตรฐานมาจากค่าเฉลี่ยเท่าใด ดังนั้นเรารู้ตั้งแต่เริ่มต้นว่าข้อผิดพลาดของชุดทดสอบจะใหญ่กว่าข้อผิดพลาดของชุดการฝึกอบรมสำหรับการสังเกต "ที่ขอบ" ของชุดการฝึกอบรม แต่นี่เป็นเรื่องที่ตัวแทนออกมาอีกครั้ง - การสังเกต "ที่ขอบ" นั้นน้อยกว่าการสังเกต "ที่อยู่ตรงกลาง" นอกจากนี้คือการสั่งซื้อ{N} ดังนั้นหากคุณมีการสังเกตครั้งแม้ว่าx¯¯¯=N−1∑ixix2¯¯¯¯¯=N−1∑ix2is2x=x2¯¯¯¯¯−x¯¯¯2x~i=xi−x¯¯¯sxxi1N100x~i=5 (ค่าที่มากกว่าใน x-space ตามคำจำกัดความส่วนใหญ่) ซึ่งหมายความว่าและข้อผิดพลาดในการทดสอบนั้นมีเพียงแค่{100} หากคุณมีชุดข้อมูลขนาดใหญ่บอกว่าก็ยังมีขนาดเล็กซึ่งน้อยกว่า{%} ในความเป็นจริงสำหรับการสังเกตครั้งคุณจะต้องมีการสังเกตเพื่อสร้างต่ำกว่าการประมาณข้อผิดพลาดของชุดทดสอบโดยใช้ข้อผิดพลาดชุดการฝึกอบรมhii=261001−26100=74100100001−26100001%10000x~=5025%
ดังนั้นสำหรับชุดข้อมูลขนาดใหญ่โดยใช้ชุดทดสอบไม่ได้เป็นเพียงที่ไม่มีประสิทธิภาพก็ยังเป็นที่ไม่จำเป็นตราบใดที่พี สิ่งนี้ใช้สำหรับ OLS และยังใช้กับ GLM โดยประมาณ (รายละเอียดแตกต่างกันสำหรับ GLM แต่ข้อสรุปทั่วไปเหมือนกัน) ในมากกว่ามิติ "ค่าผิดพลาด" ถูกกำหนดโดยการสังเกตด้วยคะแนน "องค์ประกอบหลัก" ขนาดใหญ่ นี้สามารถแสดงให้เห็นโดยการเขียนไหนเป็น (มุมฉาก) วิคเตอร์เมทริกซ์สำหรับกับเมทริกซ์ eigenvalue \เราได้รับโดยที่N>>p2hii=xTiEET(XTX)−1EETxiEXTXΛhii=zTiΛ−1zi=∑pj=1z2jiΛjjzi=ETxiเป็นคะแนนองค์ประกอบหลักสำหรับx_ixi
หากชุดทดสอบของคุณมีการสังเกตคุณจะได้รับรุ่นเมทริกซ์โดยที่และเป็นแถวของเมทริกซ์การออกแบบในชุดทดสอบ ดังนั้นสำหรับการถดถอย OLS คุณรู้อยู่แล้วว่าข้อผิดพลาด "ชุดทดสอบ" จะเป็นอย่างไรสำหรับการแยกข้อมูลที่เป็นไปได้ทั้งหมดในชุดการฝึกอบรมและการทดสอบ ในกรณีนี้ ( ) ไม่จำเป็นต้องแยกข้อมูลเลย คุณสามารถรายงานข้อผิดพลาดในการตั้งค่าชุด "กรณีที่ดีที่สุด" และ "กรณีที่แย่ที่สุด" เกือบทุกขนาดโดยไม่ต้องแยกข้อมูล สิ่งนี้สามารถประหยัดเวลาและทรัพยากรของพีซีได้มากketest{k}=(Ik−H{k})−1etrain{k}H{k}=X{k}(XTX)−1XT{k}X{k}N>>p
โดยทั่วไปสิ่งนี้จะลดการใช้คำสั่งลงโทษเพื่อพิจารณาความแตกต่างระหว่างข้อผิดพลาดในการฝึกอบรมและการทดสอบเช่น BIC หรือ AIC สิ่งนี้จะบรรลุผลเช่นเดียวกับที่ใช้ในชุดทดสอบอย่างมีประสิทธิภาพอย่างไรก็ตามคุณไม่ได้ถูกบังคับให้ทิ้งข้อมูลที่อาจเป็นประโยชน์ ด้วย BIC คุณกำลังประมาณหลักฐานสำหรับโมเดลซึ่งมีลักษณะทางคณิตศาสตร์เช่น:
p(D|MiI)=p(y1y2…yN|MiI)
โปรดทราบว่าในขั้นตอนนี้เราไม่สามารถประมาณพารามิเตอร์ภายใน - แต่ละรุ่นจะต้องระบุอย่างสมบูรณ์หรือรวมพารามิเตอร์ภายใน อย่างไรก็ตามเราสามารถทำให้ดูเหมือนการตรวจสอบไขว้ (โดยใช้ฟังก์ชั่นการสูญเสียที่เฉพาะเจาะจง) โดยใช้กฎผลิตภัณฑ์ซ้ำแล้วซ้ำอีกจากนั้นจึงบันทึกผลลัพธ์:Mi
p(D|MiI)=p(y1|MiI)p(y2…yN|y1MiI)
=p(y1|MiI)p(y2|y1MiI)p(y3…yN|y1y2MiI)
=⋯=∏i=1Np(yi|y1…yi−1MiI)
⟹log[p(D|MiI)]=∑i=1Nlog[p(yi|y1…yi−1MiI)]
สิ่งนี้ชี้ให้เห็นรูปแบบของการตรวจสอบความถูกต้องไขว้ แต่เมื่อชุดการฝึกอบรมได้รับการปรับปรุงอย่างต่อเนื่องการสังเกตครั้งละหนึ่งครั้งจากชุดทดสอบ - คล้ายกับตัวกรองคาลมาน เราทำนายการสังเกตครั้งต่อไปจากชุดทดสอบโดยใช้ชุดการฝึกปัจจุบันวัดความเบี่ยงเบนจากค่าที่สังเกตได้โดยใช้บันทึกความน่าจะเป็นแบบมีเงื่อนไขจากนั้นอัปเดตชุดการฝึกอบรมเพื่อรวมการสังเกตใหม่ แต่โปรดทราบว่าขั้นตอนนี้จะทำการย่อยข้อมูลทั้งหมดที่มีอยู่อย่างครบถ้วนในขณะเดียวกันก็ต้องแน่ใจว่าการทดสอบทุกครั้งนั้นถูกทดสอบว่าเป็นกรณีที่ "ไม่อยู่ในกลุ่มตัวอย่าง" นอกจากนี้ยังเป็นค่าคงที่ซึ่งไม่สำคัญว่าคุณจะเรียกว่า "การสังเกต 1" หรือ "การสังเกต 10" ผลลัพธ์จะเหมือนกัน (การคำนวณอาจจะง่ายกว่าสำหรับวิธีเรียงสับเปลี่ยนมากกว่าแบบอื่น) ฟังก์ชั่นการสูญเสียยังเป็น "ปรับตัว" ในที่ถ้าเรากำหนดLi=log[p(yi|y1…yi−1MiI)]จากนั้นความคมชัดของขึ้นอยู่กับเนื่องจากฟังก์ชั่นการสูญเสียถูกอัปเดตด้วยข้อมูลใหม่อยู่เสมอLii
ฉันขอแนะนำให้ประเมินแบบจำลองการทำนายด้วยวิธีนี้จะทำงานได้ค่อนข้างดี