पांडा में रोलिंग सहसंबंध की गणना कैसे करें: उदाहरणों के साथ


रोलिंग सहसंबंध एक स्लाइडिंग विंडो पर दो समय श्रृंखलाओं के बीच सहसंबंध हैं। इस प्रकार के सहसंबंध का एक लाभ यह है कि आप समय के साथ दो समय श्रृंखलाओं के बीच संबंध की कल्पना कर सकते हैं।

यह ट्यूटोरियल बताता है कि पायथन में पांडा डेटाफ़्रेम के लिए रोलिंग सहसंबंधों की गणना और कल्पना कैसे करें।

पांडा में रोलिंग सहसंबंधों की गणना कैसे करें

मान लीजिए कि हमारे पास निम्नलिखित डेटा फ्रेम है जो 15 महीने की अवधि में दो अलग-अलग उत्पादों ( x और y ) के लिए बेचे गए उत्पादों की कुल संख्या प्रदर्शित करता है:

 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

पांडा में रोलिंग सहसंबंध की गणना करने के लिए, हम रोलिंग.कोर() फ़ंक्शन का उपयोग कर सकते हैं।

यह फ़ंक्शन निम्नलिखित सिंटैक्स का उपयोग करता है:

df[‘x’].rolling(width).corr(df[‘y’])

सोना:

  • डीएफ: डेटा फ़्रेम नाम
  • चौड़ाई: स्लाइडिंग सहसंबंध के लिए विंडो की चौड़ाई निर्दिष्ट करने वाला पूर्णांक
  • x, y: बीच स्लाइडिंग सहसंबंध की गणना करने के लिए दो कॉलम नाम

उत्पाद x और उत्पाद y के बीच बिक्री के 3 महीने के रोलिंग सहसंबंध की गणना करने के लिए इस फ़ंक्शन का उपयोग कैसे करें:

 #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() फ़ंक्शन के लिए संपूर्ण दस्तावेज़ पा सकते हैं।

अतिरिक्त संसाधन

आर में स्लाइडिंग सहसंबंध की गणना कैसे करें
एक्सेल में रोलिंग सहसंबंध की गणना कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *