การปรับตามฤดูกาลในช่วงฤดูยื่นภาษี
อนุกรมเวลาหลายชุดมีรูปแบบตามฤดูกาลที่ชัดเจน กระบวนการที่ใช้ขจัดองค์ประกอบตามฤดูกาลออกจากอนุกรมเวลาเรียกว่า การปรับตามฤดูกาล (seasonal adjustment) ตัวอย่างเช่น ข้อมูลเศรษฐกิจส่วนใหญ่ที่รัฐบาลเผยแพร่จะผ่านการปรับตามฤดูกาลมาแล้ว
ก่อนหน้านี้เราเห็นว่าการหาผลต่างอันดับหนึ่งของ random walk จะได้กระบวนการ white noise ที่มีความนิ่ง สำหรับการปรับตามฤดูกาล แทนที่จะหาผลต่างอันดับหนึ่ง เราจะหาผลต่างโดยใช้ lag ที่สอดคล้องกับคาบของข้อมูล
ลองดู ACF ของรายได้รายไตรมาสของ H&R Block อีกครั้ง ซึ่งโหลดไว้แล้วใน DataFrame HRB จะเห็นองค์ประกอบตามฤดูกาลได้ชัดเจน ค่า autocorrelation สูงที่ lag 4, 8, 12, 16, … เนื่องจากรายได้พุ่งสูงทุก 4 ไตรมาสในช่วงฤดูยื่นภาษี ให้ปรับตามฤดูกาลโดยหาผลต่างอันดับ 4 (ซึ่ง 4 แทนคาบของอนุกรม) แล้วคำนวณ autocorrelation ของอนุกรมที่แปลงแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาด้วย Python
คำแนะนำการฝึกหัด
- สร้าง DataFrame ใหม่สำหรับรายได้ที่ปรับตามฤดูกาล โดยหาผลต่างที่ lag 4 ของรายได้รายไตรมาสด้วยเมธอด
.diff() - ตรวจสอบ 10 แถวแรกของ DataFrame ที่ปรับตามฤดูกาลแล้ว และสังเกตว่า 4 แถวแรกจะเป็น
NaN - ลบแถวที่เป็น
NaNออกด้วยเมธอด.dropna() - พล็อต autocorrelation function ของ DataFrame ที่ปรับตามฤดูกาลแล้ว
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the plot_acf module from statsmodels
from statsmodels.graphics.tsaplots import plot_acf
# Seasonally adjust quarterly earnings
HRBsa = ___
# Print the first 10 rows of the seasonally adjusted series
print(HRBsa.___)
# Drop the NaN data in the first four rows
HRBsa = ___
# Plot the autocorrelation function of the seasonally adjusted series
plot_acf(HRBsa)
plt.show()