Python で z スコアを計算する方法
統計では、 Z スコアは、値が平均からどれだけ標準偏差があるかを示します。次の式を使用して Z スコアを計算します。
z = (X – μ) / σ
金:
- X は単一の生データ値です
- μ は母平均です
- σ は母集団の標準偏差です
このチュートリアルでは、Python で生データ値の Z スコアを計算する方法について説明します。
Python で Z スコアを計算する方法
Python では、次の構文を使用するscipy.stats.zscore を使用して Z スコアを計算できます。
scipy.stats.zscore(a, axis=0, ddof=0, nan_policy=’propagate’)
金:
- a : データを含む配列型オブジェクト
- axis : Z スコアを計算する軸。デフォルト値は 0 です。
- ddof : 標準偏差の計算における自由度の補正。デフォルト値は 0 です。
- nan_policy : 入力に nan が含まれている場合の処理方法。デフォルトは propagate で、nan を返します。 ‘raise’ はエラーを発生させ、’omit’ は nan 値を無視して計算を実行します。
次の例は、この関数を使用して、1 次元の numpy 配列、多次元の numpy 配列、および Pandas DataFrame の Z スコアを計算する方法を示しています。
数の多い 1 次元配列
ステップ 1: モジュールをインポートします。
import pandas as pd import numpy as np import scipy.stats as stats
ステップ 2: 値の表を作成します。
data = np.array([6, 7, 7, 12, 13, 13, 15, 16, 19, 22])
ステップ 3: テーブル内の各値の Z スコアを計算します。
stats.zscore(data)
[-1.394, -1.195, -1.195, -0.199, 0, 0, 0.398, 0.598, 1.195, 1.793]
各 Z スコアは、個々の値が平均からどれだけ標準偏差があるかを示します。例えば:
- 表の最初の値「6」は、平均より1.394標準偏差低いです。
- 表の 5 番目の値「13」は、平均からの標準偏差が0 、つまり平均と等しいです。
- 表の最後の値「22」は、平均より1.793標準偏差上です。
数多の多次元配列
多次元配列がある場合は、 axisパラメーターを使用して、各 Z スコアをその配列を基準にして計算することを指定できます。たとえば、次の多次元配列があるとします。
data = np.array([[5, 6, 7, 7, 8], [8, 8, 8, 9, 9], [2, 2, 4, 4, 5]])
次の構文を使用して、各テーブルの Z スコアを計算できます。
stats.zscore(data, axis=1) [[-1.569 -0.588 0.392 0.392 1.373] [-0.816 -0.816 -0.816 1.225 1.225] [-1.167 -1.167 0.5 0.5 1.333]]
個々の値の Z スコアは、それらの値が見つかったテーブルとの相対値で表示されます。例えば:
- 最初の表の最初の値「5」は、その表の平均より1.159標準偏差低いです。
- 2 番目の表の最初の値「8」は、その表の平均より0.816標準偏差低いです。
- 3 番目の表の最初の値「2」は、その表の平均より1.167標準偏差低いです。
パンダのデータフレーム
代わりに Pandas DataFrame があると仮定しましょう。
data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C']) data ABC 0 8 0 9 1 4 0 7 2 9 6 8 3 1 8 1 4 8 0 8
apply関数を使用して、列ごとの個々の値の Z スコアを計算できます。
data.apply(stats.zscore) ABC 0 0.659380 -0.802955 0.836080 1 -0.659380 -0.802955 0.139347 2 0.989071 0.917663 0.487713 3 -1.648451 1.491202 -1.950852 4 0.659380 -0.802955 0.487713
個々の値の Z スコアは、その値が配置されている列を基準にして表示されます。例えば:
- 最初の列の最初の値「8」は、その列の平均値より0.659標準偏差上です。
- 2 番目の列の最初の「0」値は、その列の平均値よりも0.803標準偏差低いです。
- 3 番目の列の最初の値「9」は、その列の平均値を0.836標準偏差上回っています。
追加のリソース:
Excel で Z スコアを計算する方法
SPSS で Z スコアを計算する方法
TI-84 電卓で Z スコアを計算する方法