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> |
15.757
Time Complexity: O(n)
Auxiliary Space: O(n)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
