Traffine I/O

日本語

2022-11-18

正規分布における68-95-99.7則

正規分布における68-95-99.7則

正規分布は、統計学や確率論の分野において基本的な概念の一つであり、社会科学から自然科学や工学まで、様々な分野で多数の応用があります。正規分布の重要な特徴の一つが、経験則(Empirical Rule)としても知られる「68-95-99.7則」です。

68-95-99.7則の理解

経験則は、正規分布曲線の性質に基づいています。正規分布では、平均値、中央値、モードが一致し、曲線はその平均値(\mu)と標準偏差(\sigma)によって完全に決定されます。標準偏差は、データセット内の分散または散布を示す指標であり、データポイントが平均値の周りにどの程度集中しているかを示します。

68-95-99.7則は、正規分布において次のように定義されます。

  • 約68%のデータが平均値から標準偏差の範囲内(\mu\pm\sigma)に収まる
  • 約95%のデータが平均値から標準偏差の2倍の範囲内(\mu\pm2\sigma)に収まる
  • 約99.7%のデータが平均値から標準偏差の3倍の範囲内(\mu\pm3\sigma)に収まる

これらの割合は、正規分布の数学的性質から導かれ、この分布に従うデータの解析において実用的なツールとして機能します。

Empirical rule histogram
68–95–99.7 rule

68-95-99.7則の視覚化

この章では、Pythonを使用して68-95-99.7則を視覚化する方法を示します。正規分布データセットを生成し、経験則の割合を強調するプロットを作成します。

以下がコードです。

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

# Set the Seaborn style
sns.set(style="whitegrid")

# Parameters for the normal distribution
mean = 0
std_dev = 1
sample_size = 1000

# Generate the dataset
data = np.random.normal(mean, std_dev, sample_size)

plt.figure(figsize=(10, 6))

# Calculate the x values within each standard deviation range
x = np.linspace(mean - 3.5 * std_dev, mean + 3.5 * std_dev, 1000)
x1 = np.linspace(mean - std_dev, mean + std_dev, 1000)
x2 = np.linspace(mean - 2 * std_dev, mean + 2 * std_dev, 1000)
x3 = np.linspace(mean - 3 * std_dev, mean + 3 * std_dev, 1000)

# Get the corresponding y values for the normal distribution
y = norm.pdf(x, mean, std_dev)

# Plot the areas under the curve
plt.fill_between(x3, 0, norm.pdf(x3, mean, std_dev), color='darkblue', alpha=0.3, label='99.7%')
plt.fill_between(x2, 0, norm.pdf(x2, mean, std_dev), color='mediumblue', alpha=0.4, label='95%')
plt.fill_between(x1, 0, norm.pdf(x1, mean, std_dev), color='lightblue', alpha=0.5, label='68%')

# Customize the appearance
plt.plot(x, y, color='darkblue', linewidth=2)
plt.title('Visualizing the 68-95-99.7 Rule in Normal Distribution', fontsize=16)
plt.xlabel('Standard Deviations from the Mean', fontsize=14)
plt.ylabel('Density', fontsize=14)
plt.legend(title='Percentage', fontsize=12, title_fontsize=12)

# Display the plot
plt.show()

Empirical rule

このコードは、正規分布の文脈で68-95-99.7則を示すプロットを生成します。影のある領域は、経験則によって指定された平均値から1、2、3標準偏差の範囲内にあるデータの割合を表します。

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!