Supposons qu'une certaine maladie ( ) ait une prévalence de . Supposons également qu'un certain symptôme ( ) ait une prévalence (dans la population générale = personnes atteintes de cette maladie D et personnes sans cette maladie [probablement avec une autre maladie, mais ce n'est pas important]) de . Dans une recherche précédente, il a été découvert que la probabilité conditionnelle (la probabilité d'avoir le symptôme , étant donné la maladie est de ).
Première question : pourrait-il être interprété comme équivalent à la prévalence du symptôme dans le groupe de personnes atteintes de la maladie ?
Deuxième question : je veux créer dans R un jeu de données, qui montre que:
Comment faire ça? Si j'utilise simplement la sample
fonction, mon jeu de données manque d'informations 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)
Ma question est donc: comment créer un bon ensemble de données, y compris la probabilité conditionnelle que je souhaite?
EDIT : J'ai également posté la même question sur stackoverflow.com ( /programming/7291935/how-to-create-a-dataset-with-conditional-probability ), car, à mon avis, ma question est hérité du programme de langue R, mais aussi de la théorie statistique.
la source
Réponses:
Vous connaissez les probabilités marginales suivantes
et que
a/(a+b) = 0.3
cela devientet en effet
a/(a+c) = 0.18
comme vous l'avez dit.Donc, dans R, vous pouvez coder quelque chose comme
Cependant, vous devez noter que 1000 est un petit échantillon lorsque l'un des événements a une probabilité de 0,0009 de se produire.
la source
La
table
fonction renvoie un objet matriciel:Donc le Pr (D | S = "oui") =
J'ai changé le problème car la première fois que je l'ai exécuté avec vos paramètres, j'ai eu:
Et je pensais qu'un Pr (D | S = "oui") de 0 était plutôt ennuyeux. Si vous allez exécuter cela plusieurs fois, vous devez construire une fonction et utiliser cette fonction avec la
replicate
fonction.Voici une méthode de construction d'un ensemble de données qui applique une probabilité de maladie différente dans le groupe symptomatique qu'elle est 3 fois plus élevée que celle utilisée dans le groupe asymptomatique:
la source
Je dirais que votre question n'est pas vraiment très dépendante du langage R, et plus appropriée ici, car - pour être franc - la génération de données comme celle-ci est principalement une tâche statistique, plutôt qu'une programmation.
Première question: p (S | D) est le risque d'avoir le symptôme S dans une population atteinte de la maladie D. Il peut être directement comparable à la prévalence avec certaines mises en garde, comme le symptôme n'ayant aucun impact sur la durée de la maladie. Prenons l'exemple suivant: L'un des symptômes de SuperEbola est la mort instantanée, avec p (Death | Super Ebola) = 0,99. Ici, votre prévalence du symptôme serait en fait extrêmement faible (en effet, 0,00) car personne que vous pouvez échantillonner avec la maladie n'a le symptôme.
Deuxième question: je reviendrais là-dessus de façon quelque peu progressive. Tout d'abord, calculez le risque de base du symptôme dont vous aurez besoin pour obtenir 0,15 dans l'ensemble de la population, en tenant compte du fait que 0,03% de votre population sera à un taux plus élevé. Génèrent ensuite essentiellement deux probabilités:
Générez ensuite deux nombres aléatoires uniformes. Si le premier est inférieur à 0,003, ils ont la maladie. Cela est ensuite introduit dans le calcul du risque pour le second, et si le nombre aléatoire pour chaque individu est inférieur à leur risque, ils ont le symptôme.
C'est une sorte de façon inélégante de faire les choses, et il est probable que quelqu'un viendra avec une approche beaucoup plus efficace. Mais je trouve dans les études de simulation l'orthographe de chaque étape du code, et le garder aussi proche de la façon dont je verrais un ensemble de données dans le monde réel est utile.
la source
Première question:
Oui, bien sûr, c'est presque la définition, bien que vous ayez une erreur associée à la taille de votre échantillon. c'est-à-dire que ce n'est exact que pour une taille d'échantillon infinie.
Deuxième question:
C'est ce qu'on appelle le théorème de Bayes , mais je suppose que vous le savez déjà. Maintenant, compte tenu des informations que vous avez fournies, j'obtiens une probabilité de P (D | S) de 0,18 ou 18%:
Maintenant, malheureusement, je ne suis pas trop familier avec R, donc je ne peux pas vraiment vous aider avec un programme exact. Mais sûrement, les quantités de personnes qui appartiennent à chaque groupe sont assez faciles à calculer:
Pour votre jeu d'échantillons 10000, vous avez besoin de:
Ce qui devrait rendre la création d'une population convenable assez triviale.
la source