2010-03-16 10 views
8

एक MySQL (5.1) डेटाबेस तालिका में डेटा का प्रतिनिधित्व नहीं है:MySQL मठ - क्या एक क्वेरी में एक सहसंबंध की गणना करना संभव है?

  • कितनी देर तक एक उपयोगकर्ता एक कार्य करने के लिए ले जाता है और
  • कितने आइटम उपयोगकर्ता कार्य के दौरान संभाला।

क्या MySQL डेटा से संबंधित समर्थन करेगा या क्या मुझे कैलकुएट करने के लिए PHP/C# का उपयोग करने की आवश्यकता है?

सहसंबंध की गणना करने के लिए मुझे एक अच्छा सूत्र कहां मिलेगा (यह आखिरी बार मैंने ऐसा किया है)?

उत्तर

13

यहाँ नमूना सहसंबंध गुणांक का एक मोटा कार्यान्वयन में वर्णित के रूप है:

Wikipedia - Correlation and Dependence

create table sample(x float not null, y float not null); 
insert into sample values (1, 10), (2, 4), (3, 5), (6,17); 

select @ax := avg(x), 
     @ay := avg(y), 
     @div := (stddev_samp(x) * stddev_samp(y)) 
from sample; 

select sum((x - @ax) * (y - @ay))/((count(x) -1) * @div) from sample; 
+---------------------------------------------------------+ 
| sum((x - @ax) * (y - @ay))/((count(x) -1) * @div) | 
+---------------------------------------------------------+ 
|          0.700885077729073 | 
+---------------------------------------------------------+ 
+0

धन्यवाद मार्टिन। बहुत अच्छा काम करता है - मुझे .39 का सहसंबंध मिला - थोड़ा कमजोर लेकिन सही रास्ते पर। –

0

एक नमूना के लिए एक और एक पूरी जनसंख्या के लिए एक पियर्सन सहसंबंध गुणांक के दो जायके, कर रहे हैं। ये एकल-पास हैं और, मेरा मानना ​​है कि दोनों के लिए सही सूत्र:

-- Methods for calculating the two Pearson correlation coefficients 
SELECT 
     -- For Population 
     (avg(x * y) - avg(x) * avg(y))/
     (sqrt(avg(x * x) - avg(x) * avg(x)) * sqrt(avg(y * y) - avg(y) * avg(y))) 
     AS correlation_coefficient_population, 
     -- For Sample 
     (count(*) * sum(x * y) - sum(x) * sum(y))/
     (sqrt(count(*) * sum(x * x) - sum(x) * sum(x)) * sqrt(count(*) * sum(y * y) - sum(y) * sum(y))) 
     AS correlation_coefficient_sample 
    FROM your_table; 

मैंने इसे टी-एसक्यूएल के रूप में विकसित और परीक्षण किया। परीक्षण डेटा जेनरेट करने वाला कोड MySQL में अनुवाद नहीं करता था लेकिन सूत्रों को चाहिए। सुनिश्चित करें कि आपका एक्स और वाई decimals मूल्य हैं; पूर्णांक गणित इन कैल्क्स को काफी प्रभावित कर सकता है।

संबंधित मुद्दे