White Reality Check เทียบกับ Hansen SPA สำหรับกฎเทรด
ทำความเข้าใจ Reality Check และ SPA เมื่อเลือกกฎเทรดจากผู้สมัครหลายรายการ รวมถึง bootstrap สมมติฐาน และข้อจำกัด
ในคู่มือนี้ทำไมต้องใช้การทดสอบอีกแบบกับผู้ชนะจาก backtest
สรุปสั้น
White Reality Check และ Hansen Superior Predictive Ability (SPA) test ถามว่ามีกฎอย่างน้อยหนึ่งข้อในกลุ่มผู้สมัครที่ผ่านการค้นหา ซึ่งทำผลงานเหนือ benchmark ที่กำหนดไว้ล่วงหน้าตามตัวชี้วัดหนึ่งหรือไม่ ทั้งสองวิธีคำนึงถึงการเลือกผู้สมัครที่ดีที่สุดหลังเห็นผลแล้ว แต่ไม่ได้รับรองกฎข้อใดข้อหนึ่งหรือรับประกันกำไรในอนาคต
ทำไมต้องใช้การทดสอบอีกแบบกับผู้ชนะจาก backtest
ถ้ากำหนดกลยุทธ์เพียงหนึ่งแบบก่อนเห็น sample การทดสอบเปรียบเทียบเพียงครั้งเดียวอาจตอบคำถามที่จำกัดได้ แต่หากลองกฎและการตั้งค่าหลายแบบ ดูผล แล้วรายงานความมีนัยสำคัญของผู้ชนะราวกับกำหนดไว้เป็นตัวเลือกเดียวตั้งแต่ต้น ขั้นตอนการค้นหาจะหายไปจากการวิเคราะห์ แม้ไม่มีกฎข้อใดได้เปรียบจริง ค่าประมาณที่สูงที่สุดจากผลลัพธ์ที่มี noise หลายค่าก็อาจเป็นบวกได้โดยบังเอิญ
Reality Check หรือ RC และ SPA ถามคำถามเกี่ยวกับทั้งกลุ่ม หลังคำนึงถึงการค้นหาในชุดทางเลือกที่ระบุแล้ว มีหลักฐานหรือไม่ว่ากลยุทธ์อย่างน้อยหนึ่งแบบมี expected performance เหนือ benchmark กลุ่มนี้อาจประกอบด้วยกฎทางเทคนิค โมเดลพยากรณ์ หรือกลยุทธ์อื่น White เสนอกรอบตรวจ data snooping ในบทความปี 2000 ส่วน Sullivan, Timmermann และ White นำไปใช้กับกฎเทรดทางเทคนิคจำนวนมากในปี 1999 บทความของ White และงานประยุกต์กับกฎเทรด เป็นแหล่งข้อมูลปฐมภูมิ ควรรวมทางเลือกที่นำไปสู่การเลือกผลลัพธ์ไว้ด้วย ไม่ใช่ใส่เพียงผู้ชนะสุดท้าย
กำหนด benchmark กลุ่มผู้สมัคร และทิศทางของส่วนต่าง
ให้ k แทนกฎผู้สมัครหนึ่งข้อในกลุ่ม K ที่ทดสอบ และ t แทนวันที่ประเมินเดียวกันสำหรับกฎกับ benchmark ตัวอย่างที่ใช้ผลตอบแทนสามารถกำหนดส่วนต่างรายช่วงได้ดังนี้
d(k,t) = net return ของกฎ k ณ เวลา t − net return ของ benchmark
ค่าบวกหมายถึงผู้สมัครได้เปรียบ หากเปรียบเทียบความแม่นยำของการพยากรณ์ ให้เรียง loss กลับด้าน คือ benchmark loss ลบ candidate loss เพื่อให้ค่าบวกหมายถึงผู้สมัครมี loss ต่ำกว่า ห้ามเปลี่ยนทิศทางการลบระหว่างกฎหรือวันที่
กำหนด μ(k) = E[d(k,t)] เป็น expected performance difference ของกฎ k สมมติฐานระดับกลุ่มคือ
H0: ค่า μ(k) สูงสุดในบรรดากฎทั้งหมดของ K ไม่เกินศูนย์ H1: มีกฎใน K อย่างน้อยหนึ่งข้อที่ μ(k) > 0
H0 ไม่ได้ระบุว่าค่า expected difference ของทุกกฎต้องเท่ากับศูนย์พอดี กฎที่คาดว่าทำได้แย่กว่า benchmark ก็อยู่ภายใต้สมมติฐานศูนย์เช่นกัน นี่คือการทดสอบร่วมหนึ่งครั้งบนค่าสูงสุดของ performance เชิงเปรียบเทียบทั้งกลุ่ม ไม่ใช่ชุดการทดสอบแยกกันที่อ่านผลทีละข้อได้ ดังนั้นต้องกำหนด benchmark วันที่ นิยาม return กลุ่มผู้สมัคร และเกณฑ์ performance ให้ชัด หากคำถามเป็นเรื่องผลตอบแทนที่ปรับความเสี่ยง ส่วนต่างของ mean return อย่างเดียวไม่ใช่เกณฑ์นั้น
Reality Check ใช้ค่าสูงสุดจากทั้งกลุ่ม
เขียน d̄(k) แทนค่าเฉลี่ยของส่วนต่างกฎ k ตลอดช่วงประเมิน n ช่วง ในกรณีพื้นฐานที่ใช้ mean difference สถิติ RC คือ
T_RC = ค่าสูงสุดของ sqrt(n) × d̄(k) สำหรับ k ทุกตัวใน K
RC นำผล sample ที่ดีที่สุดในกลุ่มมาเปรียบเทียบกับ bootstrap distribution ภายใต้สมมติฐานศูนย์ สำหรับ composite null นี้ White ใช้ least-favorable configuration ต่อสมมติฐานทางเลือก โดยสมมติว่า expected difference ของผู้สมัครทุกข้อเป็นศูนย์ ทั้งที่ผู้สมัครซึ่งมี expected difference ติดลบก็ยังสอดคล้องกับ H0 ได้ ดังนั้น critical value อาจสูงขึ้นเมื่อกลุ่มมีทางเลือกที่อ่อนจำนวนมาก
การใช้ค่าสูงสุดเป็นหัวใจของคำถาม คำถามไม่ใช่ “ผู้ชนะใน sample ผ่านการทดสอบกฎเดียวหรือไม่” แต่คือ “ถ้าค้นหาด้วยวิธีเดิมในกลุ่มที่กำหนด การได้ค่าสูงสุดเท่านี้หรือมากกว่านั้นจะเกิดขึ้นยากเพียงใด” การทดสอบเฉพาะผู้ชนะด้วย reference distribution ของกฎที่กำหนดไว้ล่วงหน้าตอบคำถามแรก แต่ไม่รวมขั้นตอนการเลือก แม้คำนวณ single test ถูกต้องก็ยังไม่ได้ปรับผลของการเลือกหลังเห็นข้อมูล
ตัวอย่างสมมติ 240 variants แสดงขนาดของการค้นหา
เพื่อสาธิตเลขคณิตเท่านั้น สมมติว่านักวิจัยลอง lookback 12 ช่วง entry filter 4 แบบ และ exit setting 5 แบบ หากตรวจทุก combination จะมี 12 × 4 × 5 = 240 variants ของกฎเทรดแบบสมมติ นี่เป็นเพียงจำนวนชุดค่าผสม ไม่ใช่ผลจากงานวิจัยที่เผยแพร่หรือข้ออ้างเรื่อง return จริง ห้ามนำตัวอย่างนี้ไปสร้าง p-value หรืออ้างกำไร
หากเลือก combination ที่ดีที่สุดหลังตรวจผลของ 240 variants การทดสอบที่ปรับแล้วควรทำการค้นหาค่าสูงสุดแบบเดียวกันใน bootstrap sample แต่ละชุด ในทุก replicate ให้คำนวณ performance measure ของ variants ทั้งหมดใหม่ แล้วเลือกค่าที่สูงที่สุด จากนั้นเปรียบเทียบ maximum จาก sample จริงกับ distribution ของ bootstrap maxima หากคำนวณเฉพาะสถิติของผู้ชนะซ้ำในแต่ละ replicate จะกลายเป็นคำถามอีกข้อ เพราะไม่ได้จำลองการเลือกจากผล 240 รายการ
การแก้ selection มีประโยชน์เมื่อคำอธิบายกลุ่มตรงกับขั้นตอนวิจัยจริง หากการตั้งค่า ตลาด ระยะถือครอง หรือกฎปิดสถานะมีผลต่อการเลือกแต่ไม่ได้รวมไว้ ผลจากการค้นหาส่วนนั้นจะไม่ถูกนับ ในทางกลับกันก็ไม่ควรเพิ่มทางเลือกที่ไม่เกี่ยวข้องหลังเห็นผล ควรบันทึกกลุ่มที่ใช้ค้นหาจนได้ตัวเลือกสุดท้ายอย่างครบถ้วน รวมตัวเลือกที่ไม่ได้ชนะ
สุ่มตัวอย่างเวกเตอร์ตามเวลาทั้งชุดพร้อมกัน
ในวันเดียวกัน กฎต่าง ๆ ใช้ข้อมูลตลาดร่วมกัน ส่วนต่าง performance จึงอาจสัมพันธ์กัน และ observation ที่อยู่ติดกันในเวลาอาจมี serial dependence ด้วย Bootstrap ควรสุ่มเวกเตอร์ส่วนต่างของผู้สมัครทั้งหมดในแต่ละวันพร้อมกัน โดยคงช่วงเวลาที่ต่อเนื่องไว้ วิธีนี้รักษาความสัมพันธ์ข้ามกฎในเวลาเดียวกันและโครงสร้างเวลาบางส่วนในแต่ละ replicate การ resample กฎแต่ละข้อแยกกันจะทำลาย cross-rule covariance และเปลี่ยน distribution ของ maximum ส่วนการสุ่มวันทีละแถวอาจทำให้ temporal dependence หายไป
RC และ SPA ใช้ block method เช่น stationary bootstrap ได้ วิธีนี้ต่อบล็อกของ observation ที่อยู่ติดกันเพื่อสร้าง pseudo-series โดยความยาวบล็อกเปลี่ยนแปลงได้ ใน construction มาตรฐานของ Politis และ Romano ความยาวบล็อกเป็นไปตาม geometric distribution และกำหนด expected length ไว้ก่อน บทความ stationary bootstrap ของทั้งคู่ เป็นแหล่งข้อมูลปฐมภูมิ การใช้อินเด็กซ์เวลาเดียวกันกับทุก strategy ช่วยคงการเคลื่อนไหวรายวันที่เกิดร่วมกัน
การ resample ไม่ได้ทำให้ทุก series เหมาะกับวิธีโดยอัตโนมัติ ผลเชิงทฤษฎีอาศัย regularity conditions เช่น process มีเสถียรภาพและมี weak dependence เพียงพอ Structural break หรือ nonstationarity ที่รุนแรงไม่ได้หายไปเพราะ bootstrap บล็อกสั้นเกินไปอาจตัด persistence ที่สำคัญ ส่วนบล็อกยาวเกินไปทำให้เหลือช่วงที่แตกต่างกันจริงจำนวนน้อย ระบุวิธีและ block length พร้อมตรวจว่าข้อสรุปเปลี่ยนหรือไม่เมื่อใช้ค่าที่สมเหตุสมผล Null distribution ของ bootstrap ต้องแทนสมมติฐานที่กำลังทดสอบ และต้องคำนวณ maximum ใหม่ทุก replicate ด้วย Block bootstrap สำหรับ confidence interval ของ fixed statistic จาก strategy ที่เลือกไว้แล้ว ไม่ได้ปรับการค้นหาทั้งกลุ่มให้โดยอัตโนมัติ คู่มือ block bootstrap สำหรับผลตอบแทนกลยุทธ์ อธิบายอีกคำถามหนึ่ง คือความไม่แน่นอนของ statistic ที่กำหนดไว้พร้อมกับการรักษาความสัมพันธ์ตามเวลา

SPA ทำ statistic ให้เป็นมาตรฐานและใช้ null ที่ขึ้นกับ sample
SPA คง family-wide null และส่วนต่าง performance เทียบ benchmark ไว้ แต่เปลี่ยนสองส่วนของขั้นตอน อย่างแรก สูตร studentization นำ sqrt(n) คูณ mean difference ของผู้สมัครแต่ละข้อไป scale ด้วยค่าประมาณ long-run standard deviation ของ differential series
T_SPA = max(0, max_k [sqrt(n) × d̄(k) / ω̂(k)])
ω̂(k) คือค่าประมาณ long-run standard deviation ของ differential series d(k,t) สำหรับ candidate k หรือกล่าวได้ว่าเป็น asymptotic standard deviation ของ sqrt(n) × d̄(k) ไม่ใช่ SD หรือ SE ของ sample mean ที่ยังไม่ได้ scale ตัวหารนี้สะท้อนความแปรปรวนระยะยาวของ series รวมทั้ง serial dependence จึงทำให้เปรียบเทียบค่าเฉลี่ยของ candidate ต่าง ๆ ในหน่วยความไม่แน่นอนที่เทียบกันได้ อย่างไรก็ดี covariance ระหว่างผู้สมัครยังมีผลต่อ distribution ของ maximum
อย่างที่สอง SPA ใช้ null distribution ที่อาศัยข้อมูลใน sample เวอร์ชัน consistent จะคง negative sample mean ของผู้สมัครที่ดูแย่กว่า benchmark อย่างชัดเจนและมีค่าเฉลี่ยติดลบมากพอไว้ในการปรับ null ส่วนผู้สมัครที่ยังมีโอกาสอยู่ใกล้ขอบเขต null จะถูก center ที่ศูนย์ วิธีนี้ลดอิทธิพลของทางเลือกที่อ่อนตามหลักฐานจาก sample แต่ไม่ได้ลบผู้สมัครออกไปเฉย ๆ ห้ามเลือกเองว่าจะเก็บ candidate ใดหลังเห็นผล เพราะอาจทำให้ null distribution ไม่ถูกต้อง
บทความ Hansen ปี 2005 อธิบายการปรับทั้งสองอย่าง ได้แก่ studentized statistic และ sample-dependent null การปรับเหล่านี้อาจเพิ่ม power และลดความไวต่อทางเลือกที่อ่อนหรือไม่เกี่ยวข้องใน design บางแบบ แต่ไม่ได้หมายความว่า SPA ชนะ RC ทุกกรณี Hansen ระบุว่าทั้งสอง test ไม่ได้ dominate กันอย่างสม่ำเสมอ บาง implementation รายงาน p-value ของ SPA แบบ lower, consistent และ upper จึงควรระบุ version กับ implementation ที่ใช้ บทความต้นฉบับของ Hansen เป็นแหล่งหลักสำหรับ statistic การ center และ bootstrap
การปฏิเสธสมมติฐานระดับกลุ่มไม่ได้ระบุผู้ชนะ
หากปฏิเสธ family null ข้อสรุปที่รองรับมีขอบเขตว่า ภายใต้ performance criterion และสมมติฐานที่กำหนด มีหลักฐานว่าผู้สมัครอย่างน้อยหนึ่งข้อในกลุ่มที่ระบุมี expected performance เหนือ benchmark ไม่ได้พิสูจน์ว่ากฎทุกข้อทำกำไร ผู้ชนะใน sample มีนัยสำคัญรายตัวหลังปรับแล้ว หรือกฎนั้นจะยังดีที่สุดเมื่อเทรดจริง
การไม่ปฏิเสธ null ก็ไม่ได้พิสูจน์ว่ากฎทุกข้อไม่มีประโยชน์หรือเทียบเท่ากัน หมายความว่า sample และขั้นตอนนี้ยังให้หลักฐานระดับกลุ่มไม่เพียงพอว่าผู้สมัครใดเหนือกว่า ณ ระดับนัยสำคัญที่เลือก sample อาจสั้นหรือผันผวน ผู้สมัครอาจมีผลต่างน้อย หรือ edge จริงอาจอ่อน “ยังไม่มีหลักฐานพอว่าดีกว่า” ต่างจาก “พิสูจน์แล้วว่าไม่มี edge”
Omnibus maximum test นี้ไม่ได้ให้ลำดับผู้สมัครแบบปรับแล้วและไม่ได้เลือกให้ว่าจะใช้กฎใด หากต้องการอ้างผลที่ปรับแล้วสำหรับกฎบางข้อ ต้องใช้วิธี inference ระดับผู้สมัครหรือวิธี stepwise ที่ตรงกับคำถาม แล้ว validate แยกบนข้อมูลที่ไม่ได้ช่วยเลือกกฎ อย่าแปลงการปฏิเสธระดับกลุ่มเป็นคำแนะนำการลงทุนหรือคำกล่าวว่าผล backtest จะเกิดซ้ำ
กำหนด criterion และกลุ่มผู้สมัครก่อนดูผล
การปรับใช้ได้เฉพาะ candidate family ที่ใส่ในการทดสอบ บันทึก lookback, filter, ตลาด, holding period และ exit variant ที่มีผลต่อการเลือก รวมถึงการทดลองที่ไม่สำเร็จ หากลอง benchmark นิยาม return หรือ sample window หลายแบบแล้วเลือกตัวที่ชอบหลังเห็นผล ให้บันทึก search เหล่านั้นด้วย เส้นทางการวิจัยที่ไม่บันทึกไว้จะอยู่นอกการปรับอย่างเป็นทางการ
จัด return ของ candidate ให้ตรงกับวันที่เดียวกัน ก่อนสร้าง performance difference ให้ระบุว่ารวม commission, bid-ask spread, slippage, funding, borrow และ rollover cost อย่างไร เลือก performance criterion ก่อนเลือกผู้ชนะเช่นกัน Net mean return, utility score และ risk-adjusted measure เป็นคนละคำถาม การทดสอบที่สร้างมาเพื่อ measure หนึ่งตอบอีก measure ให้เองไม่ได้ ใน nested forecast comparison หรือ design พิเศษอื่น สมมติฐานเกี่ยวกับการประมาณ parameter และ null distribution อาจต่างกัน จึงไม่ควรใช้สูตร RC/SPA ทั่วไปแบบอัตโนมัติ
ควรแยกวิธีนี้จาก false discovery rate (FDR) ด้วย FDR ควบคุมสัดส่วน false discovery ที่คาดหวังในบรรดาการตัดสินใจรายข้อ ส่วน RC และ SPA ทดสอบ maximum ของ candidate family หนึ่งกลุ่มเทียบกับ benchmark ทั้งคู่ยังต่างจากคู่มือ block bootstrap สำหรับ fixed statistic ซึ่งประมาณความไม่แน่นอนของ statistic ที่กำหนดไว้ แต่ไม่ได้จำลองการค้นหา maximum ทั้งกลุ่มเอง คู่มือ multiple testing และ FDR ในการเงิน อธิบายการปรับอีกแบบหนึ่ง
รายงานผลควบคู่กับสมมติฐานและขอบเขต
รายงานที่ใช้ประโยชน์ได้ควรระบุ benchmark, candidate family, performance criterion, ช่วงวันที่, ความถี่ observation, costs ที่นับ, bootstrap method, block length, จำนวน replicate, statistic และประเภท p-value ที่แน่นอน เก็บไฟล์ candidate ไว้ให้ตรวจสอบได้ว่ากลุ่มที่นำไปสู่การเลือกถูกแทนใน test หากใช้ chronological holdout ที่ยังไม่เคยแตะหลังการทดสอบ อย่า tune กฎบน holdout นั้นแล้วเรียกมันว่า untouched ต่อไป
p-value ของ RC หรือ SPA เป็นหลักฐานเกี่ยวกับ family-wide null โดยมีเงื่อนไขตามข้อมูล search universe, statistic และ assumptions ที่ระบุ ไม่ใช่ความน่าจะเป็นที่ strategy หนึ่งจะทำเงิน ไม่ใช่การพยากรณ์ return ในอนาคต และไม่รับประกันว่า backtest จะรอดต้นทุนหรือ regime change การทดสอบไม่ได้แก้ look-ahead bias, survivorship, data errors, market impact หรือ search log ที่ไม่ครบให้เอง คู่มือ purged time-series cross-validation พูดถึงอีกปัญหาหนึ่ง คือ information leakage ระหว่าง train และ test
คำถามที่พบบ่อย
Q1SPA มี power สูงกว่า Reality Check ทุกครั้งหรือไม่?
ไม่ การปรับของ Hansen อาจเพิ่ม power และลดผลของทางเลือกที่อ่อนในบาง design แต่ไม่มี test ใดเหนือกว่าอีก test อย่างสม่ำเสมอในทุกสถานการณ์
Q2ผล SPA ที่มีนัยสำคัญบอกหรือไม่ว่าควรใช้กฎเทรดข้อใด?
ไม่ ผลนี้สนับสนุนข้อสรุประดับกลุ่มว่าผู้สมัครบางข้ออาจเหนือกว่า benchmark ตาม criterion ที่กำหนด แต่ไม่ได้ระบุ rule เฉพาะ ต้องใช้ procedure ระดับ candidate และ validation แยกต่างหาก
Q3ตัด variant ที่ขาดทุนจาก backtest ออกจากกลุ่มได้ไหม?
หาก variant เหล่านั้นมีส่วนใน search ที่นำไปสู่กฎสุดท้าย การตัดออกจะเปลี่ยนคำถามและอาจประเมิน selection ต่ำเกินไป กำหนดและเก็บ candidate family ที่เกี่ยวข้องก่อนตีความผลที่ปรับแล้ว
แหล่งข้อมูลและการอ่านเพิ่มเติม
รายงานปัญหา
เราจะเตรียมอีเมลพร้อมลิงก์บทความนี้ Mark จะได้รับรายงานเมื่อคุณส่งอีเมลแล้วเท่านั้น
ตรวจสอบอย่างรวดเร็ว
อ่านคู่มือจบแล้ว ลองตอบคำถาม 3 ข้อ
คำถาม 01
หลังลอง strategy variants หลายแบบ ควรรวม candidate ใดในการทดสอบระดับกลุ่ม?
เลือกคำตอบเพื่อดูคำอธิบาย
อภิธานศัพท์ออปชัน
The 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.
อ่านคู่มือฉบับละเอียด