Análisis de síntomas

5/24
Recursos
Transcripción

Aportes 83

Preguntas 15

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Con la ayuda de los videos que compartieron los compañeros, hice el diagrama de árbol para verlo mas gráficamente, ademas de agregar los nombres de las variables que utilizo David.

La verdad este tema no me quedo tan claro, entonces busque un poco de información adicional y encontre este video donde en solo 5 minutos logre entender bien el teorema de Bayes, les comparto para el que le pueda servir también.

Saludos

Esta seria la solucion paso a paso:

No son los muy bellos apuntes de majo (disculpen el diseño no es mi mejor habilidad), pero ahí les va el Eikosograma para visualizarlo, les recomiendo también hacer a mano el ejercicio para entender

![](

En el código, para hacer un salto de línea pero continuar con el código el slash es al revés

prob_sintoma = (prob_sintoma_dado_cancer * prob_cancer) \
    + (prob_sintoma_dado_no_cancer * prob_no_cancer)

Aporte

  • H = tener cancer
  • E = tener sintomas
  • P(H) = prob_cancer
  • P(E) = Prob_sintomas
  • P(E|H) = Prob_sintoma_dado_cancer

Probabilidad de tener el coronavirus si tiene sintomas en Villavicencio Meta, ya que solo una persona
tiene el virus


def calc_bayes(prior_A, prob_B_dado_A, prob_B):
    return(prior_A * prob_B_dado_A) / prob_B


if __name__ == '__main__':
    prob_tener_covid_colombia = 1/540000
    
    prob_sintoma_dado_covid_colombia = 1
    prob_sintoma_dado_no_covid_colombia = 10 / 540000
    prob_no_tener_covid_colombia = 1 - prob_tener_covid_colombia


    prob_sintoma = (prob_sintoma_dado_covid_colombia * prob_tener_covid_colombia) + (prob_sintoma_dado_no_covid_colombia * prob_no_tener_covid_colombia) 
    
    prob_tener_covid_dado_sintoma = calc_bayes(prob_tener_covid_colombia, prob_sintoma_dado_covid_colombia,prob_sintoma)
    
    print(round(prob_tener_covid_dado_sintoma,10),'%')

Como tarea: Realizar la probabilidad de tener coronavirus si se tiene los sintomas.

A mi me ayudo mucho entender primero matemáticamente el teorema de Bayes, después trasladarlo a código es muy sencillo, les comparto este link donde explican este teorema.
https://www.youtube.com/watch?v=Fi6G48j0IZ4

En la medicina que se enseña hoy en día en las estudiantes médicos cada vez es más frecuente que se aborden temas como Pensamiento Probabilístico, o incluso Computacional con respecto a la evaluación diagnóstica, el pronóstico y los posibles tratamientos que es posible administrar a los distintos pacientes

El Teorema de Bayes es un conocimiento pilar para la corriente que predomina hoy en día entre los médicos jóvenes: La Medicina Basada en Evidencias (Evidence Based Medicine)

Se los cuento de primera mano porque el semestre pasado nos acaban de atiborrar de conocimientos y pruebas de conocimientos sobre el tema y de hecho es una de las cosas que me inspiró siendo médico en formación a incursionar en el campo del Desarrollo de Software para dar solución a muchos de los problemas que hoy aquejan a la mayoría de los pacientes que veo n.n

Si quieren leer más del tema, les dejo uno de los mejores libros al respecto (aunque quizá esté algo especializado)
https://booksmedicos.org/evidence-based-physical-diagnosis/

Yo sí me asusté con ese 50% que le salió haha

El error de sintaxis en el minuto 07:56 fue que se utilizo “/” (slash) en lugar de “” (backslash).

        probabilidadTenerSintoma=(probabilidadSintomaDadaEnfermedad*probabilidadEnfermedad)\
            +(probabilidadSintomaDadoNoEnfermedad*probabilidadNoEnfermedad) # "\" es en Python lo que "..." es en Matlab 

Al igual que algunos comentarios de la comunidad, recomiendo primero vean videos de como se resuleve matematicamente, ya que verlo en codigo se vuelve un tanto confunso.

El divisor de linea en pyrhon es en reaidad '\'

Comparto mi código por si a alguien se le facilita mas verlo en términos de H y E, como es mi caso

def cal_bayes(prior_H, prob_E_given_H, prob_E):
    return prior_H * prob_E_given_H / prob_E


if __name__ == '__main__':
    prior_H = 1 / 100000    
    prob_not_H = 1 - prior_H

    prob_E_given_H = 1  # todas las personas con cancer tienen síntomas osea: 100% 
    prob_E_given_not_H = 10 / 99999  # 10 de 99999 tienen síntomas y no cancer 

    prob_E = prior_H * prob_E_given_H + prob_not_H * prob_E_given_not_H # todos los casos de síntomas

    print("La probabilidad de tener cancer dado síntomas es: \n", cal_bayes(prior_H, prob_E_given_H, prob_E))

mi profesora de probabilidad me mataría por no escribir de manera rigurosa jajajaj pero así me lo enseñaron en mi escuela y creo que queda mucho más claro

me inventé también otro ejemplo para comprobar

ahora lo hice en código como el profe Aroesti enseña, estos son los resultados

la probabilidad de tener cáncer dado un síntoma es 9.091%
la probabilidad de la palabra perro está en el email dado que sea spam es 8.333%

Hola

Les comparto el código con algunas modificaciones para comprenderlo mejor.

def calc_bayes(prior_A, prob_B_dado_A, prob_B):
    #        P(H)   *     P(E/H)      /  P(E)
    return (prior_A * prob_B_dado_A) / prob_B


if __name__ == '__main__':
    
    # P(E/H)
    prob_cancer = 1 / 100000
    
    # P(H)
    prob_sintoma_dado_cancer = 1
    
    # P(¬H)
    prob_sintoma_dado_no_cancer = 10 / 99999
    
    # P(E/¬H)
    prob_no_cancer = 1 - prob_cancer
    
    #       P(E) =            P(H)           *   P(E/H)     +        P(¬H)                 *    P(E/¬H)
    prob_sintoma = (prob_sintoma_dado_cancer * prob_cancer) + (prob_sintoma_dado_no_cancer * prob_no_cancer)
    
    #       P(H/E)
    prob_cancer_dado_sintoma = calc_bayes(prob_cancer, prob_sintoma_dado_cancer, prob_sintoma)

    print(f'La probabilidad de tener cáncer dado que tiene síntoma es de {prob_cancer_dado_sintoma * 100}%.')

Era necesario utilizar el cáncer como ejemplo? No podía ser resfrió? No podía utilizar otro ejemplo de la vida diario que no se enfermedad? Cuantos alumnos con cáncer o familiares con cáncer habrá en Platzi? Un desacierto enorme de este señor.

Calculé las probabilidades de que presentar sintomas de covid, sea efectivamente covid en la Ciudad Autónoma de Buenos Aires hoy 26 de mayo. Sin embargo los datos de prob_sintoma_dado_no_covid es pura inferencia.

Debo admitir q es un ejemplo poco feliz

Probabilidad de tener sintomas dado COVID19 en Oruro Bolivia tomando que se tiene 90 casos en el departamento y 538200 habitantes, y se tiene el dato que 80% de los casos son asintomaticos y que se hicieron 386 pruebas a los sintomaticos hasta la fecha:
Dando que la probabilidad en este departamento es de 4.6%

def calc_bayes(prior_A, prob_B_dado_A, prob_B):
    return (prior_A * prob_B_dado_A) / prob_B


if __name__ == '__main__':
    prob_covid19 = 90 / 538200
    prob_sintoma_dado_covid19 = 18/90
    prob_sintoma_dado_no_covid19 = 368 / (538200-90)
    prob_no_covid19 = 1 - prob_covid19

    prob_sintoma = (prob_sintoma_dado_covid19 * prob_covid19) + (prob_sintoma_dado_no_covid19 * prob_no_covid19)

    prob_covid19_dado_sintoma = calc_bayes(prob_covid19, prob_sintoma_dado_covid19, prob_sintoma)

    print(prob_covid19_dado_sintoma)```

El 50% de Platzi preocupado por esto.

Por si a alguien le interesa 😃 El error que le dio al profe en la primera ejecución es porque tenía un slash normal (/), y el truco que enseñó si funciona (continuar una línea de código muy larga debajo), sólo que se debe usar backslash (\).

¡Saludos!

maldita curva del aprendizaje…!!!

Hice un ejercicio calculando la probabilidad de tener covid en mi ciudad si tengo síntomas:

Hola
A mí me ayudó mucho este video también

En lo que vi la probabiliad del 50% dudé de mi existencia jaja… Es por esto que es importante entender lo que hacemos, encontrar sentido en nuestros resultados.

¿Esto se puede implementar en otro lenguaje como Javascript?

def calc_bayes(prior_A, prob_B_dado_A, prob_B):
return (prior_A*prob_B_dado_A)/prob_B

if name == ‘main’:
prob_cancer = 1/100000
prob_sintoma_dado_cancer = 1
prob_sintoma_dado_no_cancer = 10/99999
prob_no_cancer = 1 - prob_cancer

prob_sintoma = (prob_sintoma_dado_cancer * prob_cancer) \
+ (prob_sintoma_dado_no_cancer * prob_no_cancer)

prob_cancer_dado_sintoma = calc_bayes(prob_cancer, prob_sintoma_dado_cancer, prob_sintoma)

print(prob_cancer_dado_sintoma)
#teorema de bayes
def calc_bayes(prior_A,prob_B_dado_A,prob_B):
    return(prior_A*prob_B_dado_A)/prob_B

if __name__=='__main__':
    prob_cancer=1/100000
    prob_sintoma_dado_cancer=1
    prob_sintoma_dado_no_cancer=10/99999 
    prob_no_cancer=1-prob_cancer

    prob_sintoma=(prob_sintoma_dado_cancer*prob_cancer) \
          +(prob_sintoma_dado_no_cancer *prob_no_cancer)   

    prob_cancer_dado_sintoma=calc_bayes(prob_cancer,prob_sintoma_dado_cancer,prob_sintoma)

    print(prob_cancer_dado_sintoma)

creo que hay un ligero error y es que el profesor escribió 999999
cuando la suma de los que no tienen cáncer es de 99999
por eso la probabilidad salió muy alta porque solo tenemos una muestra de 100000 personas

Llegue a entender el Teorema de Bayes ( recomiendo mucho el vídeo que dejaron en la clase pasada con el árbol) , lo que me pregunto es por qué simplemente no usar 1/11

Realmente es un 9%, dado que el examen (síntomas en el vídeo) sea positivo.
https://www.youtube.com/watch?v=D7KKlC0LOyw

3:46 --> La frase que dice David está al revés a como debería ser. En realidad, lo que la tabla nos dice es que todos los que tienen cáncer tienen síntomas.

no se pero a mi en mac me sale error en la linea 12 si pongo el /

Les paso mi apunte sobre la explicación de bayes, espero que les sirva 😃

Les dejo mi versión del código

# Implementamos la P(B) = P(A)P(A|B) + P(¬A)P(B|¬A)
def prob_b(prob_a, prob_b_dado_a, prob_b_complemento_a):
    calculo = prob_a * prob_b_dado_a + (1-prob_a) * prob_b_complemento_a
    return calculo

# Implementamos la P(A|B) = P(B|A)P(A) / P(B)
def cal_bayes(prob_a, prob_b_dado_a, prob_b_complemento_a):
    prob_evento = prob_b(prob_a, prob_b_dado_a, prob_b_complemento_a)
    calculo = (prob_b_dado_a * prob_a)/prob_evento

    return calculo

if __name__ == "__main__":
    prob_cancer = 1 / 100000
    prob_sintoma_dado_cancer = 1
    prob_sintoma_dado_no_cancer = 10 / 99999
    
    resultado = cal_bayes(prob_cancer, prob_sintoma_dado_cancer, prob_sintoma_dado_no_cancer)

    print(resultado)

Entrenar el pensamiento probabilístico, permite tomar mejor decisiones.

El teorema de bayes pone en jaque a los hipocondriacos :'V

este link es super [util para reforzar los conocimientos necesarios en todo el campo de las matemáticas:
https://matemovil.com/
y este otro link encuentras la guia de ejercicios del teorema de Bayes:
Descarga la guía de ejercicios: https://matemovil.com/?p=5488

Genial esta clase…

Siempre tomamos el prior, para basarnos en nuestro último resultado, para que luego en la siguiente prueba con nuevos datos, lo pogamos a prueba.

Si tienes un síntoma sin casi información, tus probabilidades, no se pueden ir al techo de una vez. No puede pensar lo peor.

Con el teorema de Bayes, podemos calcular, la probabilidad de que nuestros pacientes, tengan alguna enfermedad.

Aunque yo preferiría decir… La probabilidad de que dado un sintoma No tiene la enfermedad … 91% 😃 jejeje me suena mas positivo … De igualo manera que excelente explicación Gracias

1/11, es el resultado final, y tiene mucho sentido 😃

Sería muy interesante hacer este problema, pero con el cuadro general del covid, ya que hay personas asintomáticas y agregar toda la parte de resultados con las vacunas obtenidos, cual sería la probabilidad de que muriera el 30% de la población. Cosas así re locas.

Puede usar guiones bajos para separar los miles en python

100000 == 100_000

jaja esta medio crudo con estos ejemplos, donde los demás utilizan maquinas defectuosas o peces de colores pero se entiende todo el teorema 😄

Excelente clase

Me tenté durante 15 minutos cuando le dio como resultado 50% de probabilidades de estar enfermo JAJAJA

Tuve un problema al ejecutar el código, porque no lo pude identar correctamente, me he frustado toda la mañana pensando que era algún problema con mi versión de python porque estoy haciendo este curso desde windows, pero NOO, bueno como sea, les quiero dejar este tutorial completito de python que encontré. lo puedes pasar al idioma que tu gustes.

Entendido

El divisor de linea en pyrhon es en reaidad ‘’

sintomas.py


def calc_bayes(prior_A, prob_B_dado_A, prob_B):
	return (prior_A * prob_B_dado_A) / prob_B

if __name__ == '__main__':
	prob_cancer = 1 / 100000
	prob_sintoma_dado_cancer = 1
	prob_Sintoma_dado_no_cancer = 10/99999
	prob_no_cancer = 1 - prob_cancer

	prob_sintoma = (prob_sintoma_dado_cancer * prob_cancer) + (prob_Sintoma_dado_no_cancer*prob_no_cancer)

	prob_cancer_dado_sintoma = calc_bayes(prob_cancer, prob_sintoma_dado_cancer, prob_sintoma)

	print(prob_cancer_dado_sintoma)

jajajajajajajajajajajajajajajaj

Un código recursivo

def calc_bayes(prior_H, pro_E_dado_H, pro_E):
    return (prior_H * pro_E_dado_H) / pro_E

if __name__ == '__main__':
    prob_cancer = 1/100000
    prob_sintoma_dado_cancer = 1
    prob_sintoma_dado_no_cancer = 10 / 99999
    for _ in range(11):
        prob_no_cancer = 1 - prob_cancer

        prob_sintoma = (prob_cancer * prob_sintoma_dado_cancer) + (prob_no_cancer * prob_sintoma_dado_no_cancer)

        prob_cancer_dado_sintoma = calc_bayes(prob_cancer, prob_sintoma_dado_cancer, prob_sintoma)
        print(f'{prob_cancer_dado_sintoma * 100}%')
        prob_cancer = prob_cancer_dado_sintoma!```

[Captura.PNG](https://static.platzi.com/media/user_upload/Captura-911a61e2-d85b-4075-9507-e591065f507d.jpg)

P(A/B)/P(A)=P(B/A)/P(B) ahi se ve la proporcionalidad es mas entendible de esta manera creo yo que estar memorizando, ademas puedes hallarle sentido a la ecuacion con diagramas de veen por ejemplo

Muy buena implementación

Verlo ahora en código, a diferencia del montón de ejercicios hechos en la universidad, me da una visión nueva del asunto. Realmente es muy interesante conocer que detrás de la IA y el ML están las probabilidades y la estadística 😄

EJEMPLO DE TEOREMA DE BAYES: Excelente clase para recordar como se calcula este teorema

Lo que es indispensable en estas aplicaciones de conceptos estadísticos en un lenguaje de programación; es tener claro el funcionamiento de la formula y establecer los parámetros antes de proceder al código.

jajaa ese 50% si fue epico.

Buena clase, entendible perfectamente

muy buen implementación

def calc_symp(prior_a,p_b_dado_a, p_b):
    return prior_a * p_b_dado_a / p_b




if __name__ == "__main__":
    pro_cancer= 1/100000
    pro_symp_dado_cancer= 1
    pro_symp_dado_nocancer= 10/99999
    pro_no_tener_cancer= 1 - pro_cancer

    pro_symp= (pro_symp_dado_cancer* pro_cancer)+(pro_symp_dado_nocancer*pro_no_tener_cancer)
    pro_cancer_dado_symp= calc_symp(pro_cancer,pro_symp_dado_cancer,pro_symp)
    print(pro_cancer_dado_symp)

Les paso mi versión del código.

if __name__ == "__main__":
    
    total = 100000

    cancer_si = 1 / total
    cancer_no = 1 - cancer_si

    sintomas_si_cancer_si = 1
    sintomas_si_cancer_no = 10 / (total - 1)    

    sintomas_si = ( cancer_si * sintomas_si_cancer_si ) + ( cancer_no * sintomas_si_cancer_no )

    bayes = ( cancer_si * sintomas_si_cancer_si ) / sintomas_si

    print(' ')
    print('- Prob. de tener cancer y tener sintomas', bayes)

que susto con el primer calculo que salió jajaja 😃 😃

Explicación codigo

Para el error que viene en la línea 2, yo lo puse de esta manera:

    prob_sintoma = ((prob_sintoma_dado_cancer * prob_cancer)
    + (prob_sintoma_dado_no_cancer * prob_no_cancer))

El paréntesis inicia en la línea 12 y termina en la 13.

Aprovecho el ejemplo de esta clase para volver a subir un ejemplo que puse en la clase anterior y me parece pertinente ponerlo aquí:


Adjunto también el código:

# -*- coding: utf-8 -*-
# Goal: Compute the probability of having cancer given a symptom

def bayes_theorem(prob_event_given_hypothesis, prob_hypothesis, prob_event):
    return (prob_event_given_hypothesis*prob_hypothesis)/prob_event


def main():
    # compute probability of having cancer given a symptom.
    prob_cancer = 1 / 100000
    prob_no_cancer = 1 - prob_cancer
    prob_symptom_with_cancer = 1
    prob_symptom_no_cancer = 10 / 99999
    prob_symptom = prob_cancer * prob_symptom_with_cancer + prob_no_cancer * prob_symptom_no_cancer
    print(bayes_theorem(prob_symptom_with_cancer, prob_cancer, prob_symptom))


if __name__ == '__main__':
    main()

Para aquellos que no les quedó claro, el código que hice está un poco más detallado con comentarios

#aplicando el teorema de bayes
#ej. A=está nublado, B=Va a llover, Prob de que esté nublado debido a que va a llover

#Objetivo= calcular Prob de tener cancer dado que uno tiene los síntomas, P(A|B)

def calcular_teorema_Bayes(Evento_A, prob_B_dado_A,prob_hipotesis_B): #P(A), P(B|A), P(B)

	return (Evento_A* prob_B_dado_A)/prob_hipotesis_B   #P(A|B)= P(A) * P(B|A)/P(B)

if __name__=='__main__':
	#todas las probabilidades siguientes se consultan en la tabla
	prob_tener_cancer=1/100000 #1 de c/cienmil tienen cancer...  P(A)
	prob_tener_sintomas_dado_tiene_cancer= 1  #100% tener sintomas ya que si tienen cancer... P(B|A)
	prob_tener_sintomas_dado_no_cancer=10/99999 #10 tienen sintomas pero no cancer...  P(B|¬A)
	prob_no_tener_cancer= 1- prob_tener_cancer #1-1/100000...    P(¬A)

	#Cálculo adicional... P(B)= P(A) * P(B|A) + P(¬A)*P(B|¬A)
	prob_sintomas= (prob_tener_cancer * prob_tener_sintomas_dado_tiene_cancer) + (prob_no_tener_cancer*prob_tener_sintomas_dado_no_cancer) 

	#P(A|B)= P(A)*P(B|A)/P(B)... "TEOREMA DE BAYES"
	prob_cancer_dado_tener_sintomas= calcular_teorema_Bayes(prob_tener_cancer, prob_tener_sintomas_dado_tiene_cancer, prob_sintomas)
	print(f'Probabilidad de tener cancer dado a que tiene síntomas "P(A|B)=" {round(prob_cancer_dado_tener_sintomas*100, 2)} % ')
<h3>Genial</h3>

Les escribe un graduado de Ingeniería y les puedo afirmar:
.
Si bien dominé bastante todos estos conceptos de probabilidad, la verdad cada vez que introducía la fórmula de Bayes me tenía que parar a pensar y razonar cada operación que hacía. Es realmente utilizar la programación como Aliada para que únicamente nos enfoquemos en la “abstracción” de los valores que necesitamos y dejemos el resto de lado =)

Amigos les comparto el código con un formato presentable:

# prior_A = Probabilidad de que tenga cancer
# prob_B = Probabilidad de tener sintoma
# prob_B_dado_A = Probabilidad de tener un sintoma dado tener cancer

def calc_bayes(prior_A, prob_B_dado_A, prob_B): 
    return (prior_A * prob_B_dado_A ) / prob_B


if __name__ == '__main__':
    prob_cancer = 1 / 100000
    prob_sintoma_dado_cancer = 1
    prob_sintoma_dado_no_cancer = 10 / 99999
    prob_no_cancer = 1 - prob_cancer

    prob_sintoma = (prob_sintoma_dado_cancer * prob_cancer) \
    + (prob_sintoma_dado_no_cancer * prob_no_cancer)

    prob_cancer_dado_sintoma = calc_bayes(prob_cancer, prob_sintoma_dado_cancer, prob_sintoma)

    print(f"\n{round(prob_cancer_dado_sintoma*100, 2)} %, de probabilidad de tener cancer \n")

Este es el resultado

9.09 %, de probabilidad de tener cáncer

Además creo que con la base de las formulas se puede hacer un programa base con la formula de Bayes, para después solo alimentar datos y obtener el resultado de probabilidad que buscamos, en algún rato libre pensare en el código de este, Saludos.

Notas 😄
Análisis de síntomas.

  • Vamos a trabajar con una matriz de probabilidades de estar enfermo dados ciertos síntomas 🦠.
  • Puedes usar \ para partir dos líneas de código 😄 y así tu código se puede leer mejor. No es / como se vio en la clase.
def calc_bayes(prior_A, prob_B_dado_A, prob_B):
    return (prior_A * prob_B_dado_A) / prob_B

if __name__ == '__main__':
    prob_cancer = 1 / 100000
    prob_sintoma_dado_cancer = 1 
    prob_sintoma_no_cancer = 10 / 99999
    prob_no_cancer = 1 - prob_cancer
    
    prob_sintoma = (prob_sintoma_dado_cancer) * prob_cancer \
                    + (prob_sintoma_no_cancer) * prob_no_cancer
                    
    prob_cancer_dado_sintoma = calc_bayes(prob_cancer, 
                                          prob_sintoma_dado_cancer,
                                          prob_sintoma)
    
    print(prob_cancer_dado_sintoma)

Esto es lo mismo que una matriz de confusión, correcto?

No se si ya hayan comentado esto, pero para hacer el salto de línea entre el código es con \ en lugar de /

La probabilidad de síntomas la calcule usando la fórmula pero se llega al mismo resultado.

<# Hipotesis: Tener Cancer
#Evidencia: Tener Sintomas
# P(H|E): probabilidad de tener cancer dado que tengo sintomas
# P(H): probabilidad de sintomas = 1/100000
# P(E|H): probabilidad de tener sintomas dado que cancer = 1/1 = 1
# P(¬H): Probabilidad de no tener cancer = 99999/100000
# P(E|¬H): Probabilidad de tener sintomas dado que no tengo cancer = 10/99999


def cancer_sintomas(prob_A, Prob_B_A, prob_B):
    return (prob_A * Prob_B_A) / prob_B

if __name__ == '__main__':
    prob_cancer = 1 / 100000
    prob_sintomas_cancer = 1
    prob_no_cancer = 99999/100000
    prob_sintomas_no_cancer = 10/99999
    prob_sintomas = (prob_cancer * prob_sintomas_cancer) + (prob_no_cancer * prob_sintomas_no_cancer)

    prob_cancer_dado_sintoma = cancer_sintomas(prob_cancer, prob_sintomas_cancer, prob_sintomas)

    print(prob_cancer_dado_sintoma)

>
def calc_bayes(prior_A, prob_B_dado_A, prob_B):
    return (prior_A * prob_B_dado_A) / prob_B


if __name__ == '__main__':
    prob_cancer = 1/100000
    prob_sintoma_dado_cancer = 1
    prob_sintoma_dado_no_cancer = 10 /99999
    prob_no_cancer = 1 - prob_cancer

    prob_sintoma = (prob_sintoma_dado_cancer * prob_cancer) + (prob_sintoma_dado_no_cancer * prob_no_cancer)

    prob_cancer_dado_sintoma = calc_bayes(prob_cancer, prob_sintoma_dado_cancer, prob_sintoma)

    percent = round(prob_cancer_dado_sintoma * 100, 2)
    
    print(f'La probabilidad de que tenga cancer es de {percent}%')
La probabilidad de que tenga cancer es de 9.09%