Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 確率分布のPythonへの実装 | 確率と統計
Pythonによるデータサイエンスのための数学

確率分布のPythonへの実装

メニューを表示するにはスワイプしてください

二項分布

二項分布は、成功確率 pp の独立した nn 回の試行において、ちょうど kk 回成功する確率をモデル化。

123456789101112131415161718
from scipy.stats import binom import matplotlib.pyplot as plt # number of trials n = 100 # probability of success p = 0.02 # number of successes k = 3 binom_prob = binom.pmf(k, n, p) # Vizualization x_vals = range(0, 15) y_vals = binom.pmf(x_vals, n, p) plt.bar(x_vals, y_vals, color='skyblue') plt.title(f'Binomial probability: {binom_prob:.4f}') plt.show()
  • n = 100 - 100本の棒を検査;
  • p = 0.02 - 棒が不良品である確率は2%;
  • k = 3 - ちょうど3本が不良品である確率;
  • binom.pmf() は確率質量関数を計算。

一様分布

一様分布は、$a$から$b$までのすべての値が等しく発生する連続変数をモデル化。

1234567891011121314151617
from scipy.stats import uniform import matplotlib.pyplot as plt import numpy as np a = 49.5 b = 50.5 low, high = 49.8, 50.2 uniform_prob = uniform.cdf(high, a, b - a) - uniform.cdf(low, a, b - a) # Vizualization x = np.linspace(a, b, 100) pdf = uniform.pdf(x, a, b - a) plt.plot(x, pdf, color='black') plt.fill_between(x, pdf, where=(x >= low) & (x <= high), color='lightgreen', alpha=0.5) plt.title(f'Uniform probability: {uniform_prob:.1f}') plt.show()
  • a, b - 棒の長さの全範囲;
  • low, high - 関心のある区間;
  • CDF値の差分は区間内の確率を示す。

正規分布

正規分布は、平均 $\mu$ の周りに値が集中し、標準偏差 $\sigma$ によって広がりが測定される分布。

1234567891011121314151617181920
import numpy as np import matplotlib.pyplot as plt from scipy.stats import norm mu = 200 sigma = 5 lower, upper = 195, 205 norm_prob = norm.cdf(upper, mu, sigma) - norm.cdf(lower, mu, sigma) z1 = (lower - mu) / sigma z2 = (upper - mu) / sigma # Vizualization x = np.linspace(mu - 4*sigma, mu + 4*sigma, 200) pdf = norm.pdf(x, mu, sigma) plt.plot(x, pdf, color='black') plt.fill_between(x, pdf, where=(x >= lower) & (x <= upper), color='plum', alpha=0.5) plt.title(f'Normal probability: {norm_prob:.4f}\nZ-scores: {z1}, {z2}') plt.show()
  • mu - 平均ロッド重量;
  • sigma - 標準偏差;
  • 確率 - CDFの差分;
  • Zスコアは、境界が平均からどれだけ離れているかを示す。

実世界での応用

  • 二項分布 - 不良ロッドが特定の数になる確率は?
  • 一様分布 - ロッドの長さは許容範囲内か?
  • 正規分布 - ロッドの重量は期待されるばらつき内か?

これらを組み合わせることで、品質管理は欠陥を特定し、精度を確保し、製品の一貫性を維持する。

question mark

不良ロッドがちょうどk本である確率を計算する関数はどれですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 5.  11

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

確率分布のPythonへの実装

二項分布

二項分布は、成功確率 pp の独立した nn 回の試行において、ちょうど kk 回成功する確率をモデル化。

123456789101112131415161718
from scipy.stats import binom import matplotlib.pyplot as plt # number of trials n = 100 # probability of success p = 0.02 # number of successes k = 3 binom_prob = binom.pmf(k, n, p) # Vizualization x_vals = range(0, 15) y_vals = binom.pmf(x_vals, n, p) plt.bar(x_vals, y_vals, color='skyblue') plt.title(f'Binomial probability: {binom_prob:.4f}') plt.show()
  • n = 100 - 100本の棒を検査;
  • p = 0.02 - 棒が不良品である確率は2%;
  • k = 3 - ちょうど3本が不良品である確率;
  • binom.pmf() は確率質量関数を計算。

一様分布

一様分布は、$a$から$b$までのすべての値が等しく発生する連続変数をモデル化。

1234567891011121314151617
from scipy.stats import uniform import matplotlib.pyplot as plt import numpy as np a = 49.5 b = 50.5 low, high = 49.8, 50.2 uniform_prob = uniform.cdf(high, a, b - a) - uniform.cdf(low, a, b - a) # Vizualization x = np.linspace(a, b, 100) pdf = uniform.pdf(x, a, b - a) plt.plot(x, pdf, color='black') plt.fill_between(x, pdf, where=(x >= low) & (x <= high), color='lightgreen', alpha=0.5) plt.title(f'Uniform probability: {uniform_prob:.1f}') plt.show()
  • a, b - 棒の長さの全範囲;
  • low, high - 関心のある区間;
  • CDF値の差分は区間内の確率を示す。

正規分布

正規分布は、平均 $\mu$ の周りに値が集中し、標準偏差 $\sigma$ によって広がりが測定される分布。

1234567891011121314151617181920
import numpy as np import matplotlib.pyplot as plt from scipy.stats import norm mu = 200 sigma = 5 lower, upper = 195, 205 norm_prob = norm.cdf(upper, mu, sigma) - norm.cdf(lower, mu, sigma) z1 = (lower - mu) / sigma z2 = (upper - mu) / sigma # Vizualization x = np.linspace(mu - 4*sigma, mu + 4*sigma, 200) pdf = norm.pdf(x, mu, sigma) plt.plot(x, pdf, color='black') plt.fill_between(x, pdf, where=(x >= lower) & (x <= upper), color='plum', alpha=0.5) plt.title(f'Normal probability: {norm_prob:.4f}\nZ-scores: {z1}, {z2}') plt.show()
  • mu - 平均ロッド重量;
  • sigma - 標準偏差;
  • 確率 - CDFの差分;
  • Zスコアは、境界が平均からどれだけ離れているかを示す。

実世界での応用

  • 二項分布 - 不良ロッドが特定の数になる確率は?
  • 一様分布 - ロッドの長さは許容範囲内か?
  • 正規分布 - ロッドの重量は期待されるばらつき内か?

これらを組み合わせることで、品質管理は欠陥を特定し、精度を確保し、製品の一貫性を維持する。

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 5.  11
some-alt