Program to implement standard deviation of grouped data
Given a class interval and frequency of the class and the task is to find standard deviation of grouped data.
Formula to find standard deviation
Standard Deviation = ?( (?(F x M2 – n x ?2)) / (n-1) )
Where,
F – frequency of the class.
M – mid value of class interval.
? – Mean of the grouped data.
n – sum of frequency.
Examples:
Input : lower_limit[] = {50, 61, 71, 86, 96} upper_limit[] = {60, 70, 85, 95, 100} freq[] = {9, 7, 9, 12, 8} Output : 15.757 Explanation : Standard deviation = sqrt(287127.75 - 45 * 78.3444 * 78.3444) / (45 - 1) = 15.757 Input : lower_limit[] = {37, 47, 57, 67} upper_limit[] = {46, 56, 66, 76} freq[] = {19, 23, 27, 28} Output : 10.9817
CPP
// CPP Program to implement standard // deviation of grouped data. #include <bits/stdc++.h> using namespace std; // Function to find mean of grouped data. float mean( float mid[], int freq[], int n) { float sum = 0, freqSum = 0; for ( int i = 0; i < n; i++) { sum = sum + mid[i] * freq[i]; freqSum = freqSum + freq[i]; } return sum / freqSum; } // Function to find standard // deviation of grouped data. float groupedSD( float lower_limit[], float upper_limit[], int freq[], int n) { float mid[n], sum = 0, freqSum = 0, sd; for ( int i = 0; i < n; i++) { mid[i] = (lower_limit[i] + upper_limit[i]) / 2; sum = sum + freq[i] * mid[i] * mid[i]; freqSum = freqSum + freq[i]; } // Formula to find standard deviation // of grouped data. sd = sqrt ((sum - freqSum * mean(mid, freq, n) * mean(mid, freq, n)) / (freqSum - 1)); return sd; } // Driver function. int main() { // Declare and initialize // the lower limit of interval. float lower_limit[] = { 50, 61, 71, 86, 96 }; // Declare and initialize // the upper limit of interval. float upper_limit[] = { 60, 70, 85, 95, 100 }; int freq[] = { 9, 7, 9, 12, 8 }; // Calculating the size of array. int n = sizeof (lower_limit) / sizeof (lower_limit[0]); cout << groupedSD(lower_limit, upper_limit, freq, n); return 0; } |
Java
// Java program to implement // standard deviation of grouped data. import java.io.*; class GFG { // Function to find mean of grouped data. static float mean( float mid[], int freq[], int n) { float sum = 0 , freqSum = 0 ; for ( int i = 0 ; i < n; i++) { sum = sum + mid[i] * freq[i]; freqSum = freqSum + freq[i]; } return sum / freqSum; } // Function to find standard // deviation of grouped data. static float groupedSD( float lower_limit[], float upper_limit[], int freq[], int n) { float mid[] = new float [n]; float sum = 0 , freqSum = 0 , sd; for ( int i = 0 ; i < n; i++) { mid[i] = (lower_limit[i] + upper_limit[i]) / 2 ; sum = sum + freq[i] * mid[i] * mid[i]; freqSum = freqSum + freq[i]; } // Formula to find standard deviation // deviation of grouped data. sd = ( float )Math.sqrt((sum - freqSum * mean(mid, freq, n) * mean(mid, freq, n)) / (freqSum - 1 )); return sd; } // Driver function. public static void main (String[] args) { // Declare and initialize // the lower limit of interval. float lower_limit[] = { 50 , 61 , 71 , 86 , 96 }; // Declare and initialize // the upper limit of interval. float upper_limit[] = { 60 , 70 , 85 , 95 , 100 }; int freq[] = { 9 , 7 , 9 , 12 , 8 }; // Calculating the size of array. int n = lower_limit.length; System.out.println( groupedSD(lower_limit, upper_limit, freq, n)); } } // This code is contributed by vt_m |
Python3
# Python Program to implement standard # deviation of grouped data. import math # Function to find mean of grouped data. def mean( mid, freq, n): sum = 0 freqSum = 0 for i in range ( 0 ,n): sum = sum + mid[i] * freq[i] freqSum = freqSum + freq[i] return sum / freqSum # Function to find standard # deviation of grouped data. def groupedSD(lower_limit, upper_limit ,freq , n): mid = [[ 0 ] for i in range ( 0 ,n)] sum = 0 freqSum = 0 sd = 0 for i in range ( 0 ,n): mid[i] = (lower_limit[i] + upper_limit[i]) / 2 sum = sum + freq[i] * mid[i] * mid[i] freqSum = freqSum + freq[i] # Formula to find standard deviation # of grouped data. sd = math.sqrt(( sum - freqSum * mean(mid, freq, n) * mean(mid, freq, n)) / (freqSum - 1 )) return sd # driver code # Declare and initialize # the lower limit of interval. lower_limit = [ 50 , 61 , 71 , 86 , 96 ] # Declare and initialize # the upper limit of interval. upper_limit = [ 60 , 70 , 85 , 95 , 100 ] freq = [ 9 , 7 , 9 , 12 , 8 ] # Calculating the size of array. n = len (lower_limit) print (groupedSD(lower_limit, upper_limit, freq, n)) # This code is contributed by Gitanjali. |
C#
// C# program to implement // standard deviation of grouped data. using System; class GFG { // Function to find mean of grouped data. static float mean( float []mid, int []freq, int n) { float sum = 0, freqSum = 0; for ( int i = 0; i < n; i++) { sum = sum + mid[i] * freq[i]; freqSum = freqSum + freq[i]; } return sum / freqSum; } // Function to find standard // deviation of grouped data. static float groupedSD( float []lower_limit, float []upper_limit, int []freq, int n) { float []mid = new float [n]; float sum = 0, freqSum = 0, sd; for ( int i = 0; i < n; i++) { mid[i] = (lower_limit[i] + upper_limit[i]) / 2; sum = sum + freq[i] * mid[i] * mid[i]; freqSum = freqSum + freq[i]; } // Formula to find standard deviation // deviation of grouped data. sd = ( float )Math.Sqrt((sum - freqSum * mean(mid, freq, n) * mean(mid, freq, n)) / (freqSum - 1)); return sd; } // Driver function. public static void Main () { // Declare and initialize // the lower limit of interval. float []lower_limit = { 50, 61, 71, 86, 96 }; // Declare and initialize // the upper limit of interval. float []upper_limit = { 60, 70, 85, 95, 100 }; int []freq = { 9, 7, 9, 12, 8 }; // Calculating the size of array. int n = lower_limit.Length; Console.WriteLine(groupedSD(lower_limit, upper_limit, freq, n)); } } // This code is contributed by vt_m |
PHP
<?php // PHP Program to implement standard // deviation of grouped data. // Function to find mean of grouped data. function mean( $mid , $freq , $n ) { $sum = 0; $freqSum = 0; for ( $i = 0; $i < $n ; $i ++) { $sum = $sum + $mid [ $i ] * $freq [ $i ]; $freqSum = $freqSum + $freq [ $i ]; } return $sum / $freqSum ; } // Function to find standard // deviation of grouped data. function groupedSD( $lower_limit , $upper_limit , $freq , $n ) { $mid = array (); $sum = 0; $freqSum = 0; $sd ; for ( $i = 0; $i < $n ; $i ++) { $mid [ $i ] = ( $lower_limit [ $i ] + $upper_limit [ $i ]) / 2; $sum = $sum + $freq [ $i ] * $mid [ $i ] * $mid [ $i ]; $freqSum = $freqSum + $freq [ $i ]; } // Formula to find standard deviation // of grouped data. $sd = sqrt(( $sum - $freqSum * mean( $mid , $freq , $n ) * mean( $mid , $freq , $n )) / ( $freqSum - 1)); return $sd ; } // Driver Code // Declare and initialize // the lower limit of interval. $lower_limit = array (50, 61, 71, 86, 96); // Declare and initialize // the upper limit of interval. $upper_limit = array (60, 70, 85, 95, 100); $freq = array ( 9, 7, 9, 12, 8 ); // Calculating the size of array. $n = count ( $lower_limit ); echo groupedSD( $lower_limit , $upper_limit , $freq , $n ); // This code is contributed by anuj_67. ?> |
Javascript
<script> // JavaScript program to implement // standard deviation of grouped data. // Function to find mean of grouped data. function mean(mid, freq, n) { let sum = 0, freqSum = 0; for (let i = 0; i < n; i++) { sum = sum + mid[i] * freq[i]; freqSum = freqSum + freq[i]; } return sum / freqSum; } // Function to find standard // deviation of grouped data. function groupedSD(lower_limit, upper_limit, freq, n) { let mid = []; let sum = 0, freqSum = 0, sd; for (let i = 0; i < n; i++) { mid[i] = (lower_limit[i] + upper_limit[i]) / 2; sum = sum + freq[i] * mid[i] * mid[i]; freqSum = freqSum + freq[i]; } // Formula to find standard deviation // deviation of grouped data. sd = Math.sqrt((sum - freqSum * mean(mid, freq, n) * mean(mid, freq, n)) / (freqSum - 1)); return sd; } // Driver code // Declare and initialize // the lower limit of interval. let lower_limit = [50, 61, 71, 86, 96]; // Declare and initialize // the upper limit of interval. let upper_limit = [ 60, 70, 85, 95, 100 ]; let freq = [ 9, 7, 9, 12, 8]; // Calculating the size of array. let n = lower_limit.length; document.write( groupedSD(lower_limit, upper_limit, freq, n)); </script> |
Output:
15.757
Time Complexity: O(n)
Auxiliary Space: O(n)
Contact Us