NORMSTrading Platform
← สารบัญหนังสือ

6.1 — Stationarity & Autocorrelation
ข้อมูลนิ่งพอวิเคราะห์ไหม

ภาค 6 · Time Series & Modeling · อ่าน ~11 นาที · คำถามแรกที่ quant ต้องถามก่อนเปิดโมเดลใดๆ
ก่อนจะวิเคราะห์ข้อมูลอะไรก็ตาม quant ถามคำถามข้อแรกเสมอ — "ข้อมูลชุดนี้นิ่งพอที่จะวิเคราะห์ไหม?"
ฟังดูเหมือนเรื่องเทคนิค แต่ถ้าข้ามคำถามนี้ไป โมเดลทุกตัวที่สร้างขึ้นมา อาจเป็นแค่หลุมพรางที่สวยงาม

1. Stationarity คืออะไร — อธิบายให้เห็นภาพ

ลองนึกถึงคนขายส้มตำหน้าออฟฟิศ · สมมติว่าหลิวไปซื้อทุกวันแล้วจดราคา — บางวัน 50 บาท บางวัน 55 บาท บางวัน 48 บาท · แต่ถ้าหลิวดูข้อมูลย้อนหลัง 3 ปี จะเห็นว่าราคาวนอยู่แถวๆ 50 บาท ขึ้นลงพอๆ กัน ค่าเฉลี่ยไม่ได้เลื่อนไปไหน

นั่นคือ stationary — ข้อมูลที่มีค่าสถิติสำคัญ (ค่าเฉลี่ย ความแปรปรวน) ไม่เลื่อนตามเวลา · มองซ้ายมองขวา หน้าตาพอๆ กัน · กฎที่ได้จากข้อมูลปีที่แล้ว ยังใช้ได้กับข้อมูลปีนี้

ตรงข้ามกัน — ถ้าราคาส้มตำค่อยๆ เลื่อนขึ้นปีละ 10 บาทตลอด อันนั้น non-stationary · ค่าเฉลี่ยเปลี่ยน · กฎที่ได้จากข้อมูลปีก่อนอาจใช้กับปีนี้ไม่ได้แล้ว

คิดง่ายๆ แบบนี้:
Stationary = ข้อมูลที่มีบ้าน — มันออกไปเที่ยวได้ แต่กลับบ้านเสมอ · ค่าเฉลี่ยไม่หนี
Non-stationary = ข้อมูลที่ไม่มีบ้าน — มันเดินไปเรื่อยๆ ไม่รู้จะจบที่ไหน · ค่าเฉลี่ยเลื่อน

ราคาหุ้น = Non-stationary — วันนี้ 100 พรุ่งนี้อาจ 101 หรือ 99 แต่ 10 ปีหน้าอาจ 500 ก็ได้ ไม่มีจุดคงที่ที่ "ต้องกลับมา"
ผลตอบแทนรายวัน = ใกล้ Stationary — +1% หรือ -1% วนอยู่แถวๆ 0% ค่าเฉลี่ยไม่เลื่อนหนีไปไหน

2. ทำไม Stationarity ถึงสำคัญมาก

สมมติหลิวสอนเด็กด้วยข้อสอบที่ออกโดยใช้หลักสูตรปีเก่า แต่หลักสูตรเปลี่ยนไปแล้วทุกปี — เด็กจะสอบผ่านได้ยังไง? · สถิติก็เหมือนกัน

โมเดลสถิติทุกตัว — ตั้งแต่ regression ธรรมดา ไปถึง machine learning — ล้วนสมมติว่า "กฎที่เรียนรู้จากอดีต ยังใช้ได้กับอนาคต" · ถ้าข้อมูลเป็น non-stationary กฎเปลี่ยนตลอดเวลา โมเดลที่ train มาจากอดีตก็กลายเป็นขยะ

⚠️ กับดักคลาสสิกที่ quant มือใหม่โดนทุกคน: เอาราคาหุ้นสองตัวมาหา correlation แล้วเจอว่า "สัมพันธ์กัน 95%!" — แต่ถ้าทั้งคู่เป็น non-stationary ที่ต่างก็ค่อยๆ ขึ้นตลอด ค่า 95% นั้นอาจไม่ได้บอกอะไรเลย เป็นแค่ "ของสองอย่างที่ต่างก็ขึ้นพร้อมกัน" — นักเศรษฐศาสตร์เรียกว่า spurious regression (ความสัมพันธ์ลวง) · เจ็บจริง ขาดทุนจริง

3. ราคา vs ผลตอบแทน — ทำไม quant แปลงก่อนเสมอ

นี่คือขั้นตอนแรกที่ quant ทำกับข้อมูลราคาทุกครั้งก่อนจะวิเคราะห์อะไรทั้งนั้น:

ราคา (Price)ผลตอบแทน (Return)
ตัวอย่างวันจ. 100, อ. 102, พ. 101, พฤ. 105+2%, -0.98%, +3.96%
StationarityNon-stationary — เลื่อนไปเรื่อยๆ ไม่มีจุดคงที่ใกล้ Stationary — วนรอบ 0% ไม่หนี
ค่าเฉลี่ยเปลี่ยนตลอดตามระดับราคาเสถียร — บวกลบวนอยู่แถวเดิม
วิเคราะห์ได้ไหมระวัง — ผล correlation อาจลวงได้ — สถิติที่คำนวณมีความหมาย
สูตรแปลงr_t = (P_t - P_{t-1}) / P_{t-1} หรือ log return
💡 กฎข้อแรกของ quant เวลาเปิดข้อมูลราคา: แปลงเป็น return ก่อน ก่อนจะทำอะไรทั้งนั้น · ราคาดิบมีไว้วาดกราฟ · return มีไว้วิเคราะห์ · ถ้าเห็น quant คนไหนใช้ราคาดิบหา correlation หรือสร้างโมเดล — ถามก่อนว่าตรวจ stationarity แล้วหรือยัง

Log Return คืออะไร ทำไมถึงนิยมกว่า

มีสองแบบที่ใช้กัน:

Simple return: r = (P_t - P_{t-1}) / P_{t-1} ← คิดง่าย เข้าใจง่าย Log return: r = ln(P_t / P_{t-1}) ← นิยมในงาน quant จริง ทำไม log return ดีกว่า: • บวกกันได้ตลอดเวลา: 3 วัน = log(P_3/P_0) = r_1 + r_2 + r_3 • สมมาตรกว่า (ขึ้น 50% แล้วลง 50% ≠ คืนเดิม แต่ log จัดการได้สวยกว่า) • กระจายตัวเหมือน Normal มากกว่า → ใช้กับโมเดลสถิติได้ง่ายกว่า สำหรับการเทรดรายวัน: ต่างกันน้อยมาก ใช้อันไหนก็ได้ · สำคัญคือต้องแปลงก่อน

4. Autocorrelation — ค่าตอนนี้สัมพันธ์กับอดีตไหม

ลองนึกถึงอากาศ — วันนี้อากาศร้อน พรุ่งนี้มักจะร้อนต่อ ไม่ใช่ว่าสุ่มเย็นขึ้นมาเฉยๆ · หรือถ้าหุ้นขึ้นมาสามวันติด วันที่สี่มีแนวโน้มจะขึ้นต่อหรือกลับตัว? — นั่นคือคำถาม autocorrelation

Autocorrelation คือ ความสัมพันธ์ของข้อมูลกับตัวเองในอดีต · เขียนย่อว่า ACF (Autocorrelation Function) · ค่าบวกแปลว่า "ตามกัน" — ขึ้นแล้วมักขึ้นต่อ · ค่าลบแปลว่า "สลับกัน" — ขึ้นแล้วมักลง · ใกล้ศูนย์แปลว่า "ไม่เกี่ยวกัน"

ตัวอย่างง่ายๆ:
อุณหภูมิรายวัน — ACF สูงมาก วันนี้ร้อน พรุ่งนี้มักร้อน · คนที่รู้ autocorrelation ทำนายพรุ่งนี้ได้ดีกว่าเดา
ราคาหุ้น (return) — ACF ใกล้ศูนย์ · ขึ้นวันนี้ไม่ได้บอกว่าพรุ่งนี้ขึ้นหรือลง · ตลาดที่มีประสิทธิภาพ autocorrelation ของ return ควรใกล้ศูนย์มาก
Volatility (ความเหวี่ยง) — ACF สูงมาก! · วันนี้เหวี่ยงแรง พรุ่งนี้มักเหวี่ยงแรงด้วย — และนี่คือหัวใจของบทถัดไป (GARCH)

วัด Autocorrelation ยังไง

quant วัดด้วย correlogram — กราฟที่แสดง ACF ที่ lag ต่างๆ (lag = ดูย้อนหลังกี่งวด)

ตีความ: lag 1 = ความสัมพันธ์ระหว่างวันนี้กับเมื่อวาน lag 5 = ความสัมพันธ์ระหว่างวันนี้กับ 5 วันก่อน lag 20 = ความสัมพันธ์กับ 20 วันก่อน (≈ 1 เดือน) return ของตลาดหุ้นส่วนใหญ่: lag 1-20 ส่วนใหญ่ใกล้ 0 ← ยากมากที่จะทำนายจากอดีต ความเหวี่ยงรายวัน (|return| หรือ return²): lag 1-20 สูงมาก ← ทำนายได้จริง นี่คือ volatility clustering

5. PACF — พี่น้องของ ACF ที่ quant ต้องรู้

มีอีกตัวที่ใช้คู่กันเสมอ — PACF (Partial Autocorrelation Function) · ต่างกันตรงที่ PACF ตัด "ผลทางอ้อม" ออก

อุปมา: สมมติวันนี้อากาศสัมพันธ์กับเมื่อสัปดาห์ที่แล้ว — แต่จริงๆ อาจเพราะเมื่อวาน→วันก่อนหน้า→ทอดไปเรื่อยๆ จนถึงสัปดาห์ที่แล้ว ไม่ใช่สัปดาห์ที่แล้วส่งผลมาโดยตรง · PACF ตัดทอดนี้ออก เหลือแค่ผลตรงๆ

💡 ACF + PACF ใช้เป็นเครื่องมือวินิจฉัย ไม่ใช่เครื่องมือเทรด · ดูแล้วบอกได้ว่า "ข้อมูลชุดนี้มีโครงสร้างอะไรซ่อนอยู่" → เลือกโมเดลให้เหมาะ · ไม่ดู ACF/PACF ก่อน = เปิดโมเดลโดยไม่รู้ว่ากำลังวิเคราะห์อะไร

6. ตรวจ Stationarity ยังไงในทางปฏิบัติ

quant มีเครื่องมือทดสอบ stationarity ที่ใช้กันจริงอยู่ไม่กี่ตัว ที่พบบ่อยที่สุดคือ:

ทดสอบชื่อเต็มวิธีอ่านผลใช้เมื่อ
ADF TestAugmented Dickey-Fullerp-value < 0.05 = stationary · p-value > 0.05 = ไม่ stationaryใช้บ่อยที่สุด เป็นมาตรฐาน
KPSS TestKwiatkowski–Phillips–Schmidt–Shinตรงข้าม ADF: p-value < 0.05 = ไม่ stationaryใช้คู่กับ ADF เพื่อครอสเช็ค
ดูกราฟVisual inspectionค่าเฉลี่ยเลื่อนไหม? ความแปรปรวนเปลี่ยนไหม?ดูก่อนเสมอก่อนรันสถิติ
วิธีทำจริงในทางปฏิบัติ:
1. ดูกราฟราคา (price) — เกือบแน่นอนว่า non-stationary
2. แปลงเป็น return: r = ln(P_t / P_{t-1})
3. รัน ADF Test บน return — มักผ่าน (p < 0.05)
4. ดู ACF/PACF ของ return — ถ้าใกล้ศูนย์หมด ดีมาก (ทำนายทิศยาก)
5. ดู ACF/PACF ของ |return| หรือ return² — ถ้าสูง = มี volatility clustering = ควรใช้ GARCH

7. ทำไมถึงสำคัญกับเทรดเดอร์อย่างหลิว

หลิวอาจคิดว่า "เรื่องนี้เทคนิคเกินไป ใช้ทำอะไรในชีวิตจริง?" — นี่คือคำตอบตรงๆ:

1. ก่อนจะสร้างระบบเทรดใดๆ — ถ้าจะ backtest หรือหา pattern ในราคา ต้องทำงานกับ return ไม่ใช่ราคาดิบ · ถ้าหา "correlation" ระหว่างตลาดสองตัว ต้องเช็คก่อนว่าไม่ใช่แค่ spurious

2. ก่อนจะใช้ระบบ mean reversion — ระบบที่เล่นสวนทาง (ขึ้นมากแล้วขาย) ทำงานได้ก็ต่อเมื่อข้อมูล stationary เพราะต้องมีจุดที่ "กลับมา" · ถ้า non-stationary ราคาอาจไม่มีวันกลับ

3. Pairs Trading — ระบบจับคู่หุ้นสองตัวมาเทรดสวนกัน ต้องการให้ spread ระหว่างสองตัว stationary · ถ้าไม่ตรวจก่อน อาจจับคู่ผิดแล้วขาดทุนไม่รู้ว่าผิดตรงไหน (บทถัดไปจะลงลึกเรื่องนี้)

8. Return ก็ไม่ได้ perfect stationary — ต้องรู้ขีดจำกัด

จริงๆ แล้ว return ของตลาดก็ไม่ได้ stationary ร้อยเปอร์เซ็นต์ มีปัญหาที่ต้องรู้:

ปัญหาที่พบบ่อย: 1. Volatility Clustering — ความแปรปรวน (variance) เปลี่ยนตามเวลา วันปกติ: return กระจายแคบ วันวิกฤต: return กระจายกว้างมาก → variance ไม่คงที่ = ละเมิด strict stationarity 2. Fat Tails — เหตุการณ์สุดขีดเกิดบ่อยกว่าที่ Normal Distribution ทำนาย โมเดลที่สมมติ Normal อาจ underestimate ความเสี่ยงจริง 3. Regime Change — ตลาดเปลี่ยนโหมด (bull→bear) คุณสมบัติเปลี่ยนไปด้วย แต่ถึงอย่างนั้น return ก็ยัง "นิ่งกว่า" ราคาดิบมาก → แปลงเป็น return ยังถูกต้องเสมอ
⚠️ Volatility Clustering คือข้อยกเว้นสำคัญ: แม้ว่า return (ทิศทาง) จะแทบทำนายไม่ได้ แต่ความเหวี่ยง (ขนาด) ทำนายได้ · วันนี้เหวี่ยง 2% มีแนวโน้มจะเหวี่ยง 2-3% พรุ่งนี้ด้วย — ไม่ใช่เพราะวิเศษ แต่เพราะมันเป็นปรากฏการณ์ทางสถิติที่วัดได้ · GARCH ในบทถัดไปคือโมเดลที่จับสิ่งนี้ได้

9. สรุปภาพรวม — จำแค่ 3 อย่างนี้

📌 สามสิ่งที่ต้องติดสมอง:

1. ราคา = Non-stationary — ค่าเฉลี่ยเลื่อน · ห้ามเอาไปหา correlation หรือสร้างโมเดลตรงๆ

2. Return = ใกล้ Stationary — แปลงก่อนเสมอด้วย r = ln(P_t/P_{t-1}) แล้วค่อยวิเคราะห์

3. Autocorrelation ของ return ≈ 0 แต่ของ volatility สูง — หมายความว่า:
   • ทำนาย "ทิศ" ราคาจากอดีต = ยากมาก (return ACF ≈ 0)
   • ทำนาย "ความเหวี่ยง" จากอดีต = ทำได้จริง (volatility ACF สูง)
   → ใช้ประโยชน์ตรงนี้ในการบริหาร risk/size ไม่ใช่ทายทิศ
บทถัดไป → 6.2 · ARIMA & GARCH — โมเดลอนุกรมเวลา
บทก่อนหน้า → 5.x · ภาค 5
← สารบัญหนังสือ