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


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

บทช่วยสอนนี้จะอธิบายวิธีคำนวณและแสดงภาพความสัมพันธ์แบบกลิ้งของ Pandas DataFrame ใน Python

วิธีการคำนวณความสัมพันธ์แบบกลิ้งในแพนด้า

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ที่แสดงจำนวนผลิตภัณฑ์ทั้งหมดที่ขายสำหรับผลิตภัณฑ์สองชนิดที่แตกต่างกัน ( x และ y ) ในช่วงระยะเวลา 15 เดือน:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd.DataFrame({'month': np. arange (1, 16),
                   'x': [13, 15, 16, 15, 17, 20, 22, 24, 25, 26, 23, 24, 23, 22, 20],
                   'y': [22, 24, 23, 27, 26, 26, 27, 30, 33, 32, 27, 25, 28, 26, 28]})

#view first six rows
df. head ()

  month xy
1 1 13 22
2 2 15 24
3 3 16 23
4 4 15 27
5 5 17 26
6 6 20 26

ในการคำนวณความสัมพันธ์แบบกลิ้งในแพนด้า เราสามารถใช้ ฟังก์ชัน Rolling.corr()

ฟังก์ชันนี้ใช้ไวยากรณ์ต่อไปนี้:

df[‘x’].กลิ้ง(กว้าง).corr(df[‘y’])

ทอง:

  • df: ชื่อเฟรมข้อมูล
  • width: จำนวนเต็มระบุความกว้างของหน้าต่างสำหรับการเลื่อนความสัมพันธ์
  • x, y: ชื่อคอลัมน์ทั้งสองเพื่อคำนวณความสัมพันธ์แบบเลื่อนระหว่าง

ต่อไปนี้เป็นวิธีใช้ฟังก์ชันนี้เพื่อคำนวณความสัมพันธ์ต่อเนื่องของยอดขายในช่วง 3 เดือนระหว่างผลิตภัณฑ์ x และผลิตภัณฑ์ y :

 #calculate 3-month rolling correlation between sales for x and y
df[' x ']. rolling (3). corr (df[' y '])

0 NaN
1 NaN
2 0.654654
3 -0.693375
4 -0.240192
5 -0.802955
6 0.802955
7 0.960769
8 0.981981
9 0.654654
10 0.882498
11 0.817057
12 -0.944911
13 -0.327327
14 -0.188982
dtype:float64

ฟังก์ชันนี้จะส่งคืนความสัมพันธ์ระหว่างยอดขายของผลิตภัณฑ์สองรายการในช่วง 3 เดือนที่ผ่านมา ตัวอย่างเช่น:

  • ความสัมพันธ์ของยอดขายในเดือนที่ 1-3 เท่ากับ 0.654654
  • ความสัมพันธ์ของยอดขายในเดือนที่ 2-4 อยู่ที่ -0.693375
  • ความสัมพันธ์ของยอดขายในเดือนที่ 3-5 อยู่ที่ -0.240192

และอื่นๆ

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

 #calculate 6-month rolling correlation between sales for x and y
df[' x ']. rolling (6). corr (df[' y ']) 
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 0.558742
6 0.485855
7 0.693103
8 0.756476
9 0.895929
10 0.906772
11 0.715542
12 0.717374
13 0.768447
14 0.454148
dtype:float64

ฟังก์ชันนี้จะส่งคืนความสัมพันธ์ระหว่างยอดขายผลิตภัณฑ์ทั้งสองรายการในช่วง 6 เดือนที่ผ่านมา ตัวอย่างเช่น:

  • ความสัมพันธ์ของยอดขายในเดือนที่ 1-6 เท่ากับ 0.558742
  • ความสัมพันธ์ของยอดขายในเดือนที่ 2-7 เท่ากับ 0.485855
  • ความสัมพันธ์ของยอดขายในเดือนที่ 3-8 เท่ากับ 0.693103

และอื่นๆ

ความคิดเห็น

ต่อไปนี้เป็นหมายเหตุบางส่วนเกี่ยวกับฟังก์ชันที่ใช้ในตัวอย่างเหล่านี้:

  • ความ กว้าง (เช่น หน้าต่างแบบเลื่อนลง) จะต้องเท่ากับหรือมากกว่า 3 เพื่อคำนวณความสัมพันธ์
  • คุณสามารถดูเอกสารฉบับเต็มสำหรับฟังก์ชัน Rolling.corr() ได้ที่นี่

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

วิธีการคำนวณความสัมพันธ์แบบเลื่อนใน R
วิธีการคำนวณความสัมพันธ์แบบโรลลิ่งใน Excel

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

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