PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

SQL में पियर्सन सहसंबंध गुणांक सूत्र

एसक्यूएल में पियरसन सहसंबंध गुणांक सूत्र

जैसा कि हमने अपने "पोस्टग्रेएसक्यूएल सहसंबंध फ़ंक्शन का उपयोग करना" पृष्ठ पर चर्चा की, सहसंबंध का उपयोग करके आप दिखा सकते हैं कि संख्याओं की दो श्रृंखला कैसे संबंधित हैं। या तो सकारात्मक सहसंबंध के रूप में उनकी ताकत या नकारात्मक सहसंबंध के रूप में उनकी ताकत, और बीच में किसी भी तरह की ताकत, जिसमें कोई संबंध नहीं है।

सहसंबंध गुणांक के बारे में थोड़ा संक्षेप में बताने के लिए:

सहसंबंध गुणांक दो संख्याओं या संख्याओं के दो सेटों के बीच संबंध की ताकत का निर्धारण करने के लिए व्यापक रूप से उपयोग की जाने वाली विधि है। इस गुणांक की गणना -1 और 1 के बीच की संख्या के रूप में की जाती है। 1 सबसे मजबूत संभावित सकारात्मक सहसंबंध है और -1 सबसे मजबूत संभावित नकारात्मक सहसंबंध है।

एक सकारात्मक सहसंबंध का मतलब है कि जैसे-जैसे एक संख्या बढ़ेगी दूसरी संख्या भी बढ़ेगी।

ऋणात्मक सहसंबंध का अर्थ है कि जैसे-जैसे एक संख्या बढ़ती है दूसरी संख्या घटती जाती है।

दूसरे नंबर का परिणाम पहले के कारण होता है या नहीं, यह यहां निर्धारित नहीं किया जा रहा है, बस दो नंबरों के परिणाम एक दूसरे के साथ मिलकर होते हैं।

अगर सूत्र 0 देता है तो संख्याओं के दो सेटों के बीच बिल्कुल कोई संबंध नहीं है।

पियर्सन का फॉर्मूला इस तरह दिखता है:

जैसा कि बताया गया था, एसक्यूएल में संख्याओं के एक सेट के लिए पियरसन फॉर्मूला की गणना करने के तरीके हैं।

हमने इसे यहां आउट डेमो डेटा स्रोत से सेट किए गए नंबर पर किया है, जो एक परीक्षण के साथ मुफ़्त आता है।

SQL में वह सूत्र इस तरह दिखता है:

((tot_sum - (amt_sum * act_sum / _count)) / sqrt((amt_sum_sq - pow(amt_sum, 2.0) / _count) * (act_sum_sq - pow(act_sum, 2.0) / _count)))

और इस तरह की पूरी क्वेरी में उपयोग किया जाता है:

SELECT
    ((tot_sum - (amt_sum * act_sum / _count)) / sqrt((amt_sum_sq - pow(amt_sum, 2.0) / _count) * (act_sum_sq - pow(act_sum, 2.0) / _count))) AS "Corr Coef Using Pearson"


FROM(
SELECT
    sum("Amount") AS amt_sum,
    sum("Activities") AS act_sum,
    sum("Amount" * "Amount") AS amt_sum_sq,
    sum("Activities" * "Activities") AS act_sum_sq,
    sum("Amount" * "Activities") AS tot_sum,
    count(*) as _count

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

) as b

GROUP BY tot_sum, amt_sum, act_sum, _count, amt_sum_sq, act_sum_sq

इस क्वेरी से हम वही देखेंगे जो हम PostgreSQL में corr() फ़ंक्शन का उपयोग करते हुए देखेंगे:


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. त्रिशंकु क्वेरी समाप्त करें (लेनदेन में निष्क्रिय)

  2. पूर्ण संग्रहीत प्रक्रिया कोड कैसे प्रदर्शित करें?

  3. पीएल/पीजीएसक्यूएल में उपयोग कर एक चर में क्वेरी परिणाम स्टोर करें

  4. PostgreSql डेटाबेस एन्कोडिंग बदलें

  5. PostgreSQL 9.0 में डेटाबेस निर्माण समय कैसे प्राप्त करें?