Angenommen, eine bestimmte Krankheit ( ) hat eine Prävalenz von . Nehmen wir auch an, dass ein bestimmtes Symptom ( ) eine Prävalenz (in der Allgemeinbevölkerung = Menschen mit dieser Krankheit D und Menschen ohne diese Krankheit [wahrscheinlich mit einer anderen Krankheit, aber nicht wichtig]) von . In einer früheren Untersuchung wurde entdeckt, dass die bedingte Wahrscheinlichkeit (die Wahrscheinlichkeit, das Symptom zu haben , wenn die Krankheit beträgt ).3 S.S D 30 %
Erste Frage : Könnte als äquivalent zur Prävalenz des Symptoms in der Gruppe der Menschen mit der Krankheit interpretiert werden ?S D
Zweite Frage : Ich möchte in R einen Datensatz erstellen, der Folgendes zeigt:
P(D|S)=0.18SD18%
Wie macht man das? Wenn ich einfach die sample
Funktion verwende, fehlen in meinem Datensatz die Informationen, dass :
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)
Meine Frage lautet also: Wie erstelle ich einen guten Datensatz, einschließlich der von mir gewünschten bedingten Wahrscheinlichkeit?
BEARBEITEN : Ich habe die gleiche Frage auch auf stackoverflow.com ( /programming/7291935/how-to-create-a-dataset-with-conditional-probability ) gepostet , weil meiner Meinung nach meine Frage wird an das R-Sprachprogramm, aber auch an die statistische Theorie vererbt.
quelle
Antworten:
Sie kennen die folgenden Grenzwahrscheinlichkeiten
und das
a/(a+b) = 0.3
so wird dasund in der Tat,
a/(a+c) = 0.18
wie Sie sagten.In R könnte man also so etwas codieren
Sie sollten jedoch beachten, dass 1000 eine kleine Stichprobe ist, wenn eines der Ereignisse eine Wahrscheinlichkeit von 0,0009 hat.
quelle
Die
table
Funktion gibt ein matrixartiges Objekt zurück:Also ist Pr (D | S = "Ja") =
Ich habe das Problem geändert, weil ich beim ersten Ausführen mit Ihren Parametern Folgendes erhalten habe:
Und ich fand ein Pr (D | S = "yes") von 0 ziemlich langweilig. Wenn Sie dies viele Male ausführen möchten, sollten Sie eine Funktion erstellen und diese Funktion mit der
replicate
Funktion verwenden.Hier ist eine Methode zum Erstellen eines Datensatzes, bei der eine andere Krankheitswahrscheinlichkeit in der symptomatischen Gruppe angewendet wird, die dreimal höher ist als in der asymptomatischen Gruppe:
quelle
Ich würde behaupten, dass Ihre Frage nicht wirklich stark von der R-Sprache abhängt und hier angemessener ist, da - um ehrlich zu sein - die Generierung solcher Daten meistens eher eine statistische als eine Programmieraufgabe ist.
Erste Frage: p (S | D) ist das Risiko , Symptom S in einer Population mit Krankheit D zu haben. Es kann direkt mit der Prävalenz mit bestimmten Einschränkungen vergleichbar sein, beispielsweise wenn das Symptom keinen Einfluss auf die Krankheitsdauer hat. Betrachten Sie das folgende Beispiel: Eines der Symptome von SuperEbola ist der sofortige Tod mit p (Tod | Super-Ebola) = 0,99. Hier wäre Ihre Prävalenz des Symptoms tatsächlich extrem niedrig (in der Tat 0,00), da niemand, den Sie mit der Krankheit untersuchen können, das Symptom hat.
Zweite Frage: Ich würde etwas schrittweise darauf zurückkommen. Berechnen Sie zunächst das Grundrisiko des Symptoms, das Sie benötigen, um 0,15 in der gesamten Bevölkerung zu erhalten, und berücksichtigen Sie dabei, dass 0,03% Ihrer Bevölkerung eine höhere Rate aufweisen. Dann erzeugen Sie im Wesentlichen zwei Wahrscheinlichkeiten:
Generieren Sie dann zwei einheitliche Zufallszahlen. Wenn der erste Wert weniger als 0,003 beträgt, haben sie die Krankheit. Das wird dann für die Sekunde in die Risikoberechnung eingespeist, und wenn die Zufallszahl für jede Person geringer ist als ihr Risiko, haben sie das Symptom.
Dies ist eine Art trampelnde, unelegante Art, Dinge zu tun, und es ist wahrscheinlich, dass jemand mit einem weitaus effizienteren Ansatz vorbeikommt. Aber ich finde es in Simulationsstudien nützlich, jeden Schritt im Code zu buchstabieren, und es ist nützlich, ihn so nah wie möglich an einem Datensatz in der realen Welt zu halten.
quelle
Erste Frage:
Ja, das ist natürlich fast die Definition, obwohl mit Ihrer Stichprobengröße ein Fehler verbunden ist. Dies ist nur bei einer unendlichen Stichprobengröße genau richtig.
Zweite Frage:
Dies nennt man Bayes-Theorem , aber ich nehme an, dass Sie das bereits wissen. Angesichts der von Ihnen angegebenen Informationen erhalte ich die Wahrscheinlichkeit von P (D | S) als 0,18 oder 18%:
Leider bin ich mit R nicht allzu vertraut und kann Ihnen daher mit einem genauen Programm nicht wirklich weiterhelfen. Aber sicherlich ist die Anzahl der Personen, die in jede Gruppe fallen, recht einfach zu berechnen:
Für Ihr 10000-Probenset benötigen Sie:
Das sollte die Generierung einer geeigneten Bevölkerung ziemlich trivial machen.
quelle