📜  统计数据的偏度

📅  最后修改于: 2022-05-13 01:57:47.089000             🧑  作者: Mango

统计数据的偏度

给定数组中的数据。找出数据分布的偏度。
偏度是衡量数据分布不对称性的指标。偏度是统计分布中的一种不对称性,其中曲线出现扭曲或向左或向右倾斜。可以量化偏度以定义分布与正态分布的差异程度。偏度可以计算为

Where gamma is called skewness
      sigma is called standard deviation and sigma square can be calculated as
      

N is number of population and
      mu is called mean of data.  

例子 :

Input : arr[] = {2.5, 3.7, 6.6, 9.1, 9.5, 10.7, 11.9, 21.5, 22.6, 25.2}
Output : 0.777001

Input : arr[] = {5, 20, 40, 80, 100}
Output : 0.0980392

有关偏度的更多信息
https://en.wikipedia.org/wiki/Skewness
https://www.universalclass.com/articles/math/statistics/skewness-in-statistical-terms.htm

C++
// CPP code to find skewness
// of statistical data.
 
#include
using namespace std;
 
// Function to calculate
// mean of data.
float mean(float arr[], int n)
{
    float sum = 0;
    for (int i = 0; i < n; i++)
        sum = sum + arr[i];       
    return sum / n;
}
 
// Function to calculate standard
// deviation of data.
float standardDeviation(float arr[],
                        int n)
{
    float sum = 0;
     
    // find standard deviation
    // deviation of data.
    for (int i = 0; i < n; i++)
        sum = (arr[i] - mean(arr, n)) *
              (arr[i] - mean(arr, n));
               
    return sqrt(sum / n);
}
 
// Function to calculate skewness.
float skewness(float arr[], int n)
{  
    // Find skewness using above formula
    float sum = 0;
    for (int i = 0; i < n; i++)
        sum = (arr[i] - mean(arr, n)) *
              (arr[i] - mean(arr, n)) *
              (arr[i] - mean(arr, n));             
    return sum / (n * standardDeviation(arr, n) *
                 standardDeviation(arr, n) *
                 standardDeviation(arr, n) *
                 standardDeviation(arr, n));
}
 
// Driver function
int main()
{
    float arr[] = {2.5, 3.7, 6.6, 9.1,
                   9.5, 10.7, 11.9, 21.5,
                   22.6, 25.2};
                    
    // calculate size of array.
    int n = sizeof(arr)/sizeof(arr[0]);
     
    // skewness Function call
    cout << skewness(arr, n);
     
    return 0;
}


Java
// java code to find skewness
// of statistical data.
import java.io.*;
 
class GFG {
     
    // Function to calculate
    // mean of data.
    static double mean(double arr[], int n)
    {
        double sum = 0;
         
        for (int i = 0; i < n; i++)
            sum = sum + arr[i];
         
        return sum / n;
    }
     
    // Function to calculate standard
    // deviation of data.
    static double standardDeviation(double arr[],
                                            int n)
    {
         
        double sum = 0 ;
         
        // find standard deviation
        // deviation of data.
        for (int i = 0; i < n; i++)
            sum = (arr[i] - mean(arr, n)) *
                        (arr[i] - mean(arr, n));
                 
        return Math.sqrt(sum / n);
    }
     
    // Function to calculate skewness.
    static double skewness(double arr[], int n)
    {
        // Find skewness using
        // above formula
        double sum = 0;
         
        for (int i = 0; i < n; i++)
            sum = (arr[i] - mean(arr, n)) *
                    (arr[i] - mean(arr, n)) *
                        (arr[i] - mean(arr, n));            
         
        return sum / (n * standardDeviation(arr, n) *
                          standardDeviation(arr, n) *
                          standardDeviation(arr, n) *
                          standardDeviation(arr, n));
    }
     
    // Driver function
    public static void main (String[] args)
    {
        double arr[] = { 2.5, 3.7, 6.6, 9.1,
                        9.5, 10.7, 11.9, 21.5,
                                   22.6, 25.2 };
                         
        // calculate size of array.
        int n = arr.length;
         
        // skewness Function call
        System.out.println(skewness(arr, n));
    }
}
 
//This code is contributed by vt_m


Python3
# Python3 code to find skewness
# of statistical data.
from math import sqrt
 
# Function to calculate
# mean of data.
def mean(arr, n):
     
    summ = 0
    for i in range(n):
        summ = summ + arr[i]    
    return summ / n
 
# Function to calculate standard
# deviation of data.
def standardDeviation(arr,n):
     
    summ = 0
     
    # find standard deviation
    # deviation of data.
    for i in range(n):
        summ = (arr[i] - mean(arr, n)) *(arr[i] - mean(arr, n))
     
    return sqrt(summ / n)
 
# Function to calculate skewness.
def skewness(arr, n):
     
    # Find skewness using above formula
    summ = 0
    for i in range(n):
        summ = (arr[i] - mean(arr, n))*(arr[i] - mean(arr, n))*(arr[i] - mean(arr, n))
    return summ / (n * standardDeviation(arr, n) *standardDeviation(arr, n) *standardDeviation(arr, n) * standardDeviation(arr, n))
 
# Driver function
 
arr = [2.5, 3.7, 6.6, 9.1,9.5, 10.7, 11.9, 21.5,22.6, 25.2]
                 
# calculate size of array.
n = len(arr)
 
# skewness Function call
print('%.6f'%skewness(arr, n))
 
# This code is contributed by shubhamsingh10


C#
// C# code to find skewness
// of statistical data.
using System;
 
class GFG {
     
    // Function to calculate
    // mean of data.
    static float mean(double []arr, int n)
    {
        double sum = 0;
         
        for (int i = 0; i < n; i++)
            sum = sum + arr[i];
         
        return (float)sum / n;
    }
     
    // Function to calculate standard
    // deviation of data.
    static float standardDeviation(double []arr,
                                            int n)
    {
         
        double sum = 0 ;
         
        // find standard deviation
        // deviation of data.
        for (int i = 0; i < n; i++)
            sum = (arr[i] - mean(arr, n)) *
                  (arr[i] - mean(arr, n));
                 
        return (float)Math.Sqrt(sum / n);
    }
     
    // Function to calculate skewness.
    static float skewness(double []arr, int n)
    {
        // Find skewness using
        // above formula
        double sum = 0;
         
        for (int i = 0; i < n; i++)
            sum = (arr[i] - mean(arr, n)) *
                  (arr[i] - mean(arr, n)) *
                  (arr[i] - mean(arr, n));            
         
        return (float)sum / (n * standardDeviation(arr, n) *
                        standardDeviation(arr, n) *
                        standardDeviation(arr, n) *
                        standardDeviation(arr, n));
    }
     
    // Driver function
    public static void Main ()
    {
        double []arr = { 2.5, 3.7, 6.6, 9.1,
                        9.5, 10.7, 11.9, 21.5,
                                22.6, 25.2 };
                         
        // calculate size of array.
        int n = arr.Length;
         
        // skewness Function call
        Console.WriteLine(skewness(arr, n));
    }
}
 
// This code is contributed by vt_m


PHP


Javascript


输出:

0.777001