The Magnificent Jump
The Magnificent Jump

The Magnificent Jump · ตอนที่ 2

Interactive Viz · ไปทดลองปรับค่าท้ายบท

การจะสร้าง jump model มีวิธีการหลักๆอยู่ 3 วิธี แต่ในที่นี้เพื่อไม่ให้ NERD เกินไปและให้สอดคล้องกับตัวอย่างในโพสต์ถัดไป ผมจะนําเสนอเพียงวิธีเดียวนั่นคือวิธีที่ชื่อว่า “ยัดนาฬิกาสุ่ม (random clock) เข้าไปใน Brownian Motion หรือ วิธี Subordination of Brownian Motion” แต่ก่อนไปสร้าง model เราต้องทําความรู้จัก ‘นาฬิกาสุ่ม (random clock)’ กันก่อน

นาฬิกาสุ่ม (random clock)

เหมือนที่ผมกล่าวในโพสต์ที่แล้วว่าตลาดหุ้นเปลี่ยนแปลงแบบไม่ต่อเนื่อง (discontinuous) พวก Quants จึงสร้างเวลาขึ้นมาใหม่เพื่อล้อกับตัวความไม่ต่อเนื่องนี้ สมมติให้เวลาที่ถูกสร้างขึ้นนี้คือ τ (ภาษากรีก อ่านว่า ‘ทัลก์ (tau)’ หรือ ‘เทา’ นั่นแหล่ะง่ายๆ)

ซึ่งตัว τ นี่แหล่ะคือที่เราเรียกว่า นาฬิกาสุ่ม (random clock) โดยปัจจัยที่ส่งผลต่อ τ คือ เหตุการณ์ต่างๆ (random events)/ข้อมูล (information) และ ‘เวลา (t)’ ซึ่งต่อไปนี้เราจะแทน

  • เวลา (ธรรมดา)t
  • เหตุการณ์ต่างๆ (random events) / ข้อมูล (information)ω
  • เวลาสุ่ม / นาฬิกาสุ่มτ

โดย τ เป็นฟังก์ชันของ t และ ω หรือ τ(t,ω) นั่นเองและในบริบทนี้ τ คือเวลาที่ราคาหุ้นจะเปลี่ยน ซึ่งในเมื่อ τ นั้น ‘สุ่ม’ หมายความว่าเราต้องกําหนดด้วยว่า τ นั้นมีความแจกแจงความน่าจะเป็น (probability distribution) ประเภทอะไร เราจะพูดถึงหลักการในการกํานดตัว probability distribution ของ τ ในหัวข้อการสร้าง model แต่ก่อนที่จะไปสร้างตัว model เรามาทําความรู้จักคร่าวๆก่อนว่า ‘probability distribution’ กับ ‘probability process (หรือ stochastic process) ต่างกันอย่างไรเพื่อต่อไปจะได้ไม่สับสน

ความแตกต่างระหว่าง Probability Distribution และ Stochastic Process

ง่ายๆเลยคือตัว probability distribution เป็นฟังก์ชันของ ‘เหตุการณ์สุ่ม (random events) ω’ ส่วน stochastic process เป็นฟังก์ชันของ ‘เหตุการณ์สุ่ม (random events) ω และ เวลา t’ ถ้าเขียนในรูปฟังก์ชันจะได้ว่า

Probability Distribution
f(ω)
Stochastic Process
f(t,ω)

ในทางคณิตสาสตร์ถ้าตัวแปรสุ่ม X ไม่ขึ้นกับเวลาเราจะเขียนว่า X(ω) หรือย่อว่า X เฉยๆอย่างที่คุ้นๆกันดี (เป็น probability distribution) แต่ถ้าตัวแปรสุ่ม X ขึ้นกับเวลา เราจะเขียนว่า X(t,ω) หรือย่อว่า X(t) (เป็น stochastic process)

ยกตัวอย่าง Stochastic Process เช่น Brownian Motion เป็น normal distribution ที่มี parameters ขึ้นกับเวลา

B(t) ~ Normal Distribution(0, √t)

B(t) แทน Brownian Motion จะเห็นว่า B(t) เป็น Normal Distribution ที่มีค่าเฉลี่ย (mean) เป็นศูนย์ และ ค่า standard deviation เป็น √t (ค่า square root ของเวลา) ซึ่งจะเห็นชัดเจนว่าเมื่อเวลา t เปลี่ยน parameter ก็จะเปลี่ยนตาม (ในกรณีนี้คือ standard deviation)

มาถึงตรงนี้เราจะสังเกตุได้ว่าเจ้า ‘นาฬิกาสุ่ม τ(t,ω)’ นั้นเป็น Stochastic Process

สร้าง Model

Model ประเภทนี้เราจะเริ่มตั้งต้นว่าการเปลี่ยนแปลงของราคาหุ้น (หรือเป็นอัตราผลตอบแทน rate of return ก็ได้) เปลี่ยนตาม Brownian Motion เหมือนเดิม เพียงแต่เปลี่ยน ‘เวลา(t)’ ข้างในตัว Brownian Motion เป็น ‘เวลาสุ่ม(τ)’ แทน จาก B(t) เฉยๆกลายเป็น B(τ(t,ω)) โดย B(t) หมายถึง Brownian Motion มาถึงตอนนี้เราจะเห็นแล้วว่าจากที่

B(t) ~ Normal Distribution(0, √t)
เป็น
B(τ(t,ω)) ~ ???

โดยตัว B(τ) (ต่อไปนี้ผมจะเขียน B(τ(t,ω)) หรืออาจจะเขียน B(τ) สลับไปมาแล้วแต่บริบท) จะมีหน้าตาเป็นแบบไหนนั้นขึ้นอยู่กับ τ นั่นเอง

Stochastic Process ของ τ

มีงานวิจัยมมากมาย นําเสนอ Stochastic Process ของเจ้านาฬิกาสุ่ม τ ซึ่งในที่นี้ผมจะนําเสนอผลงานของ Peter Carr, Dilip Madan และ Eric Chang ซึ่งเป็น Quants ที่ผมนับถือมากๆ (โดยเฉพาะ Peter Carr) ท่านเสนอ model ที่นาฬิกาสุ่ม τ เป็น Gamma Process หรือก็คือ Gamma Distribution ที่เปลี่ยนแปลงตามเวลา t โดยเจ้า Gamma distribution นี้ถูกกํากับด้วย parameters μ (อ่านว่า ‘มิว’ หรือ ‘mu’) และ ν (อ่านว่า ‘นู’ หรือ ‘nu’) โดย

μ
คือ อัตราค่าเฉลี่ยต่อหนึ่งหน่วยเวลา หรือ mean rate
ν
คือ อัตราความแปรปรวนต่อหนึ่งหน่วยเวลา หรือ variance rate

เมื่อนํามาเขียนในรูปของ Gamma Process จะได้ว่า

τ Gamma Distribution(μt, νt)

โดย parameters μ และ ν สองตัวนี้จะคอยควบคุมทั้งความเบ้ (skewness) และ ความ peak (kurtosis) ใน model ราคาหุ้นของเรานั่นเอง

ในโพสต์ถัดไป ผมจะพูดถึงกระบวนการสุ่ม (stochastic process) ที่เกิดจากการยัดนาฬิกา gamma process นี้เข้าไปใน Brownian Motion และวิธีการตั้งราคาตัวอนุพันธ์ Options จาก process นี้

Viz เพิ่มเติม

Viz เพิ่มเติม · ตัวอย่างจำลอง Gamma clock หนึ่งเส้นทาง: μ = 1, ν = 0.25, T = 1 ปี แบ่ง 180 time steps, seed = 2026092002 ใช้ Gamma increments ที่มี shape = Δt/ν และ scale = ν ภาพแสดงค่าบนกริดเวลา ไม่ได้แสดงทุก jump ระหว่างจุดสังเกต

Viz เพิ่มเติม · ตัวอย่างจำลอง Gamma clock หนึ่งเส้นทาง: μ = 1, ν = 0.25, T = 1 ปี แบ่ง 180 time steps, seed = 2026092002 ใช้ Gamma increments ที่มี shape = Δt/ν และ scale = ν ภาพแสดงค่าบนกริดเวลา ไม่ได้แสดงทุก jump ระหว่างจุดสังเกต

แบบจำลองอ้างอิงสำหรับ Viz: Madan, Carr & Chang (1998)

ดาวน์โหลด Notebook รวม 3 ตอน

Interactive Viz · ห้องทดลอง

ลองปรับพารามิเตอร์เพื่อสำรวจแบบจำลองสมมติ

ภาพผู้เขียน สุรพัศ หอมชุ่ม

ผู้เขียน · Math Nerd

สุรพัศ หอมชุ่ม

ผู้เขียน The Magnificent Jump ว่าด้วยแนวคิด Jump Process และ Variance Gamma Model

อ่านบทนี้แล้วอยากเรียนรู้ต่อ? ติดตามผู้เขียนและ QuantCorner ได้ที่นี่

ค้นหาในสมุดบันทึก