Pythonで「正規分布の確率」を具体例で計算してみよう!

PRについて
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
Pythonで「正規分布の確率」を具体例で計算してみよう! 統計学
Pythonで「正規分布の確率」を具体例で計算してみよう!
統計学入門

このページでは統計の基本となる正規分布に従うデータにおける確率の計算をPythonを用いて計算していこうと思います。

ごまこ
ごまこ

これまで様々な分布に触れてきて統計を少しずつ理解できてきました!
でも正規分布に従っているデータで確率を取り扱っていくイメージがまだ掴めないです..

ごまお
ごまお

そうですよね!
では今回はPythonを使って正規分布の確率を取り扱う方法を勉強していきましょう!

統計学やデータ解析において、正規分布はよく使われる確率分布の一つです。

この記事では、Pythonを使用して正規分布の確率計算を解説します。

例として、ある高校の男子生徒の体重が正規分布に従っている場合、体重が80kg以上の生徒の割合を求めてみましょう。

正規分布とは

正規分布は、平均値(μ)を中心に左右対称な釣り鐘型の分布です。

標準偏差(σ)が分布の広がりを表し、68-95-99.7則によれば、平均から±1σ、±2σ、±3σの範囲にそれぞれ約68%、95%、99.7%のデータが入ることが知られています。

問題

ある会社の男性社員の体重を測定したところ、平均65kg、標準偏差10kgの正規分布に従っていた場合、体重75kg以上の男性社員は何%いるでしょうか。

Pythonで計算してみましょう

それではPythonを使用して、正規分布の確率計算を行います。

確率値の計算にはscipy.stats.norm.cdf()関数を用います。

import scipy.stats as stats

# 平均と標準偏差の設定
mean_weight = 65
std_dev_weight = 10

# 75kg以上の社員の割合を計算
# stats.norm.cdf()関数で75kgまでの確率が求まるので1-pとする。
probability = 1 - stats.norm.cdf(75, loc=mean_weight, scale=std_dev_weight)

# 結果の表示
print(f"体重が75kg以上の社員の割合は約{probability * 100:.2f}%です。")

#実行結果
# 体重が75kg以上の社員の割合は約15.87%です。

このプログラムでは、SciPyライブラリのstats.norm.cdf関数を使用して、累積分布関数を計算しています。

これは、指定された値以下の確率を返す関数であり、今回求めたいのは75kg以上の確率なので、1からこの確率を引いています。

上記のプログラムで確率をもとめることができました!

それでは、今回求めた体重が75kg以上の社員は正規分布で見るとどの部分にあたるのか図示してみようと思います。

プログラムは以下のようになります。

import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt

# 平均と標準偏差の設定
mean_weight = 65
std_dev_weight = 10

#図を描画する範囲を指定
start = mean_weight - std_dev_weight * 4 #xの左側 (μ-4σ) 
end = mean_weight + std_dev_weight * 4 #xの右側 (μ+4σ)

x =np.arange(start,end, 0.01) #xの値を生成
# 確率密度関数を生成
y1 = norm.pdf(x, loc=mean_weight, scale=std_dev_weight)
y2 = 0

plt.plot(x, y1, c="b") #正規分布を描画
plt.fill_between(x, y1, y2, where=x>75, alpha=0.4) #75kg以上の範囲を表示
plt.grid()
plt.show()
75kg以上の社員の割合の図
75kg以上の社員の割合の図

上の図のように75kg以上の男性社員の割合を青色で塗りつぶしてみました。

さきほどPythonで求めた「社員の割合は約15.87%」という数値はこの青で塗りつぶした範囲の面積となっています。

ごまこ
ごまこ

具体的な問題を元に考えると理解が深まってきました!
グラフの表示は視覚的にも分かりやすかったです!

ごまお
ごまお

正規分布を取り扱うことを通して統計学の理解が深まったならありがたいです!
本来、今回のように割合を求めたい場合には正規分布の標準化と標準正規分布表の確認が必要ですが、Pythonを用いればすぐに割合を計算できるのも魅力ですね!

まとめ

この記事では、Pythonを使用して正規分布の確率計算を行う方法を解説しました。

例として、男性社員の体重分布を取り上げ、体重が75kg以上の社員の割合を計算しました。

また、体重が75kg以上の社員を分布の中で図示しました。

正確な数値は計算によって示されていますが、これはあくまで仮定した正規分布に基づくものであることに留意してください。

統計学やデータ解析においては、正規分布の理解が重要です。

是非、自分のデータに対しても適用してみてください!

このサイトの記事一覧へは以下へアクセス!

統計検定 2級
統計学
ゴマフリーダムをフォローする

コメント

達人に学ぶDB設計 徹底指南書

最短コースでわかる ディープラーニングの数学

あたらしい機械学習の教科書 第3版

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

タイトルとURLをコピーしました