Skip to content
Related Articles
Open in App
Not now

Related Articles

How to get the standard deviation of an array of numbers using JavaScript ?

Improve Article
Save Article
  • Last Updated : 16 Dec, 2022
Improve Article
Save Article

Given an array and the task is to calculate its standard deviation of it.

Example:

Input:  [1, 2, 3, 4, 5]
Output: 1.4142135623730951

Input:  [23, 4, 6, 457, 65, 7, 45, 8]
Output: 145.13565852332775

Please refer to Mean, Variance, and Standard Deviation for details.

Mean is average of element. Where 0 <= i < n
Mean of arr[0..n-1] = ∑(arr[i]) / n
Variance is the sum of squared differences from the mean divided by a number of elements.
Variance = ∑(arr[i] – mean)2 / n
Standard Deviation is the square root of the variance.
Standard Deviation = variance ^ 1/2

Approach: To get the standard deviation of an array, first we calculate the mean and then the variance, and then the deviation. To calculate the mean we use Array.reduce() method and calculate the sum of all the array items and then divide the array by the length of the array.

To calculate the variance we use the map() method and mutate the array by assigning (value – mean) ^ 2 to every array item, and then we calculate the sum of the array, and then we divide the sum by the length of the array. To calculate the standard deviation we calculate the square root of the array.

Example: In this example, we will be calculating the standard deviation of the given array of elements.

Javascript




<script>
    // Javascript program to calculate the standard deviation of an array
    function dev(arr){
      // Creating the mean with Array.reduce
      let mean = arr.reduce((acc, curr)=>{
        return acc + curr
      }, 0) / arr.length;
       
      // Assigning (value - mean) ^ 2 to every array item
      arr = arr.map((k)=>{
        return (k - mean) ** 2
      })
       
      // Calculating the sum of updated array
     let sum = arr.reduce((acc, curr)=> acc + curr, 0);
      
     // Calculating the variance
     let variance = sum / arr.length
      
     // Returning the standard deviation
     return Math.sqrt(sum / arr.length)
    }
     
    console.log(dev([1, 2, 3, 4, 5]))
    console.log(dev([23, 4, 6, 457, 65, 7, 45, 8]))
</script>


Output:

1.4142135623730951
145.13565852332775
My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!