鉴于事件B已经发生,事件A发生的条件概率计算如下:
p(a|b) = p(a∩b) / p(b)
其中。
P(A∩B) = 事件A 和事件B 同时发生的概率。
P(B) = 事件B发生的概率。
下面的例子显示了如何使用这个公式在 Python 中计算条件概率。
例子:在 Python 中计算条件概率
假设我们向300个人发出调查,问他们最喜欢哪种运动:棒球、篮球、足球或足球。
我们可以在Python中创建以下表格来保存调查的结果:
import pandas as pd
import numpy as np
#create pandas DataFrame with raw data
df = pd.DataFrame({'gender': np.repeat(np.array(['Male', 'Female']), 150),
'sport': np.repeat(np.array(['Baseball', 'Basketball', 'Football',
'Soccer', 'Baseball', 'Basketball',
'Football', 'Soccer']),
(34, 40, 58, 18, 34, 52, 20, 44))})
#produce contingency table to summarize raw data
survey_data = pd.crosstab(index=df['gender'], columns=df['sport'], margins=True)
#view contingency table
survey_data
sport Baseball Basketball Football Soccer All
gender
Female 34 52 20 44 150
Male 34 40 58 18 150
All 68 92 78 62 300
相关的如何使用pd.crosstab()在Python中创建权变表
我们可以使用下面的语法从表中提取数值:
#extract value in second row and first column
survey_data.iloc[1, 0]
[1] 34
我们可以使用下面的语法来计算一个人是男性的概率,鉴于他们更喜欢棒球作为他们最喜欢的运动:
#calculate probability of being male, given that individual prefers baseball
survey_data.iloc[1, 0] / survey_data.iloc[2, 0]
0.5
而我们可以使用下面的语法来计算一个人喜欢篮球作为他们最喜欢的运动的概率,因为他们是女性:
#calculate probability of preferring basketball, given that individual is female
survey_data.iloc[0, 1] / survey_data.iloc[0, 4]
0.3466666666666667
我们可以用这种基本方法从或然率表中计算出我们想要的任何条件概率:
其他资源
以下教程提供了有关处理概率的额外信息:
总概率法
如何寻找概率分布的平均值
如何寻找概率分布的标准差
The postHow to Calculate Conditional Probability in Pythonappeared first onStatology.