Реалізація Ймовірнісних Розподілів у Python
Біноміальний розподіл
Біноміальний розподіл моделює ймовірність отримати рівно k успішних результатів у n незалежних випробуваннях, кожне з яких має ймовірність успіху p.
123456789101112131415161718from 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$ є однаково ймовірними.
1234567891011121314151617from 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$.
1234567891011121314151617181920import 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-оцінки показують, наскільки межі віддалені від середнього.
Застосування в реальному світі
- Біноміальний – яка ймовірність певної кількості дефектних стрижнів?
- Рівномірний – чи знаходяться довжини стрижнів у межах допуску?
- Нормальний – чи відповідає вага стрижнів очікуваній варіативності?
Комбінуючи ці розподіли, контроль якості спрямований на виявлення дефектів, забезпечення точності та підтримання стабільності продукції.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain the main differences between the three distributions?
How do I choose which distribution to use for a specific problem?
Can you give more real-world examples for each distribution?
Awesome!
Completion rate improved to 1.96
Реалізація Ймовірнісних Розподілів у Python
Свайпніть щоб показати меню
Біноміальний розподіл
Біноміальний розподіл моделює ймовірність отримати рівно k успішних результатів у n незалежних випробуваннях, кожне з яких має ймовірність успіху p.
123456789101112131415161718from 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$ є однаково ймовірними.
1234567891011121314151617from 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$.
1234567891011121314151617181920import 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-оцінки показують, наскільки межі віддалені від середнього.
Застосування в реальному світі
- Біноміальний – яка ймовірність певної кількості дефектних стрижнів?
- Рівномірний – чи знаходяться довжини стрижнів у межах допуску?
- Нормальний – чи відповідає вага стрижнів очікуваній варіативності?
Комбінуючи ці розподіли, контроль якості спрямований на виявлення дефектів, забезпечення точності та підтримання стабільності продукції.
Дякуємо за ваш відгук!