Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรม Python คำนวณ Autocorrelation ของ Series กับจำนวน Lag ที่กำหนด

สมมติว่าคุณมี Series และต้องการคำนวณ autocorrelation (ความสัมพันธ์เชิงอนุกรมเวลา) รวมถึง autocorrelation ที่มี lag ระบุ

วิธีแก้ปัญหา

  1. สร้าง Series (มีค่า NaN ได้)
  2. ใช้ series.autocorr() คำนวณ autocorrelation lag 1 (default)
  3. ใช้ series.autocorr(lag=2) คำนวณ autocorrelation lag 2

ตัวอย่างโค้ด

import pandas as pd
import numpy as np

series = pd.Series([2, 10, 3, 4, 9, 10, 2, np.nan, 3])

print("Series ต้นฉบับ:\n", series)

print("\nAutocorrelation (lag=1 default):")
print(series.autocorr())

print("\nAutocorrelation (lag=2):")
print(series.autocorr(lag=2))

ผลลัพธ์

Series ต้นฉบับ:
0     2.0
1    10.0
2     3.0
3     4.0
4     9.0
5    10.0
6     2.0
7     NaN
8     3.0
dtype: float64

Autocorrelation (lag=1 default):
-0.4711538461538461

Autocorrelation (lag=2):
-0.2933396642805515

คำอธิบาย:

  • Autocorrelation: ความสัมพันธ์ระหว่าง series กับตัวเองที่เลื่อนเวลา (lag)
  • lag=1 เปรียบเทียบค่ากับค่าก่อนหน้า 1 ช่วง
  • lag=2 เปรียบเทียบค่ากับค่าก่อนหน้า 2 ช่วง
  • ค่าอยู่ระหว่าง -1 ถึง 1: ใกล้ 1 = สัมพันธ์เชิงบวก, ใกล้ -1 = สัมพันธ์เชิงลบ, ใกล้ 0 = ไม่สัมพันธ์
  • ค่า NaN จะถูกข้ามในการคำนวณ