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

この基本的なアプローチを使用して、分割表から必要な条件付き確率を計算できます。

追加リソース

次のチュートリアルでは、確率管理に関する追加情報を提供します。

全体確率の法則
確率分布の平均を求める方法
確率分布の標準偏差を見つける方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です