如何用 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
我们可以使用这种基本方法从列联表中计算我们想要的任何条件概率。
其他资源
以下教程提供有关概率管理的其他信息: