概率论
1. 为什么要学习概率?
统计和概率是不同但又紧密相关的数学领域。
在概率中,我们根据假定的模型或原因,对未来事件做出预测;
而在统计中,我们对过去发生的事件中的数据进行分析,从而推断出这些模型或原因是什么。一个是预测数据,另一个是根据数据进行预测。
举个例子
“概率论研究的是一个透明箱子,你知道这个箱子的构造(里面有几个红球、几个白球,也就是所谓的分布函数),然后计算下一个摸出来的球是红球的概率。
统计学面对的是一个黑匣子,你只看得到每次摸出来的是红球还是白球,然后需要猜测这个黑匣子的内部结构,例如红球和白球的比例是多少?(参数估计)能不能认为红球40%,白球60%?(假设检验)”
概率论中的许多定理与结论,如大数定理、中心极限定理等保证了统计推断的合理性。做统计推断一般都需要对那个黑箱子做各种各样的假设,这些假设都是概率模型,统计推断实际上就是在估计这些模型的参数。
条件概率
某事件B发生的条件下,求另一事件A的概率,记为P(A|B)。
乘法公式
或者 乘法公式
全概率公式
2. 使用NumPy 模拟抛掷硬币操作
使用 0 表示硬币的正面, 使用 1 表示硬币的背面
使用Numpy的random 函数模拟出一百万次数据,产生0和1
1. 两次均衡掷硬币得到两次正面,概率如下:
import numpy as np tests = np.random.randint(2, size=(int(1e6), 2)) test_sums = tests.sum(axis=1) p_1 = (test_sums == 0).mean() print(p_1)
运行结果
(venv) ➜ src python coin.py 0.250394
2. 三次均衡掷硬币得到一次正面
import numpy as np tests = np.random.randint(2, size=(int(1e6), 3)) test_sums = tests.sum(axis=1) p_1 = (test_sums == 1).mean() print(p_1)
运行结果:
(venv) ➜ src python coin.py
0.374563
3. P(H) = 0.6 时三次非均衡掷硬币得到一次正面
import numpy as np tests = np.random.choice([0, 1], size=(int(1e6), 3), p=[0.6, 0.4]) test_sums = tests.sum(axis=1) p_1 = (test_sums == 2).mean() print(p_1)
运行结果
(venv) ➜ src python coin.py
0.28813
4. 一次掷骰子得到偶数
import numpy as np tests = np.random.choice(np.arange(1, 7), size=int(1e6)) p_1 = (tests % 2 == 0).mean() print(p_1)
运行结果
(venv) ➜ src python coin.py
0.499495
5. 两次掷骰子得到相同值
import numpy as np first = np.random.choice(np.arange(6), size=int(1e6)) second = np.random.choice(np.arange(6), size=int(1e6)) p_1 = (first == second).mean() print(p_1)
运行结果
(venv) ➜ src python coin.py
0.166253