วิธีการคำนวณความสัมพันธ์ข้ามใน python


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

ความสัมพันธ์ประเภทนี้มีประโยชน์ในการคำนวณเพราะสามารถบอกเราได้ว่าค่าในอนุกรมเวลาหนึ่งเป็นการทำนายค่าในอนาคตในอนุกรมเวลาอื่นหรือไม่ กล่าวอีกนัยหนึ่ง มันสามารถบอกเราว่าอนุกรมเวลาหนึ่งเป็นตัวบ่งชี้ที่สำคัญสำหรับอนุกรมเวลาอื่นหรือไม่

ความสัมพันธ์ประเภทนี้ถูกนำมาใช้ในหลายสาขา ได้แก่:

ธุรกิจ: การใช้จ่ายด้านการตลาดมักถือเป็นตัวบ่งชี้ชั้นนำของรายได้ทางธุรกิจในอนาคต ตัวอย่างเช่น หากบริษัทใช้จ่ายเงินจำนวนมากผิดปกติเพื่อการตลาดในหนึ่งไตรมาส รายได้รวมก็ควรจะสูง x ไตรมาสในภายหลัง

เศรษฐกิจ: ดัชนีความเชื่อมั่นผู้บริโภค (CCI) ถือเป็นตัวบ่งชี้ชั้นนำของผลิตภัณฑ์มวลรวมภายในประเทศ (GDP) ของประเทศ ตัวอย่างเช่น หาก CCI สูงในเดือนหนึ่ง GDP ก็มีแนวโน้มที่จะสูงขึ้น x เดือนต่อมา

ตัวอย่างต่อไปนี้แสดงวิธีคำนวณความสัมพันธ์ข้ามระหว่างอนุกรมเวลาสองชุดใน Python

ตัวอย่าง: วิธีการคำนวณความสัมพันธ์ข้ามใน Python

สมมติว่าเรามีอนุกรมเวลาต่อไปนี้ใน Python ที่แสดงการใช้จ่ายทางการตลาดทั้งหมด (เป็นพัน) สำหรับบริษัทหนึ่งๆ รวมถึงรายได้รวม (เป็นพัน) เป็นเวลา 12 เดือนติดต่อกัน:

 import numpy as np

#define data 
marketing = n.p. array ([3, 4, 5, 5, 7, 9, 13, 15, 12, 10, 8, 8])
income = np. array ([21, 19, 22, 24, 25, 29, 30, 34, 37, 40, 35, 30])

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

 import statsmodels. api as sm

#calculate cross correlation
sm. tsa . stattools . ccf (marketing, revenue, adjusted= False )

array([ 0.77109358, 0.46238654, 0.19352232, -0.06066296, -0.28159595,
       -0.44531104, -0.49159463, -0.35783655, -0.15697476, -0.03430078,
        0.01587722, 0.0070399 ])

ต่อไปนี้เป็นวิธีตีความผลลัพธ์นี้:

  • ความสัมพันธ์ข้ามที่ lag 0 คือ 0.771
  • ความสัมพันธ์ข้ามที่ความล่าช้า 1 คือ 0.462
  • ความสัมพันธ์ข้ามที่ lag 2 คือ 0.194
  • ความสัมพันธ์ข้ามที่ lag 3 คือ -0.061

และอื่นๆ

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

สิ่งนี้สมเหตุสมผล: เราคาดว่าการใช้จ่ายด้านการตลาดที่สูงในเดือนหนึ่งๆ จะเป็นการคาดการณ์ถึงรายได้ที่เพิ่มขึ้นในช่วงสองเดือนข้างหน้า แต่ไม่จำเป็นต้องเพิ่มรายได้ในอีกหลายเดือนนับจากนี้

แหล่งข้อมูลเพิ่มเติม

วิธีการคำนวณความสัมพันธ์อัตโนมัติใน Python
วิธีการคำนวณความสัมพันธ์บางส่วนใน Python
วิธีการคำนวณความสัมพันธ์แบบ point-biserial ใน Python

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

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