2015-01-06 55 views
-2

我試圖計算條件概率爲P(A=a|B=b,C=c)其中a['high', 'medium', 'low']的元素,b爲在['0-20', '20-40', '40-60', '60-80', '80-inf']c一個元件處於['male', 'female']的元件。計算條件概率從頻率在Python

我有一個看起來像這樣的頻率詞典:

{('high', '0-20', 'female'): 11, 
('high', '0-20', 'male'): 43, 
('high', '20-40', 'female'): 10, 
('high', '20-40', 'male'): 17, 
('high', '40-60', 'female'): 11, 
('high', '40-60', 'male'): 10, 
('high', '60-80', 'female'): 2, 
('high', '60-80', 'male'): 1, 
('high', '80-inf', 'female'): 0, 
('high', '80-inf', 'male'): 0, 
('low', '0-20', 'female'): 130, 
('low', '0-20', 'male'): 159, 
('low', '20-40', 'female'): 186, 
('low', '20-40', 'male'): 297, 
('low', '40-60', 'female'): 71, 
('low', '40-60', 'male'): 144, 
('low', '60-80', 'female'): 35, 
('low', '60-80', 'male'): 53, 
('low', '80-inf', 'female'): 1, 
('low', '80-inf', 'male'): 2, 
('medium', '0-20', 'female'): 90, 
('medium', '0-20', 'male'): 194, 
('medium', '20-40', 'female'): 72, 
('medium', '20-40', 'male'): 116, 
('medium', '40-60', 'female'): 46, 
('medium', '40-60', 'male'): 49, 
('medium', '60-80', 'female'): 12, 
('medium', '60-80', 'male'): 22, 
('medium', '80-inf', 'female'): 1, 
('medium', '80-inf', 'male'): 2} 

我要的是一本字典,看起來像:

{('high', '0-20', 'female'): P(A='high'| B='0-20', C='female'), 
etc..., 
} 
+5

那你試試這麼遠嗎? – tinySandy

+0

那些看起來不像頻率...他們看起來更像是需要除以總計數才能產生頻率的計數...是否處理給定的數據以獲得您所用的起始頻率不理解,或條件概率的概念,以及如何從離散概率計算它們? – twalberg

+0

@twalberg你是對的,這些是整體計數。它的計算條件概率的概念我遇到了麻煩,因爲它們受多個變量的限制。 –

回答

0

所以,如果我理解正確的評論,當你有兩個或更多的「條件」而不是單個條件時,你遇到的問題是計算條件概率的概念。

自從我上次參加概率/統計課程以來,我已經有相當長的一段時間了,但我認爲您需要做的是將其分解成單獨的問題。從數據中,您可以輕鬆計算出您的P(B=b)P(C=c)。您接下來需要的是您應該能夠直接從數據中獲得的聯合概率B=b AND C=cP(high, 0-20)只是匹配兩個條件的所有點數除以總數的總和。如果你稱這個聯合概率爲P(X),那麼從條件概率的定義中應該相當簡單,以計算P(A = a | X)= P(A = a ∩ X)/ P(X)。

這可能是重新發布此或將其遷移到數學SE網站,不過,得到確認和/或一個更好的答案是一個好主意......