Supongamos que una determinada enfermedad () tiene una prevalencia de . Supongamos también que cierto síntoma () tiene una prevalencia (en la población general = personas con esa enfermedadD y personas sin esa enfermedad [probablemente con otra enfermedad, pero no es importante]) de . En una investigación previa, se descubrió que la probabilidad condicional (la probabilidad de tener el síntoma , dada la enfermedad es )
Primera pregunta : podría ser interpretado como equivalente a la prevalencia del síntoma en el grupo de personas que tienen la enfermedad ?
Segunda pregunta : quiero crear en R un conjunto de datos, que muestra que:
¿Como hacer esto? Si uso simplemente la sample
función, mi conjunto de datos carece de la información que:
symptom <- sample(c("yes","no"), 1000, prob=c(0.005, 0.995), rep=T)
disease <- sample(c("yes","no"), 1000, prob=c(0.002, 0.998), rep=T)
Entonces mi pregunta es: ¿cómo crear un buen conjunto de datos, incluida la probabilidad condicional que deseo?
EDITAR : publiqué la misma pregunta también en stackoverflow.com ( /programming/7291935/how-to-create-a-dataset-with-conditional-probability ), porque, en mi opinión, mi pregunta se hereda del programa de lenguaje R, pero también de la teoría estadística.
fuente
Respuestas:
Conoces las siguientes probabilidades marginales
y eso se
a/(a+b) = 0.3
convierte eny de hecho
a/(a+c) = 0.18
como dijiste.Entonces en R podrías codificar algo como
aunque debe tener en cuenta que 1000 es una muestra pequeña cuando uno de los eventos tiene una probabilidad de que ocurra 0.0009.
fuente
La
table
función devuelve un objeto tipo matriz:Entonces el Pr (D | S = "sí") =
Cambié el problema porque la primera vez que lo ejecuté con sus parámetros, obtuve:
Y pensé que un Pr (D | S = "yes") de 0 era bastante aburrido. Si va a ejecutar esto muchas veces, debe construir una función y usar esa función con la
replicate
función.Aquí hay un método para construir un conjunto de datos que aplique una probabilidad diferente de enfermedad en el grupo sintomático que sea 3 veces mayor que la utilizada en el grupo asintomático:
fuente
Yo diría que su pregunta no es realmente tan dependiente del lenguaje R, y más apropiado aquí, porque, para ser franco, la generación de datos como esta es principalmente una tarea estadística, en lugar de una programación.
Primera pregunta: p (S | D) es el riesgo de tener un síntoma S en una población con enfermedad D. Puede ser directamente comparable a la prevalencia con ciertas advertencias, como el síntoma que no tiene impacto en la duración de la enfermedad. Considere el siguiente ejemplo: Uno de los síntomas de SuperEbola es Instant Death, con p (Death | Super Ebola) = 0.99. Aquí, su prevalencia del síntoma en realidad sería extremadamente baja (de hecho, 0.00) ya que nadie a quien pueda tomar muestras con la enfermedad tiene el síntoma.
Segunda pregunta: Volvería a esto de una manera un tanto gradual. Primero, calcule el riesgo inicial del síntoma que necesitará para obtener 0.15 en toda la población, teniendo en cuenta que el 0.03% de su población tendrá una tasa más alta. Entonces esencialmente genera dos probabilidades:
Luego genera dos números aleatorios uniformes. Si el primero es inferior a 0,003, tienen la enfermedad. Eso luego se introduce en el cálculo del riesgo para el segundo, y si el número aleatorio de cada individuo es menor que su riesgo, tienen el síntoma.
Esta es una forma poco elegante y poco elegante de hacer las cosas, y es probable que alguien llegue con un enfoque mucho más eficiente. Pero encuentro en los estudios de simulación que detallan cada paso en el código, y es útil mantenerlo tan cerca de cómo vería un conjunto de datos en el mundo real.
fuente
Primera pregunta:
Sí, por supuesto, esa es casi la definición, aunque tendrá algún error asociado con el tamaño de su muestra. es decir, esto es exactamente correcto en un tamaño de muestra infinito.
Segunda pregunta:
Esto se llama Teorema de Bayes , pero supongo que ya lo sabes. Ahora, dada la información que ha proporcionado, obtengo la probabilidad de P (D | S) como 0.18 o 18%:
Ahora, desafortunadamente, no estoy muy familiarizado con R, así que realmente no puedo ayudarte con un programa exacto. Pero seguramente las cantidades de personas que caen en cada grupo son bastante fáciles de calcular:
Para su conjunto de muestra 10000 necesita:
Lo que debería hacer que generar una población adecuada sea bastante trivial.
fuente