मानक विचलन (Standard Deviation) डेटा के प्रसार (spread) को मापता है। PHP में इसे मैन्युअली गणना करके या सांख्यिकी एक्सटेंशन (stats_standard_deviation()) का उपयोग करके प्राप्त किया जा सकता है।
मैनुअल गणना उदाहरण
<?php
function std_deviation($my_arr) {
$no_element = count($my_arr);
$var = 0.0;
$avg = array_sum($my_arr) / $no_element;
foreach ($my_arr as $i) {
$var += pow(($i - $avg), 2);
}
return (float) sqrt($var / $no_element);
}
$my_arr = array(67, 89, 93, 102, 4);
echo "The standard deviation of elements in the array is ";
print_r(std_deviation($my_arr));
?>
आउटपुट
The standard deviation of elements in the array is 35.423156268181
गणना चरण:
- औसत (Mean):
array_sum($arr) / count($arr) - विचरण (Variance): प्रत्येक मान के लिए
($value - $avg)^2का योग, फिर तत्वों की संख्या से विभाजित। - मानक विचलन: विचरण का वर्गमूल
sqrt($variance)।
नमूना बनाम जनसंख्या मानक विचलन
- जनसंख्या (Population):
sqrt($var / $n)— जब डेटा पूरी जनसंख्या हो। - नमूना (Sample):
sqrt($var / ($n - 1))— जब डेटा नमूना हो (बेसल सुधार)।
उपरोक्त कोड जनसंख्या मानक विचलन गणना करता है।
बिल्ट-इन फ़ंक्शन (PECL stats एक्सटेंशन)
<?php // stats एक्सटेंशन आवश्यक: pecl install stats $arr = [67, 89, 93, 102, 4]; $sd_pop = stats_standard_deviation($arr); // जनसंख्या $sd_samp = stats_standard_deviation($arr, true); // नमूना (दूसरा पैरामीटर true) ?>
विचरण के लिए array_reduce का उपयोग
<?php
function stdDev($arr) {
$n = count($arr);
$mean = array_sum($arr) / $n;
$variance = array_reduce($arr, function($carry, $x) use ($mean) {
return $carry + pow($x - $mean, 2);
}, 0) / $n;
return sqrt($variance);
}
?>
व्यावहारिक उपयोग
- वित्तीय डेटा में अस्थिरता मापना।
- गुणवत्ता नियंत्रण में उत्पाद स्थिरता जांचना।
- परीक्षा अंकों का विश्लेषण।