จำลองโมเดล Random Walk ที่มี Drift
Random walk (RW) ไม่จำเป็นต้องวนเวียนรอบศูนย์เสมอไป แต่สามารถมีแนวโน้มขึ้นหรือลงได้ ซึ่งเรียกว่า drift หรือแนวโน้มตามเวลา โดยทำได้โดยการเพิ่มค่า intercept เข้าไปในโมเดล RW ซึ่งจะสอดคล้องกับความชันของแนวโน้มเวลา
อีกวิธีหนึ่งคือการคำนวณผลรวมสะสม (cumulative sum) ของอนุกรม white noise (WN) ที่มีค่าเฉลี่ยคงที่ โดยค่าเฉลี่ยนั้นจะสอดคล้องกับความชันของแนวโน้ม RW
ในการจำลองข้อมูลจากโมเดล RW ที่มี drift ให้ใช้ฟังก์ชัน arima.sim() พร้อมอาร์กิวเมนต์ model = list(order = c(0, 1, 0)) เช่นเดิม แต่คราวนี้ให้เพิ่มอาร์กิวเมนต์ mean = ... เพื่อกำหนดค่า drift หรือ intercept
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน R
คำแนะนำการฝึกหัด
- ใช้
arima.sim()เพื่อสร้างโมเดล RW อีกตัวหนึ่ง กำหนดอาร์กิวเมนต์modelเป็นlist(order = c(0, 1, 0))เพื่อสร้างโมเดลประเภท RW และกำหนดnเป็น100เพื่อให้ได้ข้อมูล 100 ค่า จากนั้นกำหนดอาร์กิวเมนต์meanเป็น1เพื่อให้เกิด drift แล้วบันทึกผลลัพธ์ไว้ในตัวแปรrw_drift - ใช้
ts.plot()เพื่อพล็อตข้อมูลrw_drift - ใช้
diff()เพื่อคำนวณผลต่างอันดับแรก (first difference) ของข้อมูลrw_driftแล้วบันทึกไว้เป็นrw_drift_diff - ใช้
ts.plot()อีกครั้งเพื่อพล็อตrw_drift_diff
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Generate a RW model with a drift uing arima.sim
rw_drift <- arima.sim(model = ___, n = ___, mean = ___)
# Plot rw_drift
# Calculate the first difference series
rw_drift_diff <-
# Plot rw_drift_diff