SciPy stats.skew 関数
Lakshay Kapoor
2023年1月30日
統計の歪度は、一部のデータの分布の対称性の尺度として定義されます。分布全体の一番上にあるポイントは、モードと呼ばれます。歪度は次の式で計算されます。
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 値がある場合の対処方法を決定します。パラメータには、propagate 、raise 、omit の 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))
出力:
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 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