หน้าต่างแบบขยายและแบบเลื่อนสำหรับการตรวจสอบโมเดล Walk-Forward
เปรียบเทียบหน้าต่างฝึกแบบขยายกับแบบเลื่อนที่มีความยาวคงที่ แยกช่วงตรวจสอบออกจากชุดทดสอบสุดท้าย และเลือกกติกาโดยไม่ใช้ผลลัพธ์อนาคต
ในคู่มือนี้โฟลด์แบบ Walk-Forward มีหน้าต่างฝึกและประเมินคนละชุด
สรุปสั้น
หน้าต่างฝึกแบบขยายเก็บประวัติที่มีสิทธิ์ใช้ตั้งแต่ช่วงแรกไว้ แล้วเพิ่มข้อมูลใหม่เมื่อสังเกตได้ ส่วนหน้าต่างแบบเลื่อนเก็บจำนวนข้อมูลที่มีสิทธิ์ใช้ล่าสุดไว้คงที่ และตัดแถวที่เก่ากว่าออก ทั้งสองแบบใช้ประเมินแบบ walk-forward ตามลำดับเวลาได้ แต่ไม่มีแบบใดทดแทนการแยกการเลือกโมเดลออกจากช่วงทดสอบสุดท้าย
โฟลด์แบบ Walk-Forward มีหน้าต่างฝึกและประเมินคนละชุด
ณ จุดเริ่มพยากรณ์ นักวิจัยรู้คุณลักษณะและผลลัพธ์ในอดีตบางส่วน จึงปรับหรืออัปเดตโมเดล แล้วประเมินกับบล็อกข้อมูลที่เกิดภายหลัง เมื่อเลื่อนจุดเริ่มไปข้างหน้า จะได้ช่วงทดสอบนอกตัวอย่างต่อเนื่องกัน กติกาหน้าต่างฝึกกำหนดว่าแต่ละครั้งจะใช้แถวในอดีตที่ยังมีสิทธิ์แถวใดบ้าง ส่วนกติกาการตรวจสอบและทดสอบกำหนดว่าจะใช้ผลลัพธ์ภายหลังชุดใดเพื่อเปรียบเทียบตัวเลือกและประเมินผลงาน ทั้งสองเป็นการตัดสินใจที่เกี่ยวข้องกัน แต่ไม่ใช่หน้าต่างเดียวกัน
กติกาแบบขยายเริ่มจากขอบเขตประวัติที่กำหนดไว้และเพิ่มขึ้นเมื่อผลลัพธ์ใหม่พร้อมใช้งาน กติกาแบบเลื่อนขยับทั้งสองขอบไปข้างหน้า แต่คงจำนวนข้อมูลไว้เท่าเดิมหลังช่วงเริ่มต้น ไม่ว่าจะแบบใด ห้ามใช้เป้าหมายที่ผลลัพธ์ยังไม่สิ้นสุด ณ จุดพยากรณ์ หากป้ายกำกับครอบคลุมหลายช่วงซื้อขาย วันที่ของแถวอาจไม่บอกว่าทราบผลเมื่อใด ให้บันทึกเวลาสิ้นสุดของป้ายกำกับและใช้เวลานั้นกำกับการเลือกข้อมูล
แยกช่วงย้อนหลังที่ใช้คำนวณคุณลักษณะออกจากหน้าต่างฝึกด้วย สัญญาณอาจคำนวณความผันผวนของแต่ละแถวจากช่วงล่าสุดสั้น ๆ ขณะที่โมเดลใช้แถวข้อมูลหลายปี การเปลี่ยนช่วงย้อนหลังของคุณลักษณะเปลี่ยนตัวแปรนำเข้า ส่วนการเปลี่ยนหน้าต่างฝึกเปลี่ยนข้อมูลที่ใช้ประมาณค่าโมเดล
หน้าต่างแบบขยายเก็บประวัติเริ่มต้นไว้
ให้ \(s\) เป็นดัชนีของข้อมูลที่มีสิทธิ์ใช้รายการแรก และ \(t\) เป็นดัชนีของข้อมูลล่าสุดที่ป้ายกำกับเสร็จสมบูรณ์ ณ เวลาปรับโมเดล ชุดฝึกแบบขยายคือ \(\{s,s+1,\ldots,t\}\) เมื่อถึงจุดพยากรณ์ถัดไป จะเก็บแถวเดิมไว้และเพิ่มแถวใหม่ที่มีสิทธิ์ใช้ ดังนั้นจำนวนข้อมูลจึงเพิ่มขึ้นตามเวลา เว้นแต่จะมีเกณฑ์แยกต่างหากมากรองหรือลบข้อมูล
ข้อมูลที่มากขึ้นอาจลดความคลาดเคลื่อนจากการสุ่มตัวอย่างของค่าพารามิเตอร์ หากข้อมูลเก่ายังอธิบายกระบวนการที่ศึกษาได้ นอกจากนี้ยังอาจเก็บสภาวะตลาดที่เกิดไม่บ่อยซึ่งตัวอย่างช่วงสั้นอาจไม่มี และช่วยเลี่ยงการเลือกวันตัดข้อมูลย้อนหลังแบบตามใจ แต่แถวเก่าไม่ได้หมดอิทธิพลเพียงเพราะผ่านมานาน หากความสัมพันธ์ระหว่างตัวแปรกับผลตอบแทนเปลี่ยนไป ข้อมูลช่วงต้นอาจดึงค่าประมาณให้เอนเอียงไปยังสภาวะที่ไม่เหมือนตลาดปัจจุบัน ชุดฝึกที่ใหญ่ขึ้นยังอาจปรับโมเดลได้ช้าลง การเก็บประวัติไว้ไม่ได้ทำให้ข้อมูลเป็นตัวแทนที่ดีกว่าโดยอัตโนมัติ
หน้าต่างแบบเลื่อนตัดข้อมูลที่อยู่นอกช่วงที่เลือก
หากความยาวคงที่เท่ากับ \(W\) ชุดฝึก ณ จุด \(t\) คือ \(\{t-W+1,\ldots,t\}\) หลังคำนึงถึงความล่าช้าของป้ายกำกับและช่องว่างตรงขอบแล้ว เมื่อเลื่อนไปยังจุดถัดไป ปลายช่วงจะขยับไปข้างหน้าและแถวที่มีสิทธิ์ใช้ซึ่งเก่าที่สุดจะหลุดออก ความยาวอาจวัดเป็นจำนวนข้อมูลหรือเวลาในปฏิทิน แต่เมื่อข้อมูลไม่สม่ำเสมอ หน่วยทั้งสองใช้แทนกันไม่ได้
หน้าต่างแบบเลื่อนกำหนดกติกาความใหม่ของข้อมูล อาจเหมาะกับคำถามวิจัยเรื่องการปรับตามสภาวะที่เปลี่ยนไป หรือเมื่อการใช้งานจริงต้องควบคุมขนาดชุดฝึก แต่ไม่ได้ทำให้โมเดลปรับตัวโดยอัตโนมัติ หากปรับโมเดลไม่บ่อยหรือการเปลี่ยนแปลงค่อยเป็นค่อยไป การตอบสนองก็อาจล่าช้า ช่วงสั้นให้ข้อมูลน้อยลง ทำให้ค่าประมาณไม่นิ่ง ตัดช่วงวิกฤตที่เกิดไม่บ่อย หรือเหลือตัวอย่างไม่พอสำหรับโมเดลซับซ้อน ช่วงที่ยาวขึ้นเก็บประวัติหลากหลายกว่า แต่อาจเจือจางรูปแบบล่าสุด
หน่วยวัดก็สำคัญ จำนวนแถวเท่ากันอาจครอบคลุมเวลาในปฏิทินไม่เท่ากันเพราะวันซื้อขายที่ขาดหายหรือความถี่ข้อมูลต่างกัน สำหรับข้อมูลแบบพาเนล ให้กำหนดว่าจะตัดแถวหรือกลุ่มสินทรัพย์ตามวันที่ หากเลือก \(W\) หลังเห็นผลทดสอบสุดท้าย ช่วงนั้นจะกลายเป็นส่วนหนึ่งของการคัดเลือกและไม่ใช่ชุดทดสอบอิสระอีกต่อไป
กติกาทั้งสองให้ประวัติที่ต่างกันแก่การปรับโมเดลแต่ละครั้ง
| วิธี | แถวฝึกขณะปรับโมเดล | ข้อดีที่อาจได้ | ต้นทุนที่ควรตรวจสอบ |
|---|---|---|---|
| แบบขยาย | ทุกแถวที่มีสิทธิ์ใช้ตั้งแต่จุดเริ่มคงที่จนถึงปัจจุบัน | ข้อมูลมากขึ้นและเก็บเหตุการณ์เก่าไว้ | ระบอบตลาดเก่ายังมีอิทธิพล และการปรับโมเดลอาจช้าลง |
| แบบเลื่อน | ช่วงคงที่ล่าสุดของแถวที่มีสิทธิ์ใช้ | กำหนดความใหม่ชัดเจนและจำกัดขนาดตัวอย่าง | ข้อมูลน้อยลงและผลไวต่อความยาวที่เลือกมากขึ้น |
เพื่อแยกผลของกติกาหน้าต่างให้ชัด ควรกำหนดจุดตัดข้อมูล คุณลักษณะ ประเภทโมเดล วัตถุประสงค์การฝึก วันที่ปรับโมเดลใหม่ ระยะพยากรณ์ บล็อกทดสอบ และสมมติฐานการส่งคำสั่งให้เหมือนกัน หากโมเดลแบบเลื่อนปรับบ่อยกว่าหรือใช้คุณลักษณะต่างกัน จะสรุปว่าคะแนนต่างกันเพราะหน้าต่างเพียงอย่างเดียวไม่ได้
กติกาเหล่านี้ไม่ได้กำหนดจุดเริ่มพยากรณ์เช่นกัน หน้าต่างฝึกทั้งสองแบบประเมินด้วยจุดเริ่มแบบเลื่อนได้ โดยฝึกจากอดีตที่มีสิทธิ์ใช้ พยากรณ์บล็อกถัดไป เลื่อนไปข้างหน้า แล้วทำซ้ำ บททบทวนของ Leonard Tashman เรื่องการทดสอบการพยากรณ์นอกตัวอย่าง00065-0)กล่าวถึงทั้งจุดเริ่มแบบเลื่อนและหน้าต่างประมาณค่าแบบเลื่อน อย่างแรกกำหนดว่าจะประเมินเมื่อใด อย่างหลังระบุว่าแถวฝึกใดคงอยู่
เส้นเวลาในตัวอย่างสมมติแสดงข้อมูลที่เข้าสู่การปรับแต่ละครั้ง
ตัวเลขและวันที่ทั้งหมดต่อไปนี้เป็นตัวอย่างสมมติ สมมติว่าโมเดลปรับทุกเดือนเพื่อพยากรณ์ผลตอบแทนเดือนถัดไป และการปรับครั้งแรกใช้ข้อมูลที่มีสิทธิ์ 60 รายการซึ่งสิ้นสุดในเดือนที่ 120 ป้ายกำกับจะใช้ได้หลังผลลัพธ์เสร็จสิ้นเท่านั้น ณ จุดพยากรณ์แรก กติกาทั้งสองใช้ 60 แถวเดียวกันหากหน้าต่างแบบเลื่อนยาว 60
เมื่อทราบผลของเดือนใหม่ ชุดแบบขยายมีแถวที่ใช้ได้ 61 แถว ส่วนแบบเลื่อนเพิ่มแถวใหม่และตัดแถวเก่าที่สุดออก จึงยังเหลือ 60 แถว หลังอัปเดต 12 ครั้ง แบบขยายมี 72 แถวจากจุดเริ่มเดิม ขณะที่แบบเลื่อนเก็บ 60 แถวล่าสุด ค่าประมาณอาจต่างกันเพราะประวัติที่ใช้ต่างกัน แม้ข้อมูลทุกแถวจะพร้อมใช้งานในเวลาที่ปรับโมเดลแต่ละครั้ง
ในตัวอย่างนี้ ให้กัน 24 เดือนสุดท้ายไว้เป็นชุดทดสอบภายนอก เลือกกติกาและความยาวหน้าต่าง คุณลักษณะ และการตั้งค่าอื่นจากช่วงตรวจสอบตามลำดับเวลาก่อนหน้านั้น จากนั้นประเมินตัวเลือกที่ตรึงไว้ตามตารางปรับโมเดลที่กำหนดล่วงหน้า การเปลี่ยนความยาวหลังเห็นผลชุดทดสอบภายนอกคือการใช้ผลทดสอบเพื่อคัดเลือก และทำให้หลักฐานจากช่วงสุดท้ายดูหนักแน่นเกินจริง
เลือกกติกาหน้าต่างภายในช่วงตรวจสอบตามลำดับเวลา
ตั้งคำถามก่อนเปรียบเทียบ: โมเดลควรใช้ประวัติทั้งหมดที่มีในแต่ละครั้งที่ปรับหรือไม่ หรือมีเหตุผลให้ตัดตัวอย่างเก่าออก? คาดว่าความสัมพันธ์ของเป้าหมายจะคงที่ หรืออินพุตสำคัญอาจเปลี่ยนไป? คำถามเหล่านี้ช่วยกำหนดตัวเลือก แต่ไม่ได้พิสูจน์ล่วงหน้าว่าวิธีใดจะทำงานดีกว่าในตลาดหนึ่ง
ใช้ข้อมูลพัฒนาที่เก่ากว่าเปรียบเทียบตัวเลือกจำนวนน้อยที่กำหนดไว้ก่อน เช่น แบบขยายและความยาวแบบเลื่อนที่สมเหตุสมผลสองสามค่า โดยใช้บล็อกตรวจสอบตามลำดับเวลาและความถี่การปรับโมเดลเท่ากัน กำหนดเป้าหมายก่อนคำนวณคะแนน เพราะค่าคลาดเคลื่อนการพยากรณ์ การปรับเทียบ ความคุ้มค่าพอร์ตที่คำนึงถึงการหมุนเวียน และการขาดทุนสูงสุดตอบคำถามคนละแบบ ใช้ต้นทุนและข้อจำกัดเดียวกัน และบันทึกทั้งการปรับที่ล้มเหลวกับการพยากรณ์ที่ขาดหาย หากเป้าหมายหรือบล็อกทดสอบทับซ้อนกัน คะแนนใกล้เคียงอาจใช้ผลตอบแทนชุดเดียวกัน ให้ระบุการพึ่งพานี้แทนการนับทุกแถวเป็นการทดลองอิสระ
เก็บช่วงเวลาตามลำดับที่ใหม่กว่าไว้ตรวจสอบขั้นสุดท้าย ในการออกแบบแบบซ้อน การตรวจสอบชั้นในเลือกหน้าต่างและการตั้งค่าโดยใช้เฉพาะข้อมูลก่อนบล็อกทดสอบชั้นนอกแต่ละชุด ส่วนผลชั้นนอกประเมินกระบวนการคัดเลือกทั้งหมด คู่มือ Purged CVอธิบายขอบเขตที่ป้ายกำกับทับซ้อนกัน ส่วนการฟิตเกินในโมเดลการเงินและการทดสอบหลายครั้งครอบคลุมความเสี่ยงการคัดเลือกที่เกี่ยวข้อง
จัดป้ายกำกับ การเตรียมข้อมูล และเวลาปรับโมเดลให้ตรงกับข้อมูลที่รู้ในขณะนั้น
ในแต่ละจุดเริ่ม ใช้เฉพาะคุณลักษณะและป้ายกำกับที่ทราบแล้ว ผลตอบแทนล่วงหน้าหลายช่วงซื้อขายอาจยังไม่ครบใกล้ขอบเขตการตรวจสอบ แม้วันที่ตัดสินใจจะอยู่ก่อนหน้า หากจำเป็นให้เว้นช่วงหรือคัดแถวออกตามช่วงเวลาจริงของป้ายกำกับ จำนวนแถวคงที่ใช้ได้ก็ต่อเมื่อความถี่ของข้อมูลและระยะเป้าหมายรองรับ กติกาหน้าต่างไม่สามารถแก้คุณลักษณะที่มีข้อมูลอนาคตปนอยู่ได้
ปรับการเติมค่าที่ขาด การปรับสเกล การเลือกคุณลักษณะ และการเตรียมข้อมูลที่เรียนรู้จากข้อมูล โดยใช้เฉพาะส่วนฝึกของแต่ละโฟลด์ หากต้องเลือกค่าขีดแบ่งหรือไฮเปอร์พารามิเตอร์ ให้ใช้การตรวจสอบตามลำดับเวลาภายในช่วงฝึก และตรึงตัวเลือกก่อนประเมินบล็อกถัดไป เอกสารทางการของ scikit-learn สำหรับ TimeSeriesSplitระบุว่าชุดฝึกขยายตามค่าเริ่มต้น และ max_train_size ใช้จำกัดขนาดได้ gap นับเป็นจำนวนตัวอย่าง และการเปรียบเทียบความยาวโฟลด์ที่เท่ากันสมมติว่าข้อมูลเว้นช่วงสม่ำเสมอ ควรตรวจเวลาของป้ายกำกับการเงินและเวอร์ชันไลบรารีที่ใช้ด้วย
รายงานผลตามจุดเริ่มและระบุข้อจำกัดของการประเมิน
รายงานกติกาและความยาวหน้าต่างที่แน่นอน วันที่เก่าที่สุดที่ยังเก็บไว้ จำนวนแถวที่มีสิทธิ์ใช้เมื่อปรับแต่ละครั้ง กติกาว่าป้ายกำกับพร้อมใช้เมื่อใด วันที่ของช่วงตรวจสอบและทดสอบสุดท้าย ระยะพยากรณ์ และตารางปรับโมเดล แสดงผลแยกตามบล็อกทดสอบพร้อมผลรวม ค่าเฉลี่ยอาจซ่อนว่าช่วงตลาดหนึ่งมีอิทธิพลมากเพียงใด และการพยากรณ์ที่อยู่ติดกันอาจใช้ผลลัพธ์ร่วมกันจึงไม่ใช่หลักฐานอิสระ
ความแม่นยำของการพยากรณ์ไม่ใช่ผลตอบแทนสุทธิจากการซื้อขาย การสร้างสถานะ เลเวอเรจ การหมุนเวียน สภาพคล่อง ค่าธรรมเนียม สเปรด ผลกระทบต่อตลาด การยืม เงินทุน และเวลาส่งคำสั่ง ล้วนมีผลต่อผลลัพธ์ คงสมมติฐานเหล่านี้ให้เหมือนกันเมื่อต้องการเปรียบเทียบ และระบุสิ่งที่ไม่ได้รวมไว้ งานศึกษาของ Cerqueira, Torgo และ Mozetič เรื่องการประมาณผลงานของอนุกรมเวลารายงานว่าค่าประมาณอาจต่างกันระหว่างสภาวะคงที่กับไม่คงที่ งานนี้ไม่ได้เปรียบเทียบนโยบายหน้าต่างทางการเงินโดยตรง และไม่ได้พิสูจน์ว่ากติกาใดชนะเสมอ
มองแบ็กเทสต์แต่ละครั้งเป็นหลักฐานเกี่ยวกับประวัติและกระบวนการที่ระบุไว้ หน้าต่างแบบขยายอาจเก็บระบอบตลาดที่ล้าสมัยไว้ ส่วนแบบเลื่อนอาจทิ้งข้อมูลที่เป็นประโยชน์และเพิ่มความผันผวน กติกาที่เลือกอาจใช้ไม่ได้ในระบอบอื่น รายการสินทรัพย์อื่น หรือสภาพต้นทุนที่ต่างออกไป การตรวจสอบช่วยลดความไม่แน่นอนเกี่ยวกับกระบวนการที่ทดสอบ แต่ไม่รับประกันผลตอบแทนในอนาคตหรือพิสูจน์ว่าหน้าต่างใดเหมาะที่สุด
คำถามที่พบบ่อย
Q1หน้าต่างแบบขยายดีกว่าเสมอหรือไม่ เพราะใช้ข้อมูลมากกว่า?
ไม่เสมอไป แถวที่เพิ่มขึ้นอาจทำให้ค่าประมาณนิ่งขึ้นหากข้อมูลเก่ายังเกี่ยวข้อง แต่ระบอบตลาดที่ล้าสมัยก็อาจยังส่งผลต่อโมเดล ขึ้นอยู่กับข้อมูล เป้าหมาย คุณลักษณะ ตัวประมาณ และช่วงประเมิน
Q2หน้าต่างแบบเลื่อนปรับตัวต่อการเปลี่ยนระบอบตลาดโดยอัตโนมัติหรือไม่?
ไม่ หน้าต่างจะเอาแถวออกเมื่อพ้นช่วงที่เลือก แต่ไม่ได้ตรวจจับการเปลี่ยนแปลงหรือรับประกันว่าตัวอย่างใหม่แทนระบอบถัดไปได้ ความถี่การปรับ ความยาวหน้าต่าง และการออกแบบโมเดลยังสำคัญ
Q3ใช้ช่วงเวลาเดียวกันเพื่อปรับหน้าต่างและรายงานผลสุดท้ายได้ไหม?
ช่วงนั้นจะเป็นส่วนหนึ่งของการเลือกโมเดล ให้เลือกกติกาด้วยการตรวจสอบตามลำดับเวลา แล้วประเมินกระบวนการที่ตรึงไว้กับชุดทดสอบภายหลังซึ่งไม่เคยแตะต้อง แม้ผลนั้นก็อธิบายเพียงประวัติและสมมติฐานที่ทดสอบ
แหล่งข้อมูลและการอ่านเพิ่มเติม
รายงานปัญหา
เราจะเตรียมอีเมลพร้อมลิงก์บทความนี้ Mark จะได้รับรายงานเมื่อคุณส่งอีเมลแล้วเท่านั้น
ตรวจสอบอย่างรวดเร็ว
อ่านคู่มือจบแล้ว ลองตอบคำถาม 3 ข้อ
คำถาม 01
สิ่งใดเปลี่ยนไปเมื่อปรับโมเดลครั้งถัดไปด้วยหน้าต่างฝึกแบบเลื่อนที่มีความยาวคงที่?
เลือกคำตอบเพื่อดูคำอธิบาย
อภิธานศัพท์ออปชัน
The relationship between systematic prediction error from model mismatch and instability caused by sensitivity to the training sample.
อ่านคู่มือฉบับละเอียดFamily-wise error rateThe probability of falsely rejecting at least one true null hypothesis within a predefined family of tests.
อ่านคู่มือฉบับละเอียดAssignmentThe process that requires an option writer to fulfill the contract after an exercise notice is allocated; it can create or remove an underlying position.
อ่านคู่มือฉบับละเอียด