PostgreSQL में कोरिलेशन फंक्शन का उपयोग करना
एक फ़ंक्शन जो यह निर्धारित करने में उपयोगी हो सकता है कि दो नंबर एक दूसरे से कैसे संबंधित हैं, वह है सहसंबंध फ़ंक्शन।
इस ट्यूटोरियल में हम corr() PostrgreSQL फंक्शन के बारे में बताएंगे और साथ ही इसे रियल वर्ल्ड यूज में भी दिखाएंगे।
सहसंबंध गुणांक दो संख्याओं या संख्याओं के दो सेटों के बीच संबंध की ताकत का निर्धारण करने के लिए व्यापक रूप से उपयोग की जाने वाली विधि है। इस गुणांक की गणना -1 और 1 के बीच की संख्या के रूप में की जाती है। 1 सबसे मजबूत संभावित सकारात्मक सहसंबंध है और -1 सबसे मजबूत संभावित नकारात्मक सहसंबंध है।
एक सकारात्मक सहसंबंध का मतलब है कि जैसे-जैसे एक संख्या बढ़ेगी दूसरी संख्या भी बढ़ेगी।
ऋणात्मक सहसंबंध का अर्थ है कि जैसे-जैसे एक संख्या बढ़ती है दूसरी संख्या घटती जाती है।
दूसरे नंबर का परिणाम पहले के कारण होता है या नहीं, यह यहां निर्धारित नहीं किया जा रहा है, बस दो नंबरों के परिणाम एक दूसरे के साथ मिलकर होते हैं।
अगर सूत्र 0 देता है तो संख्याओं के दो सेटों के बीच बिल्कुल कोई संबंध नहीं है।
एक उदाहरण में जहां सहसंबंध गुणांक .7 है, x अक्ष पर संख्या के 1 की प्रत्येक वृद्धि के लिए y अक्ष पर संख्या में .7 की वृद्धि होती है।
संख्या जितनी बड़ी होगी, सहसंबंध उतना ही मजबूत होगा। यह "-" चिन्ह से पहले है या नहीं, इससे कोई फर्क नहीं पड़ता।
सबसे लोकप्रिय सहसंबंध गुणांक में से एक पियर्सन सहसंबंध गुणांक है, और अधिक जानकारी यहां एक अन्य ट्यूटोरियल में मिल सकती है।
पोस्टग्रेस्क्ल सहसंबंध फ़ंक्शन पर कुछ परीक्षण चलाने के बाद, यह तीन बार पियरसन सहसंबंध गुणांक की गणना के बराबर आया।
PostgreSQL फ़ंक्शन का उपयोग करते समय महत्वपूर्ण नोट यह है कि यह एक एकत्रीकरण फ़ंक्शन है। इसका मतलब है कि यह संख्याओं की दो श्रृंखलाओं की संपूर्णताओं के सहसंबंध की गणना करेगा। यह श्रृंखला के भीतर दो संख्याओं के सहसंबंध को प्रदर्शित नहीं करेगा।
पोस्टग्रेज़ में पहले से ही सहसंबंध फ़ंक्शन का उपयोग करना बहुत सीधा है।
हमने इसे हमारी साइट पर मौजूद चार्टियो डेमो स्रोत में वेबसाइट गतिविधियों और राजस्व की एक श्रृंखला पर सहसंबंध गुणांक निर्धारित करने के लिए संख्याओं की दो श्रृंखलाओं के एक समग्र कार्य के रूप में उपयोग किया।
इन दोनों मापों को एक स्कैटर प्लॉट पर प्लॉट करने पर, सकारात्मक सहसंबंध का एक पैटर्न सामने आता है। सहसंबंध गुणांक का उपयोग करना PostgreSQL फ़ंक्शन 0.9 का परिणाम दिखाता है जो लगभग प्रत्यक्ष सहसंबंध है।
वह क्वेरी इस तरह दिखती है:
SELECT
corr("Amount", "Activities") as "Corr Coef Using PGSQL Func"
FROM(
SELECT
DATE_TRUNC('day', p.payment_date)::DATE AS "Day",
SUM(p.amount) AS "Amount",
COUNT(DISTINCT a.activity_id) AS "Activities"
FROM
public.payments p
INNER JOIN public.subscriptions s ON p.subscription_id = s.subscription_id
INNER JOIN public.users u ON s.user_id = u.user_id
INNER JOIN public.activity a ON a.user_id = u.user_id
GROUP BY 1) as a
इस विशेष मामले में आपको एक सबक्वेरी में एकत्रित मेट्रिक्स के एकत्रीकरण फ़ंक्शन का उपयोग करने की आवश्यकता होगी। यह बहुत सीधा है, बस उन दो कॉलमों को जोड़ें जिन्हें आप कॉलम द्वारा अलग किए गए कोष्ठकों के बीच के सहसंबंध को निर्धारित करने का प्रयास कर रहे हैं और आपका आउटपुट एकत्रीकरण फ़ंक्शन द्वारा गणना के अनुसार सहसंबंध गुणांक होगा, जैसा कि हम निम्नलिखित ट्यूटोरियल में बताते हैं:लगभग बिल्कुल पियर्सन फॉर्मूला के समान।