เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

จำลองโมเดล 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

แก้ไขและรันโค้ด