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 スコアを計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です