added conditional probability generator

This commit is contained in:
Vhizux
2020-10-23 14:45:47 +02:00
parent abdd50e2ec
commit 2fbedfeb07
3 changed files with 31 additions and 5 deletions

View File

@@ -105,3 +105,4 @@ from .power_of_powers import *
from .quotient_of_power_same_base import *
from .quotient_of_power_same_power import *
from .complex_quadratic import *
from .conitionalProbability import *

View File

@@ -0,0 +1,25 @@
from .__init__ import *
def conditionalProbFunc():
P_disease= round(2.*random.random(), 2)
true_positive= round(random.random()+float(random.randint(90,99)), 2)
true_negative= round(random.random()+float(random.randint(90,99)), 2)
def BayesFormula(P_disease, true_positive, true_negative):
P_notDisease= 100.-P_disease
false_positive= 100.-true_negative
false_negative= 100.-false_positive
P_plus= (P_disease)*(true_positive)+(P_notDisease)*(false_positive)
P_disease_plus=( (true_positive)*(100*P_disease) )/P_plus
return P_disease_plus
problem= "Someone tested positive for a nasty disease which only {0:.2f}% of population have. " \
"Test sensitivity (true positive) is equal to SN= {1:.2f}% whereas test specificity (true negative) SP= {2:.2f}%. " \
"What is the probability that this guy really has that disease?".format(P_disease, true_positive, true_negative )
answer=str(round(BayesFormula(P_disease, true_positive, true_negative), 2))+"%"
return problem, answer
conditionalProb= Generator("Conditional Probability", 101, "P(A|+)=", "c", conditionalProbFunc)