【บันทึกการพัฒนา】ความต่างระหว่าง curve fitting และ look-ahead bias — การเพิ่มประสิทธิภาพเกินพอดีสองแบบที่มักสับสน
■ ความหมายของการแยกแยะทั้งสองฝ่าย
Curve fitting และ look-ahead bias ทั้งคู่ถูกยกขึ้นเป็นปัจจัยที่ทำให้ผลการ backtest ดูดีกว่าความจริงที่เป็นอยู่ แต่วิธีการเกิดแตกต่างกันอย่างชัดเจน การผสมผสานทั้งสองอย่างและพยายามแก้ไขจะทำให้สาเหตุและการตอบสนองไม่สอดคล้องกัน และมักจะไม่สามารถแก้ปัญหาได้
สรุปก่อนเลยว่า curve fitting คือ “การปรับพารามิเตอร์ให้เหมาะสมกับข้อมูลในอดีตมากเกินไป” และ look-ahead bias คือ “การผสมข้อมูลในอนาคตที่ไม่สามารถตรวจสอบได้ในเวลาที่ตรวจสอบ” จุดที่แยกกันได้คือปัญหาของการเลือกข้อมูล (สำหรับคนแรก) กับคุณลักษณะของข้อมูลเอง (สำหรับคนหลัง)
■ โครงสร้างของ curve fitting
Curve fitting เกิดจากการปรับช่วงระยะเวลาเฉลี่ยเคลื่อนที่และความกว้างของจุดหยุดขาดทุน (stop loss) หรือพารามิเตอร์อื่นๆ ให้ได้ผลลัพธ์ดีที่สุดกับข้อมูลอดีตข้อมูลบางชุด ขณะที่ข้อมูลที่ใช้ในกระบวนการนี้ล้วนเป็นข้อมูลที่ถูกกำหนดไว้ถูกต้องในเวลาที่ตรวจสอบ ปัญหาคือไม่ใช่ความถูกต้องของข้อมูล แต่เป็นการปรับให้เข้ากับชุดข้อมูลใดชุดหนึ่งมากเกินไปจนทำให้ประสิทธิภาพการทั่วไปกับข้อมูลที่ไม่เคยเห็นลดลง
■ โครงสร้างของ look-ahead bias (การ整理ครั้งก่อน)
ในทางตรงกันข้าม look-ahead bias ดังที่กล่าวไว้ก่อนหน้า คือความผิดพลาดในการรวมข้อมูลที่ยังไม่แน่นอนในการตรวจสอบเป็นเงื่อนไขตัดสิน เช่น การอ้างอิงราคายังไม่ยืนยัน, การใช้อินดิเคเตอร์ประเภทรีเพนต์, การอ้างอิงค่าที่ยังไม่ยืนยันของกรอบเวลาที่สูงกว่า เป็นต้น กรณีนี้ปัญหาคือความไม่ถูกต้องของข้อมูลในลำดับเวลาเอง ไม่ใช่เพียงแค่การเลือกข้อมูล
■ เหตุผลที่มักสับสน
ทั้งสองฝ่ายมีลักษณะร่วมกันคือ ผลการ backtest ที่ดีแต่ในการทดสอบ forward test หรือการใช้งานจริงกลับไม่สมควรทำซ้ำได้ ความคล้ายคลึงของอาการทำให้กรณีแยกสาเหตุผิดพลาดได้ง่ายๆ เมื่อ curve fitting เป็นสาเหตุแต่ตรวจสอบเฉพาะลำดับเวลาเดียว เช่น ตรวจสอบด้วยข้อมูลที่ไม่แน่นอนเท่านั้น หรือในทางกลับกัน ก็มิได้แก้ปัญหา
จุดที่ใช้แยกแยะระหว่างทั้งสองคือ “ข้อมูลที่ใช้อยู่มีลำดับเวลาที่เหมาะสมหรือไม่” หากข้อมูลถูกต้องแต่พารามิเตอร์ถูกเลือกจนเกิด overfitting ก็จัดว่าเป็น curve fitting หากข้อมูลเองมีลำดับเวลาไม่ถูกต้องก็จัดว่าเป็น look-ahead bias
■ การตรวจสอบด้วยกรณีจริง
สมมติว่าพิจารณาหาช่วงระยะเวลาเฉลี่ยเคลื่อนที่และความกว้างของ stop loss โดยการค้นหาค่าทั้งหมดสำหรับข้อมูลหนึ่งปีที่ผ่านมา และใช้ราคาสูง-ต่ำที่ยืนยันแล้วของวันนั้นๆ ในการตัดสินใจระหว่างวันในช่วงกลางวัน กระบวนการนี้อาจมีทั้ง curve fitting จากการค้นหาพารามิเตอร์แบบครบถ้วน และ look-ahead bias จากการอ้างอิงข้อมูลที่ยังไม่ยืนยัน ทั้งสองอย่างอาจมีอยู่ในระบบ การพิจารณาเพียงผลลัพธ์ backtest อย่างเดียวยากที่จะบอกว่าอะไรเป็นสาเหตุหลัก จึงควรแยกตรวจสอบทั้งสองด้าน
■ ความแตกต่างของการแก้ไข
การแก้ไข curve fitting อยู่ที่การออกแบบการตรวจสอบเป็นหลัก เช่น ลดจำนวนพารามิเตอร์ ทดสอบเสถียรภาพในช่วงเวลาต่างๆ ด้วย Walk-Forward Validation และตรวจสอบความแตกต่างระหว่างผลลัพธ์ในช่วง in-sample และ out-of-sample
ในทางตรงกันข้าม การแก้ไขสำหรับ look-ahead bias เน้นตรวจสอบระดับการใช้งานข้อมูลในระดับการ Implement เช่น ตรวจสอบว่าอ้างอิงข้อมูลที่ยังไม่ยืนยันถูกต้องหรือไม่ เลือกอินดิเคเตอร์ที่ไม่รีเพนต์ และจัดการเวลายืนยันของกรอบเวลาบนชั้นสูง
ดังนั้น curve fitting คือปัญหาของ “วิธีการเลือกข้อมูล”, และ look-ahead bias คือปัญหาของ “วัสดุที่ใช้” อธิบายให้เข้าใจง่ายขึ้น
■ บทบาทในการตรวจสอบ
เมื่อทำการตรวจสอบลอจิก ควรพิจารณา 2 มุมมองแยกจากกัน คือ ความสมเหตุสมผลของตรรกะเอง (มี look-ahead bias หรือไม่) และความเหมาะสมของการเลือกพารามิเตอร์ (มี curve fitting หรือไม่) ควรประเมินแยกกัน หากแก้เฉพาะด้านหนึ่งแต่อีกด้านยังคงอยู่ ความต่างระหว่าง backtest กับการใช้งานจริงก็ยังคงอยู่
ควรระลึกไว้เสมอว่าทั้งสองมักเกิดร่วมกันในเวลาเดียวกัน ในสภาพแวดล้อมการตรวจสอบที่ทำการค้นหาพารามิเตอร์ทั้งหมด แม้กระทั่งการรวมข้อมูลที่ยังไม่ยืนยันเข้าไปด้วย องค์ประกอบ curve fitting และ look-ahead bias สามารถผสมเข้ากันได้ หากออกแบบการตรวจสอบผิดพลาด ควรแยกทั้งสองด้านเป็นรายการตรวจสอบอิสระตั้งแต่ขั้นตอนการตรวจสอบ เพื่อช่วยให้หาสาเหตุได้ง่ายขึ้นในขั้นตอนถัดไป
ลักษณะของทั้งสองแตกต่างกัน Curve fitting คือการ overfitting แบบสถิติสำหรับชุดข้อมูลอดีตเฉพาะ ในขณะที่ look-ahead bias คือปัญหาของข้อสันนิษฐานในการตรวจสอบเรื่องเวลา ถ้าพิจารณาแยกทั้งสองด้านออกจากกันในการตรวจสอบ มูลค่าความน่าเชื่อถือของกระบวนการทั้งหมดจะเพิ่มขึ้น
นอกจากนี้ การ整理นี้ยังสามารถนำไปใช้กับการตรวจสอบพอร์ตโฟลิโอได้ หากมีการรวม EA หลายตัว แม้แต่ลอจิกแต่ละตัวจะไม่ curve fitting แต่การเลือกชุดค่าผสมอาจเข้ากับอดีตมากเกินไป ทำให้เกิด curve fitting ในระดับกว้าง เช่นเดียวกับการอ้างอิงข้อมูลก่อนการยืนยันในการประเมินชุดค่าผสม จะทำให้ look-ahead bias กระทบไปทั้งพอร์ตโฟลิโอ เช่นเดียวกับการตรวจสอบลอจิกเดี่ยว ควรใส่ 2 มุมมองนี้เป็นรายการตรวจสอบในการตรวจสอบการรวมด้วย
หากความมั่นใจในการตรวจสอบลอจิกลดลง ขอแนะนำให้ตรวจสอบกระบวนการตาม 2 มุมมองนี้อีกครั้ง ติดต่อได้ที่ที่ปรึกษาผ่านช่องทางด้านล่าง