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