วิธีการคำนวณความสัมพันธ์อัตโนมัติใน 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()
แกน 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()
คุณยังสามารถเปลี่ยนชื่อและสีของวงกลมที่ใช้ในโครงเรื่องด้วยอาร์กิวเมนต์ ชื่อ และ สีได้ :
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 เพิ่มเติมได้ใน หน้านี้