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

ประมาณค่าโมเดล Random Walk

สำหรับอนุกรมเวลา y ที่กำหนด เราสามารถ fit โมเดล random walk แบบมี drift ได้โดยหาผลต่างอันดับแรกของข้อมูลก่อน แล้วจึง fit โมเดล white noise (WN) กับข้อมูลที่ผ่านการ differencing โดยใช้คำสั่ง arima() พร้อมอาร์กิวเมนต์ order = c(0, 0, 0))

คำสั่ง arima() จะแสดงข้อมูลและผลลัพธ์เกี่ยวกับโมเดลที่ fit แล้ว ภายใต้หัวข้อ Coefficients: จะมีค่า drift ที่ประมาณได้ ซึ่งเรียกว่า intercept พร้อมค่าความคลาดเคลื่อนมาตรฐานโดยประมาณ (s.e.) แสดงอยู่ด้านล่าง นอกจากนี้ยังมีการประมาณค่า variance ของส่วน WN ในโมเดล ซึ่งแสดงภายใต้ป้ายกำกับ sigma^2

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์อนุกรมเวลาใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • โหลดอนุกรมเวลา random_walk ไว้แล้ว และแสดงผลในกราฟที่อยู่ติดกัน ใช้ diff() เพื่อหาผลต่างอันดับแรกของข้อมูล แล้วบันทึกไว้ใน rw_diff
  • ใช้ ts.plot() เพื่อพล็อตข้อมูลที่ผ่านการ differencing แล้ว
  • ใช้ arima() เพื่อ fit โมเดล WN สำหรับข้อมูลที่ differencing แล้ว โดยกำหนดอาร์กิวเมนต์ x เป็น rw_diff และอาร์กิวเมนต์ order เป็น c(0, 0, 0) แล้วเก็บโมเดลไว้ใน model_wn
  • เก็บค่า intercept ของ model_wn ไว้ใน int_wn โดยดึงค่านี้ได้จาก model_wn$coef
  • ใช้ ts.plot() เพื่อพล็อตกราฟเดิมของ random_walk อีกครั้ง
  • เพิ่มเส้นแนวโน้มเวลาที่ประมาณได้ลงในกราฟด้วยฟังก์ชัน abline() โดยใช้ int_wn เป็นอาร์กิวเมนต์ที่สอง

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Difference your random_walk data
rw_diff <- 

# Plot rw_diff


# Now fit the WN model to the differenced data
model_wn <-

# Store the value of the estimated time trend (intercept)
int_wn <- 

# Plot the original random_walk data


# Use abline(0, ...) to add time trend to the figure

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