ฟังก์ชันออโตคอร์รีเลชัน

การวิเคราะห์อนุกรมเวลาด้วย Python

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

ฟังก์ชันออโตคอร์รีเลชัน

  • Autocorrelation Function (ACF): ค่าออโตคอร์รีเลชันในรูปฟังก์ชันของ lag
  • เท่ากับ 1 ที่ lag-zero
  • มีข้อมูลที่น่าสนใจนอกเหนือจาก lag-one
การวิเคราะห์อนุกรมเวลาด้วย Python

ตัวอย่าง ACF 1: ฟังก์ชันออโตคอร์รีเลชันอย่างง่าย

  • สามารถใช้ค่าสองลำดับสุดท้ายในอนุกรมเพื่อพยากรณ์ได้
การวิเคราะห์อนุกรมเวลาด้วย Python

ตัวอย่าง ACF 2: กำไรตามฤดูกาล

  • กำไรของ H&R Block
  • ACF ของ H&R Block
การวิเคราะห์อนุกรมเวลาด้วย Python

ตัวอย่าง ACF 3: ประโยชน์ในการเลือกโมเดล

  • การเลือกโมเดล

การวิเคราะห์อนุกรมเวลาด้วย Python

พล็อต ACF ใน Python

  • นำเข้าโมดูล:
    from statsmodels.graphics.tsaplots import plot_acf
    
  • พล็อต ACF:
    plot_acf(x, lags= 20, alpha=0.05)
    
การวิเคราะห์อนุกรมเวลาด้วย Python

ช่วงความเชื่อมั่นของ ACF

การวิเคราะห์อนุกรมเวลาด้วย Python

ช่วงความเชื่อมั่นของ ACF

  • อาร์กิวเมนต์ alpha กำหนดความกว้างของช่วงความเชื่อมั่น
  • ตัวอย่าง: alpha=0.05
    • มีโอกาส 5% ที่ค่าออโตคอร์รีเลชันจริงเท่ากับศูนย์แล้วตกอยู่นอกแถบสีน้ำเงิน
  • แถบความเชื่อมั่นจะกว้างขึ้นเมื่อ:
    • Alpha ต่ำลง
    • จำนวนข้อสังเกตน้อยลง
  • ภายใต้สมมติฐานที่เรียบง่าย แถบความเชื่อมั่น 95% คือ $\pm 2/\sqrt{N}$
  • หากไม่ต้องการแสดงแถบบนกราฟ ให้ตั้งค่า alpha=1
การวิเคราะห์อนุกรมเวลาด้วย Python

ค่า ACF แทนการพล็อตกราฟ

from statsmodels.tsa.stattools import acf
print(acf(x))
[ 1.         -0.6765505   0.34989905 -0.01629415 -0.02507013  0.01930354
 -0.03186545  0.01399904 -0.03518128  0.02063168 -0.02620646 -0.00509828
...
  0.07191516 -0.12211912  0.14514481 -0.09644228  0.05215882]
การวิเคราะห์อนุกรมเวลาด้วย Python

มาฝึกกันเถอะ!

การวิเคราะห์อนุกรมเวลาด้วย Python

Preparing Video For Download...