पांडा में रोलिंग सहसंबंध की गणना कैसे करें: उदाहरणों के साथ
रोलिंग सहसंबंध एक स्लाइडिंग विंडो पर दो समय श्रृंखलाओं के बीच सहसंबंध हैं। इस प्रकार के सहसंबंध का एक लाभ यह है कि आप समय के साथ दो समय श्रृंखलाओं के बीच संबंध की कल्पना कर सकते हैं।
यह ट्यूटोरियल बताता है कि पायथन में पांडा डेटाफ़्रेम के लिए रोलिंग सहसंबंधों की गणना और कल्पना कैसे करें।
पांडा में रोलिंग सहसंबंधों की गणना कैसे करें
मान लीजिए कि हमारे पास निम्नलिखित डेटा फ्रेम है जो 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() फ़ंक्शन के लिए संपूर्ण दस्तावेज़ पा सकते हैं।
अतिरिक्त संसाधन
आर में स्लाइडिंग सहसंबंध की गणना कैसे करें
एक्सेल में रोलिंग सहसंबंध की गणना कैसे करें