Foundations of Probability in Python
Foundations of Probability in Python
Python
F O U N D AT I O N S O F P R O B A B I L I T Y I N P Y T H O N
Alexander A. Ramírez M.
CEO @ Synergy Vision
Probability
Foundation of Data Science
array([0])
Another draw
bernoulli.rvs(p=0.5, size=1)
array([1])
bernoulli.rvs(p=0.5, size=10)
array([0, 0, 0, 0, 0, 0, 1, 1, 0, 0])
sum(bernoulli.rvs(p=0.5, size=10))
sum(bernoulli.rvs(p=0.5, size=10))
array([7])
Many draws
array([6, 2, 3, 5, 5, 5, 5, 4, 6, 6])
array([3, 4, 3, 3, 2, 2, 2, 2, 3, 6])
Use numpy.random.seed()
import numpy as np
np.random.seed(42)
np.random.seed(42)
binom.rvs(n=10, p=0.5, size=1)
array([4])
Alexander A. Ramírez M.
CEO @ Synergy Vision
Probability mass function (pmf)
binomial.pmf(k, n, p) = ( )p (1 − p)n−k
n k
k
binomial.pmf(k, n, p) = ( )p (1 − p)n−k
n k
k
binomial.pmf(k, n, p) = ( )p (1 − p)n−k
n k
k
binomial.pmf(k, n, p) = ( )p (1 − p)n−k
n k
k
binomial.pmf(k, n, p) = ( )p (1 − p)n−k
n k
k
In Python:
binom.pmf(k, n, p)
0.04394531249999999
0.24609375000000025
1.3026227131445298e-05
0.0467796823527298
In Python:
0.6230468749999999
0.9999909653138043
0.9875015928335618
0.9875015928335618
Alexander A. Ramírez M.
CEO @ Synergy Vision
Expected value
Expected value: sum of possible outcomes weighted by it's probability.
k
E(X) = ∑ xi pi = x1 p1 + x2 p2 + ⋯ + xk pk
i=1
k
E(X) = ∑ xi pi = x1 p1 + x2 p2 + ⋯ + xk pk
i=1
2
E(X) = ∑ xi pi = x1 p1 + x2 p2 = 0 × (1 − p) + 1 × p = p
i=1
k
E(X) = ∑ xi pi = x1 p1 + x2 p2 + ⋯ + xk pk
i=1
2
E(X) = ∑ xi pi = x1 p1 + x2 p2 = 0 × (1 − p) + 1 × p = p
i=1
In Python we will use the scipy.stats.describe() function to get the arithmetic mean.
0.5
It's the expected value of the squared deviation from its expected value.
n
V ar(X) = E[(X − E(X))2 ] = ∑ pi × (xi − E(X))2
i=1
In Python, we will use the scipy.stats.describe() function to get the sample variance.
describe([0,1]).variance
0.5
E(X) = n × p
V ar(X) = n × p × (1 − p)
E(X) = 10 × 0.5 = 5
V ar(X) = 10 × 0.5 × 0.5 = 2.5
binom.stats(n=10, p=0.5)
(array(5.), array(2.5))
binom.stats(n=1, p=0.5)
(array(0.5), array(0.25))
What are the expected value and variance for one biased coin ip, with 30% probability of success?
binom.stats(n=1, p=0.3)
(array(0.3), array(0.21))
binom.stats(n=10, p=0.5)
(array(5.), array(2.5))