PR

初心者でも簡単!NumPyのstd()関数を使った標準偏差の求め方:pythonの入門書

python
記事内に広告が含まれています。

標準偏差とは何か?

統計学やデータ分析において、標準偏差はデータのばらつきや散らばり具合を表す指標です。平均値からのデータの散らばり具合を測るため、データの分布や変動の特性を理解するのに役立ちます。標準偏差が小さいほどデータは平均値に集中し、大きいほどデータは平均値から離れて散らばっていることを示します。

標準偏差の計算方法

標準偏差の計算方法は以下の手順で行われます。

  1. データの各値から平均値を引いた差の二乗を計算します。
  2. 二乗した値を合計して、サンプル数で割ると分散が求められます。
  3. 分散の平方根を求めます。

この手順によって、標準偏差は求められます。これを公式にすると、

$$\sigma = \sqrt{\frac{1}{N} \sum(x_i - \mu)^2}$$

ちなみに多くの研究や調査では母集団の平均(母平均)や分散(母分散)は未知の状態であるので、以下の様に不偏分散から標準偏差を求めます。

$$s = \sqrt{\frac{1}{N-1} \sum(x_i - \mu)^2}$$

NumPyのstd関数とは

Numpyのstd関数は、配列の要素の標準偏差を計算するための関数です。std関数はNumpyの一部として提供されており、数値計算やデータ分析の際に便利に使用することができます。

NumPyのnp.std関数のAPIドキュメント

以下に、np.std関数の概要、構文、パラメータ、戻り値、例外、備考を表にまとめてみました。これを参考に関数の目的や使用方法、異常処理などに関する情報を簡潔に把握することができます。参考文献では、NumPyの公式ドキュメントへのリンクも提供されており、詳細な情報を確認することができます。

関数np.std
概要配列の要素の標準偏差を計算する。
構文np.std(a, axis=None, dtype=None, ddof=0)
パラメータ- a: 数値の配列またはシーケンス。
- axis (オプション): 計算の軸。指定されない場合は全体の標準偏差が計算される。
- dtype (オプション): 結果のデータ型。指定されない場合は自動的に決定される。
- ddof (オプション): 自由度の補正項。標本の場合は 1 を指定し、母集団の場合は 0 を指定する。デフォルトは 0
戻り値計算された標準偏差。
例外- TypeError: 入力が数値ではない場合。
- ValueError: 入力が空である場合。
備考- 入力配列の要素が nan (非数) の場合、結果も nan となる。
- 標準偏差は、平均からの偏差の二乗の平均の平方根として計算される。
- ddof パラメータは、データの標本か母集団かに応じて適切な補正を行うために使用される。
参考文献- NumPy Documentation: numpy.std

実際にNumPy std関数を使ってみる

std関数は以下のように使用します。

import numpy as np

data = np.array([1, 2, 3, 4, 5])
std_dev = np.std(data, ddof=0) #ddof=0なので、dataを母集団とする

print("標準偏差:", std_dev)

このプログラムを実行すると、以下のように標準偏差が求められれます。

標準偏差: 1.4142135623730951

この例は非常に簡単なデータを扱っていますが、実際の研究や調査では母集団から標本を抽出して、その標本から不偏分散、不偏分散の平方根から不偏標準偏差という風に母集団の標準偏差を推定しますね。以下に、母集団から標本をサンプリングした際の標準偏差の求め方について解説していきます。

標準偏差を求めるためのデータ準備(母集団の作成)

今回は母集団として、正規乱数を発生させることでデータを作成し、それを母集団として解析してみましょう。詳しい説明は割愛しますが、scipyのstats.normメソッドを使って正規乱数を作成し、さらにrvsメソッドを使ってランダムに100個のデータを抽出します。

# 平均値30・標準偏差5をもつ正規乱数を作成し、サンプルサイズ100個で抽出して"data"に格納
from scipy import stats
import numpy as np

np.random.seed(1) #乱数種を指定

norm_dist = stats.norm(loc=30, scale=5)
data = norm_dist.rvs(size=100)

※ seedを設定しておくことで、常に同じ乱数が生成されます。

stats.normメソッドによって、平均30、標準偏差5の正規分布の母集団を作っています。そして、rvsメソッドによって、上記の母集団から100個の数値をサンプリングしてdataに代入しました。

NumPyのstd関数を使った標準偏差の求め方

実際に上のサンプルデータを使って、NumPyのstd関数を実行してみましょう。以下のコードを実行すると、データの標準偏差が表示されます。

std_dev = np.std(data, ddof=1) # 標本から求めたのでddof=1

print("標準偏差:", std_dev)

出力結果は以下のようになります。

標準偏差: 4.4480773365620605

標準偏差の解釈と活用例

標準偏差の値は、データの散らばり具合を示す指標です。値が小さいほどデータは平均値に集中し、値が大きいほどデータは平均値から離れて散らばっています。

リハビリテーション分野でも有用に活用されています。以下に、リハビリテーション分野での標準偏差の活用例を2つ挙げます。

  1. 歩行評価の変動性の解析: 歩行能力の評価はリハビリテーションの重要な要素です。患者の歩行データを収集し、歩行速度や歩行ステップの長さなどのパラメータの標準偏差を計算することで、歩行の変動性を評価することができます。例えば、標準偏差が大きい場合は歩行が不安定であることを示しますね。
  2. 筋力測定の信頼性評価: 筋力測定は筋力トレーニングやリハビリテーションプログラムの評価において重要です。複数回の筋力測定を行い、各測定結果の標準偏差を計算することで、筋力測定の信頼性を評価することができます。標準偏差が小さい場合は測定結果の一貫性が高いことを示し、筋力の変化を正確に評価することができます。

以下は歩行速度を例にNumPyのstd関数で標準偏差を求めています。

import numpy as np

# 歩行速度データ
walking_speed = [1.2, 1.5, 1.7, 1.4, 1.6]

# 標準偏差の計算
std_deviation = np.std(walking_speed, ddof=0)

# 結果の表示
print("標準偏差:", std_deviation)

これらの活用例では、標準偏差を通じて歩行や筋力などのリハビリテーションの指標の変動性を評価することができます。標準偏差の値を分析することで、リハビリテーションプログラムの効果や患者の改善度を客観的に判断することができます。これにより、個々の患者に合わせた適切なリハビリテーション計画を立てることができます。

まとめ

今回は、Pythonで標準偏差を求める場合、NumPyのstd関数を使って簡単に計算できる方法を解説しました。標準偏差はデータのばらつきや散らばり具合を示す重要な指標であり、NumPyのstd関数を利用することで効率的に計算することができます。標準偏差の値を活用してデータの特性を分析することで、より深い洞察と意思決定を行うことができます。

コメント