SciPy stats.skew 関数

Lakshay Kapoor 2023年1月30日
  1. scipy.stats.skew 関数
  2. numpy.linspace() を使用した歪度の計算
  3. ランダムデータを使用した歪度の計算
SciPy stats.skew 関数

統計の歪度は、一部のデータの分布の対称性の尺度として定義されます。分布全体の一番上にあるポイントは、モードと呼ばれます。歪度は次の式で計算されます。

Skewness = 3(Mean - Median) / Standard Deviation

歪度の条件:

  • skewness= 0 の場合、データは正規分布しています。
  • skewness> 0 の場合、データは分布の左側でより重み付けされます。
  • skewness<0 の場合、データは分布の右側でより重み付けされます。

scipy.stats.skew 関数

SciPy ライブラリの scipy.stats.skew 関数は、特定のデータの歪度の値を決定するために使用されます。この関数は、scipy.stats.skew(a, axis, bias, nan_policy) として定義されています。

以下は、scipy.stats.skew 関数のパラメーターです。

a (ndarray) 入力配列、つまり入力データを定義します。
axis (int) これは、関数が歪度値を計算する軸を定義します。デフォルト値は 0 です。つまり、関数は配列全体を計算します。
bais (bool) このパラメーターの値が False に設定されている場合、すべての計算は統計的バイアスに対して修正されます。
nan_policy 入力データに NaN 値がある場合の対処方法を決定します。パラメータには、propagateraiseomit の 3つの決定パラメータがあります。propagate は単に NaN 値を返し、raise はエラーを返し、omit は単に NaN 値を無視し、関数は計算を続行します。これらの決定パラメーターは、一重引用符 ''で定義されます。また、デフォルトは propagate に設定されています。

a (ndarray) パラメーターを除くすべてのパラメーターはオプションです。つまり、scipy.stats.skew 関数を使用している間、毎回それらを定義する必要はありません。

numpy.linspace() を使用した歪度の計算

NumPy ライブラリの linespace() 関数は、等間隔のランダムな数値シーケンスを作成するのに役立ちます。

from scipy.stats import skew
import numpy as np
import pylab as p

x = np.linspace(-10, 10, 1000)
y = 1 / (np.sqrt(4 * np.pi)) * np.exp(-0.2 * (x) ** 2)

p.plot(x, y, ".")
p.show()

print("Skewness for the input data : ", skew(y))

出力:

scipy stats normaltest

Skewness for the input data :  1.458658437437705

ランダムデータを使用した歪度の計算

このメソッドでは、NumPy ライブラリの np.random.normal 関数が使用されます。この関数は、実際にはガウス分布の一部であるランダムな値で構成される、指定された形状とサイズの配列を作成するのに役立ちます。

from scipy.stats import skew
import numpy as np

s = np.random.normal(0, 5, 10000)

print("S : ", s)

print("Skewness for input data : ", skew(s))
S :  [ 2.52232305  5.66398738  2.72036031 ...  0.53774684 -0.31164153
  1.99714612]
Skewness for input data :  0.0027004583356120505
著者: Lakshay Kapoor
Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn

関連記事 - SciPy Stats