ประมาณค่าโมเดล 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