如何用 python 计算条件概率


假设事件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

我们可以使用这种基本方法从列联表中计算我们想要的任何条件概率。

其他资源

以下教程提供有关概率管理的其他信息:

全概率定律
如何找到概率分布的平均值
如何找到概率分布的标准差

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注