Stochastic process

" Stochastic" มีความหมายเดียวกับ "Random" 

Stochastic process เกี่ยวข้องกับตัวแปรสุ่ม (random variable) และลำดับ (sequence)

Stochastic process คือ เซตของลำดับของตัวแปรสุ่ม [1] โดยที่ลำดับอาจเกี่ยวข้องกับเวลา (time series) หรืออย่างที่มีลำดับชัดเจน 

\( \{ X_0,X_1,X_2,X_3,...\}\) หรือ \(\{ X_t \} \text{, when }t \geq 0 \)

 index หรือ t เป็นไปได้ทั้ง discrete data หรือ continuous data  

ตัวอย่างที่  1 การโยนเหรียญ 1 เหรียญ กำหนดให้ random variable X แทนจำนวนเหรียญที่หงานด้าน Head (H) จะได้ว่า

  1. Sample space ของ X คือ \( \{ 0,1 \}\)
  2. Probability distribution ของ X คือ \( P( X = 0) = P(X=1) =  \frac{1}{2} \)
สมมุติว่าทดลองโยนเหรียญไป 20 ครั้ง ผลลัพธ์อาจได้ออกมาดังรูปที่ 1 กระบวนการในตัวอย่างนี้เรียกว่า Bernoulli process [2] (และเนื่องจากค่าของ random variable ขึ้นกับความน่าจะเป็น ผลการทดลองแต่ละครั้งอาจจะไม่เหมือนกันแต่จะออกมาในทำนองเดียวกัน ถ้าไม่มีการเปลี่ยนแปลงเงื่อนไข)

รูปที่ 1 ผลการทดลองโยนเหรียญ 1 เหรียญ 20 ครั้ง

ทดลองเปลี่ยนค่าความน่าจะเป็นโดยให้โอกาสของการออกหัวมากขึ้นจาก \( \frac{1}{2}\) เป็น \( \frac{4}{5} \)  แล้วดูผลจากรูปที่  2 จะเห็นว่าผลออกมาจะออกหัวมากขึ้น

รูปที่ 2 ผลการทดลองเปลี่ยนไปเมื่อ probability distribution เปลี่ยน


ตัวอย่าง 2 Simple random walk process  
      สมมุติสร้างหุ่นยนต์มาตัวหนึ่งเคลื่อนที่ได้สองทิศทางคือ เดินหน้ากับถอยหลัง ถ้ากำหนดให้การเคลื่อนที่ของหุ่นยนต์เป็นไปแบบสุ่ม (random) ที่ความน่าจะเป็นเท่ากันคือ \( P(\text{forward}) = P(\text{backward}) = \frac{1}{2} \) หากปล่อยให้หุ่นยนต์เคลื่อนที่ไประยะเวลาหนึ่ง อาจได้ผลดังรูปที่  3

รูปที่ 3 จำลองเหตุการณ์ random walk process

ในระบบนี้ กำหนดให้
\(S_t \)  แทนทิศทางของการเคลื่อนที่ ณ เวลา t โดยที่ 
\(S_t = 1 \) แทนการเดินหน้า 1 ก้าว 
\(S_t = -1 \) แทนการถอยหลัง 1 ก้าว 
นั่นคือ \( S_t = \{-1,1 \}\) โดยที่ \( P(S=1) = P(S=-1) = \frac{1}{2} \)
\( X_t \)  แทนระยะทางของหุ่นยนต์ที่เคลื่อนที่ ในเวลา t แล้วจะได้
\[ X_t = S_0 + \sum_{i=1}^t{S_i} \]
ในกรณีที่ง่ายที่สุดคือกำหนดให้ \(S_0 = 0 \)
ลองทำ simulation ของ random walk จากข้อมูลในระบบนี้ดู โดยกำหนดให้ t = 1000 แล้วนำค่าของ \( X_t \) มา plot กราฟ 


import numpy as np
import matplotlib.pyplot as plt

t = 1000
pr = 0.5
step =[-1,1]
increment =  np.random.choice(step,t,pr)
x = np.cumsum(increment)

plt.plot(x)
plt.grid()
plt.xlabel("times")
plt.ylabel("Distance from start")

รูปที่ 4 แสดงส่วนหนึ่งของผลจากเหตุการณ์ ณ เวลา t ใดๆ

รูปที่ 5 กราฟแสดงค่าของระยะทางรวม \( X-t \) ณ เวลา t ใดๆ 


รูปที่ 4 แสดงส่วนหนึ่งของผลของเหตุการณ์ ณ เวลา t ใด จะสังเกตุว่ามีรูปแบบที่ไม่แน่นอน นั่นเพราะ \( S_{t+1} \) ไม่ขึ้นกับค่าของ \( S_{t} \) หรือกล่าวได้ว่า \( S_t \) เป็น random variable  ตัวแปรอีกตัวที่สนใจคือ \( X_t \) ก็นับว่าเป็น random variable ด้วยเช่นกัน เมื่อนำ \( X_t \) มา plot กราฟได้ผลในรูปที่ 5 จะได้ลักษณะคล้ายกับที่เห็นในตลาดหลักทรัพย์ ดังนั้น random walk จึงเป็นตัวแบบหนึ่งที่มักถูกใช้ในการวิเคราะห์การลงทุน

เอกสารอ้างอิง

[1] https://en.wikipedia.org/wiki/Stochastic_process

[2] https://en.wikipedia.org/wiki/Bernoulli_process


ความคิดเห็น