อุณหภูมิเป็น Random Walk (แบบมี Drift) หรือไม่?
โมเดล ARMA เป็นวิธีการพยากรณ์การเปลี่ยนแปลงสภาพภูมิอากาศที่เรียบง่าย แต่ช่วยให้เห็นภาพรวมของหัวข้อต่าง ๆ ที่เรียนมาตลอดคอร์สได้เป็นอย่างดี
DataFrame temp_NY มีข้อมูลอุณหภูมิเฉลี่ยรายปีในย่าน Central Park เมืองนิวยอร์ก ตั้งแต่ปี 1870 ถึง 2016 (ดาวน์โหลดจาก NOAA ที่นี่) ให้พล็อตข้อมูลและทดสอบว่าข้อมูลนี้เป็น Random Walk (แบบมี Drift) หรือไม่
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาด้วย Python
คำแนะนำการฝึกหัด
- แปลง index ของปีให้เป็น datetime object โดยใช้
pd.to_datetime()และเนื่องจากข้อมูลเป็นรายปี ให้ส่งอาร์กิวเมนต์format='%Y'ด้วย - พล็อตข้อมูลโดยใช้
.plot() - คำนวณค่า p-value จากการทดสอบ Augmented Dickey Fuller โดยใช้ฟังก์ชัน
adfuller - บันทึกผลการทดสอบ ADF ไว้ในตัวแปร
resultแล้วพิมพ์ค่า p-value จากresult[1]
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the adfuller function from the statsmodels module
from statsmodels.tsa.stattools import adfuller
# Convert the index to a datetime object
temp_NY.index = pd.to_datetime(___.___, format=___)
# Plot average temperatures
temp_NY.___
plt.show()
# Compute and print ADF p-value
result = ___(temp_NY['TAVG'])
print("The p-value for the ADF test is ", result[1])