วิธีการคำนวณความสัมพันธ์อัตโนมัติใน python


ความสัมพันธ์อัตโนมัติ จะวัดระดับความคล้ายคลึงกันระหว่างอนุกรมเวลาและเวอร์ชันที่ล่าช้าของตัวเองในช่วงเวลาที่ต่อเนื่องกัน

บางครั้งเรียกว่า “ความสัมพันธ์แบบอนุกรม” หรือ “ความสัมพันธ์แบบล่าช้า” เนื่องจากเป็นการวัดความสัมพันธ์ระหว่างค่าปัจจุบันของตัวแปรและค่าในอดีต

เมื่อความสัมพันธ์อัตโนมัติในอนุกรมเวลาสูง การทำนายค่าในอนาคตก็กลายเป็นเรื่องง่ายโดยการอ้างอิงถึงค่าในอดีต

วิธีการคำนวณความสัมพันธ์อัตโนมัติใน Python

สมมติว่าเรามีอนุกรมเวลาต่อไปนี้ใน Python ที่แสดงค่าของตัวแปรบางตัวสำหรับช่วงเวลาที่แตกต่างกัน 15 ช่วง:

 #define data
x = [22, 24, 25, 25, 28, 29, 34, 37, 40, 44, 51, 48, 47, 50, 51]

เราสามารถคำนวณความสัมพันธ์อัตโนมัติสำหรับความล่าช้าแต่ละครั้งในอนุกรมเวลาได้โดยใช้ ฟังก์ชัน acf() จากไลบรารี statsmodels:

 import statsmodels.api as sm

#calculate autocorrelations
sm.tsa.acf(x)

array([ 1. , 0.83174224, 0.65632458, 0.49105012, 0.27863962,
        0.03102625, -0.16527446, -0.30369928, -0.40095465, -0.45823389,
       -0.45047733])

วิธีการตีความผลลัพธ์มีดังนี้:

  • ความสัมพันธ์อัตโนมัติที่ความล่าช้า 0 คือ 1
  • ความสัมพันธ์อัตโนมัติที่ความล่าช้า 1 คือ 0.8317
  • ความสัมพันธ์อัตโนมัติที่ความล่าช้า 2 คือ 0.6563
  • ความสัมพันธ์อัตโนมัติที่ lag 3 คือ 0.4910

และอื่นๆ

นอกจากนี้เรายังสามารถระบุจำนวนความล่าช้าที่จะใช้กับอาร์กิวเมนต์ nlags ได้:

 sm.tsa.acf(x, nlags= 5 )

array([1.0, 0.83174224, 0.65632458, 0.49105012, 0.27863962, 0.03102625])

วิธีการพล็อตฟังก์ชันความสัมพันธ์อัตโนมัติใน Python

เราสามารถพล็อตฟังก์ชันความสัมพันธ์อัตโนมัติสำหรับอนุกรมเวลาใน Python โดยใช้ ฟังก์ชัน tsaplots.plot_acf() จากไลบรารี statsmodels:

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags=10)
plt.show() 

ฟังก์ชันความสัมพันธ์อัตโนมัติใน Python

แกน x จะแสดงจำนวนของความล่าช้า และแกน y จะแสดงความสัมพันธ์อัตโนมัติที่จำนวนความล่าช้าดังกล่าว ตามค่าเริ่มต้น พล็อตเริ่มต้นที่ lag = 0 และความสัมพันธ์อัตโนมัติจะเป็น 1 เสมอที่ lag = 0

นอกจากนี้เรายังสามารถขยายความล่าช้าแรกได้โดยเลือกใช้ความล่าช้าน้อยลงพร้อมกับอาร์กิวเมนต์ ความล่าช้า :

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags= 5 )
plt.show() 

พล็อตฟังก์ชันความสัมพันธ์อัตโนมัติใน Python

คุณยังสามารถเปลี่ยนชื่อและสีของวงกลมที่ใช้ในโครงเรื่องด้วยอาร์กิวเมนต์ ชื่อ และ สีได้ :

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags= 5, color='g', title='Autocorrelation function' )
plt.show() 

ฟังก์ชันความสัมพันธ์อัตโนมัติใน Python พร้อมชื่อที่กำหนดเอง

คุณสามารถค้นหาบทช่วยสอน Python เพิ่มเติมได้ใน หน้านี้

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *