SciPy scipy.stats.sem 関数

Bhuwan Bhatt 2023年1月30日
  1. scipy.stats.sem() の構文:
  2. コード例:scipy.stats.sem()``軸が設定されていないで平均を求めるメソッド
  3. コード例:scipy.stats.sem() 関数で axis=None を設定する
  4. コード例:scipy.stats.sem() 関数で axis=1 を設定する
  5. コード例:scipy.stats.sem() 関数で ddof=0 を設定する
SciPy scipy.stats.sem 関数

Python Scipy scipy.stats.sem() 関数は、提供されたデータの平均の標準誤差を計算します。平均の標準誤差は、サンプリングされた平均が実際の母平均からどれだけ離れているかを示します。

scipy.stats.sem() の構文:

scipy.stats.sem(a, axis=0, ddof=1)

パラメーター

a 標準誤差が計算される要素を持つ配列。
axis オプションのパラメータ。平均の標準誤差が計算される軸。デフォルトでは、axis = 0(横軸)
ddof オプションのパラメータ。これは、サンプルサイズから操作中に計算する必要のあるパラメーターの数を引いたものに等しい自由度を表します。デフォルト値は 1 です。

戻り値

平均の標準誤差を返します。値は、使用されるパラメーターと自由度に基づいて、要素の配列または単精度浮動小数点数にすることができます。

コード例:scipy.stats.sem()``軸が設定されていないで平均を求めるメソッド

import numpy as np
import scipy
from scipy import stats

arr = np.array([[2, 5, 6, 8], [3, 7, 3, 0], [1, 1, 4, 4], [9, 5, 0, 5], [6, 4, 2, 2]])


result = scipy.stats.sem(arr)
print("The standard error of given data is:\n", result)

出力:

The standard error of given data is:
 [1.46287388 0.9797959  1.         1.356466  ]

ここでは、多次元データを持つ配列 arr が作成されます。配列は引数として stats.sem 関数に渡され、出力が生成され、変数 result に格納されます。

この条件では軸パラメータが定義されていないため、平均操作はデフォルトで横軸で行われます。
列の 5つの要素のそれぞれが一度に処理されます。最初にそれらの標準偏差が計算され、次に標準誤差式が使用されます。たとえば、出力配列値 1.46287388 の最初の要素は、最初の列要素 2, 3, 1, 9, 6 の結果です。

コード例:scipy.stats.sem() 関数で axis=None を設定する

import numpy as np
import scipy
from scipy import stats

arr = np.array([[2, 5, 6, 8], [3, 7, 3, 0], [1, 1, 4, 4], [9, 5, 0, 5], [6, 4, 2, 2]])

result = scipy.stats.sem(arr, axis=None)
print("The standard error of given data is:\n", result)

出力:

The standard error of given data is:
 0.5725060330640515

ここでは、軸が None に設定されている場合は常に、特定の行または列フィールドではなく配列要素全体で操作が行われるため、出力には単精度浮動小数点値が表示されます。

コード例:scipy.stats.sem() 関数で axis=1 を設定する

import numpy as np
import scipy
from scipy import stats

arr = np.array([[2, 5, 6, 8], [3, 7, 3, 0], [1, 1, 4, 4], [9, 5, 0, 5], [6, 4, 2, 2]])


result = scipy.stats.sem(arr, axis=1)
print("The standard error of given data is:\n", result)

出力:

The standard error of given data is:
 [1.25       1.43614066 0.8660254  1.8427787  0.95742711]

ここで、軸は 1 に設定されています。これは、操作が垂直軸で行われることを意味し、出力された配列フィールドに 5つの要素を生成します。

コード例:scipy.stats.sem() 関数で ddof=0 を設定する

import numpy as np
import scipy
from scipy import stats

arr = np.array([[2, 5, 6, 8], [3, 7, 3, 0], [1, 1, 4, 4], [9, 5, 0, 5], [6, 4, 2, 2]])

result = scipy.stats.sem(arr, axis=1, ddof=0)
print("The standard error of given data is:\n", result)

出力:

The standard error of given data is:
 [1.08253175 1.2437343  0.75       1.59589317 0.8291562 ]

ここで、軸の操作は前の例と似ていますが、ddof=0 はいくつかの変更をもたらします。標準誤差を計算する前に、標準偏差の値を取得する必要があることはわかっています。標準偏差を計算するために、差の 2 乗の平均は、サンプルサイズの数から ddof を引いたものを使用して評価されます。したがって、デフォルトでは、ddof の値は 1 ですが、0 に保たれると、標準エラーの値は減少します。

サンプルデータが大きくなると、平均の標準誤差は標準偏差を基準にして減少します。つまり、サンプルデータが大きいほど、サンプル平均は実際の母平均をより正確かつ正確に計算します。

関連記事 - SciPy Stats