2013-03-09 6 views
5

के साथ मानक विचलन मैं अपाचे कॉमन्स मैथ का उपयोग कर वेक्टर के एसडी की गणना कर रहा हूं। समस्या: मैं हाथअपाचे कॉमन्स मैथ

DescriptiveStatistics stats = new DescriptiveStatistics(); 
stats.addValue(value1); 
... 
stats.addValue(value8); 
stats.getStandardDeviation(); 

जैसे द्वारा से अलग मान मिलता है, मान लेते हैं [1699.0, 1819.0, 1699.0, 1719.0, 1689.0, 1709.0, 1819.0, 1689.0]। एसडी 52.067 होना चाहिए लेकिन कॉमन्स मैथ = 55.662 होना चाहिए।

मैं क्या गलत कर रहा हूं?

उत्तर

5

अपाचे आप "मानक विचलन" दे रहा है, लेकिन आप "जनसंख्या मानक विचलन"

शायद तुम getPopulationVariance() इस्तेमाल कर सकते हैं और फिर वर्गमूल खुद लेने के लिए देख रहे हैं? मुझे डीएस लाइब्रेरी में इसके लिए कोई फ़ंक्शन नहीं दिख रहा है।

+0

हाँ, बस इतना ही। धन्यवाद। – dotwin

6

अपाचे मानक डिवीजन वर्ग दोनों मानों की गणना के लिए उपयोग किया जा सकता है: "मानक विचलन" और "जनसंख्या मानक विचलन"।

कंप्यूटिंग दूसरा मूल्य के लिए साथ

StandardDeviation sd = new StandardDeviation(false); 

उदाहरण यह प्रारंभ:

double[] v = {1.0, 2.0, 3.0, 4.0, 5.0}; 
    StandardDeviation sd = new StandardDeviation(false); 
    sd.evaluate(v); 
    // returns 1.414 

    StandardDeviation sd2 = new StandardDeviation(); 
    sd2.evaluate(v); 
    // returns 1.581 
संबंधित मुद्दे