Binomial distribution python
#sns.distplot hist=True
#To do Mean, Variance, STD
#probabiliy of less or equal to K Occurences
import numpy as np
from scipy.stats import binom
import matplotlib.pyplot as plt
import seaborn as sns
np.random.seed(12)
#Exmaple 1 Creation in Numpy (YouTube Subscribers)
# Parameters for Bernoulli distribution
p_success_subs = 0.025 # Probability of success
size_videos = 100 # Number of individual trials (videos)
# Use np.random.binomial with n=1 to simulate Bernoulli trials
numpy_samples = np.random.binomial(n=1, p=p_success_subs, size=size_videos)
print(numpy_samples)

Example 2 Creation in Scipy Coin Flip
p_success_coin = 0.5 # Probability of success
size_coin_flips = 25 # Number of experiments
scipy_samples = bernoulli.rvs(p=p_success_coin, size=size_coin_flips)
print(scipy_samples)

Example 3 Calculate PMF
#Probability of Exaxtyl K Occurences
#n= sample size
#k = number of SUCCESS
#p = probability
#25 Heads
binom.pmf(n=n_trials_coin, k=25, p=p_success_coin)

Example 4 Calculate CDF
#Probability of less of equal than k occurences
#30 Subs or less
binom.cdf(n=n_trials_subs, k=30, p=p_success_subs)

#25 Heads or less
#half of the distribution lies below 25, and the exact probability of getting exactly
#25 successes adds slightly more to reach about 55%
binom.cdf(n=n_trials_coin, k=25, p=p_success_coin)

Example 5 Plotting Coin Histogram
# Plotting the histogram of the sampled data
plt.figure(figsize=(8, 6))
plt.hist(scipy_samples, bins=10, color='skyblue', edgecolor='black')
plt.title('Histogram of Sampled Data')
plt.xlabel('Number of Successes')
plt.ylabel('Frequency')
plt.show()

Example 6 Plotting Coin PMF
# Plotting the Probability Mass Function (PMF)
x = np.arange(0, n_trials_coin + 1)
pmf = binom.pmf(x, n=n_trials_coin, p=p_success_coin)
plt.figure(figsize=(8, 6))
plt.stem(x, pmf, use_line_collection=True)
plt.title('Probability Mass Function (PMF)')
plt.xlabel('Number of Successes')
plt.ylabel('Probability')
plt.show()

Example 7 Plotting Coin CDF
p_success_coin = 0.5 # Probability of success
n_trials_coin = 50 # Number of trials
# Plotting the Cumulative Distribution Function (CDF)
x = np.arange(0, n_trials_coin + 1)
cdf = binom.cdf(x, n=n_trials_coin, p=p_success_coin)
plt.figure(figsize=(8, 6))
plt.plot(x, cdf, 'b-', lw=2)
plt.title('Cumulative Distribution Function (CDF)')
plt.xlabel('Number of Successes')
plt.ylabel('Cumulative Probability')
plt.show()

Ryan is a Data Scientist at a fintech company, where he focuses on fraud prevention in underwriting and risk. Before that, he worked as a Data Analyst at a tax software company. He holds a degree in Electrical Engineering from UCF.