{"id":22147,"date":"2024-11-18T02:18:12","date_gmt":"2024-11-18T01:18:12","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=22147"},"modified":"2025-01-10T20:12:06","modified_gmt":"2025-01-10T19:12:06","slug":"satz-von-bayes","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=22147","title":{"rendered":"Wahrscheinlichkeitsrechnung mit dem Satz von Bayes nicht nur f\u00fcr Versicherungen und Medizin"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/baumdiagram.png\" alt=\"\" width=\"1200\" height=\"600\" class=\"aligncenter size-full wp-image-22158\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/baumdiagram.png 1200w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/baumdiagram-300x150.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/baumdiagram-1024x512.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/baumdiagram-768x384.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>Der <a href=\"https:\/\/de.wikipedia.org\/wiki\/Satz_von_Bayes\" target=\"_blank\">Satz von Bayes<\/a> ist ein grundlegendes <a href=\"https:\/\/de.wikipedia.org\/wiki\/Theorem\" target=\"_blank\">Theorem<\/a> in der <a href=\"https:\/\/de.wikipedia.org\/wiki\/Wahrscheinlichkeitstheorie\" target=\"_blank\">Wahrscheinlichkeitsrechnung<\/a>, das den Zusammenhang zwischen bedingten Wahrscheinlichkeiten beschreibt. <\/p>\n<p>Der Satz von Bayes ist ein spannendes Werkzeug aus der Welt der Mathematik, das uns hilft, Wahrscheinlichkeiten zu verstehen und zu berechnen. Er wird in vielen Bereichen angewendet, von der Medizin \u00fcber K\u00fcnstliche Intelligenz bis hin zu Alltagssituationen. Aber was genau besagt dieser Satz, und warum ist er so n\u00fctzlich?<\/p>\n<p>Was ist der Satz von Bayes? <!--more--><\/p>\n<p>Der Satz von Bayes hilft uns, eine Wahrscheinlichkeit besser einzusch\u00e4tzen, wenn wir neue Informationen erhalten. Stellen Sie sich vor, Sie wollen wissen, wie wahrscheinlich es ist, dass jemand eine bestimmte Krankheit hat, wenn ein Test positiv ausf\u00e4llt. Es reicht nicht aus, nur zu wissen, wie zuverl\u00e4ssig der Test ist \u2013 Sie m\u00fcssen auch wissen, wie oft die Krankheit in der Bev\u00f6lkerung vorkommt.<\/p>\n<p>Der Satz von Bayes gibt uns die Formel daf\u00fcr:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-16-um-19.47.22.png\" alt=\"\" width=\"632\" height=\"168\" class=\"aligncenter size-full wp-image-22151\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-16-um-19.47.22.png 632w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-16-um-19.47.22-300x80.png 300w\" sizes=\"auto, (max-width: 632px) 100vw, 632px\" \/>\u200b<\/p>\n<p>Das sieht kompliziert aus, aber keine Sorge \u2013 wir gehen es Schritt f\u00fcr Schritt durch und erstellen auch ein Java-Beispiel daf\u00fcr.<\/p>\n<p>Ein einfaches Beispiel<\/p>\n<p>Stellen Sie sich vor, in einer Stadt sind 1 % der Menschen krank (Pr\u00e4valenz). Es gibt einen Test, der in 95 % der F\u00e4lle eine kranke Person korrekt erkennt (Sensitivit\u00e4t). Aber der Test ist nicht perfekt: Bei 5 % der gesunden Menschen zeigt er f\u00e4lschlicherweise ein positives Ergebnis (Falsch-Positiv-Rate).<\/p>\n<p>Wenn Sie nun positiv getestet werden, wollen Sie wissen: Wie wahrscheinlich bin ich tats\u00e4chlich krank? Da hilft der Satz von Bayes.<\/p>\n<p>Wir m\u00fcssen drei Dinge wissen:<\/p>\n<p>    1. Wie h\u00e4ufig ist die Krankheit?  Das ist P(Krank) = 0,01 oder 1 %.<\/p>\n<p>    2. Wie zuverl\u00e4ssig ist der Test bei Kranken? P(Positiv\u2223Krank) = 0,95 oder 95 %.<\/p>\n<p>    3. Wie oft gibt es ein positives Ergebnis insgesamt? Das ist P(Positiv) <\/p>\n<p>Der Satz von Bayes sagt uns:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-16-um-19.50.04.png\" alt=\"\" width=\"1086\" height=\"154\" class=\"aligncenter size-full wp-image-22152\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-16-um-19.50.04.png 1086w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-16-um-19.50.04-300x43.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-16-um-19.50.04-1024x145.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-16-um-19.50.04-768x109.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p><strong>Berechnung<\/strong><\/p>\n<p>Die Gesamtwahrscheinlichkeit f\u00fcr ein positives Testergebnis (P(Positiv)) setzt sich aus zwei Teilen zusammen:<\/p>\n<p>    Der Test erkennt eine kranke Person als positiv: P(Positiv\u2223Krank)\u22c5P(Krank)= 0,95\u22c50,01 =0,0095<\/p>\n<p>    Der Test zeigt f\u00e4lschlicherweise positiv bei einer gesunden Person: P(Positiv\u2223NichtKrank)\u22c5P(NichtKrank)=0,05\u22c50,99=0,0495<\/p>\n<p>Zusammen ergibt das:<\/p>\n<p>P(Positiv)=0,0095+0,0495=0,059<\/p>\n<p>Jetzt setzen wir alles in die Bayes-Formel ein:<\/p>\n<p>P(Krank\u2223Positiv)  = 0,95\u22c50,010,059 \u2248 0,161<\/p>\n<p>Das bedeutet: Wenn Sie positiv getestet wurden, liegt die Wahrscheinlichkeit, dass Sie tats\u00e4chlich krank sind, nur bei <strong>16 %<\/strong>.<\/p>\n<p>Was lernen wir daraus?<\/p>\n<p>Das Ergebnis mag \u00fcberraschend sein, vor allem weil der Test so zuverl\u00e4ssig klingt. Der Grund ist, dass die Krankheit insgesamt sehr selten ist. Selbst ein guter Test erzeugt bei vielen gesunden Menschen Falsch-Positive, wenn die Krankheit selten vorkommt.<\/p>\n<p>Warum ist der Satz von Bayes wichtig?<\/p>\n<p>Der Satz von Bayes hilft uns, besser mit Unsicherheiten umzugehen. In der Medizin zeigt er, dass Diagnosen immer im Zusammenhang mit der H\u00e4ufigkeit einer Krankheit betrachtet werden m\u00fcssen.<\/p>\n<p>Auch in anderen Bereichen wird er genutzt:<\/p>\n<p>    <strong>K\u00fcnstliche Intelligenz<\/strong>: Um Entscheidungen basierend auf Daten zu treffen.<br \/>\n    <strong>Versicherungen<\/strong>: Um Risiken zu berechnen.<br \/>\n    <strong>Kriminalistik<\/strong>: Um Wahrscheinlichkeiten f\u00fcr bestimmte Szenarien zu bewerten.<\/p>\n<p>Der Satz von Bayes ist wie ein Werkzeug, das uns zeigt, wie wir unser Wissen durch neue Informationen aktualisieren k\u00f6nnen. Egal, ob es um Medizin, Statistik oder Alltagsfragen geht \u2013 mit diesem Satz verstehen wir Wahrscheinlichkeiten besser und k\u00f6nnen kl\u00fcgere Entscheidungen treffen.<\/p>\n<p>Jetzt noch das versprochenen Java-Programm (im git <a href=\"https:\/\/gitlab.com\/IT-Berater\/twmathe\/-\/blob\/main\/src\/main\/java\/de\/wenzlaff\/mathe\/SatzVonBayes.java?ref_type=heads\" target=\"_blank\">repo<\/a>), aus dem Beispiel, es kann auch leicht mit anderen Werten angepasst werden:<\/p>\n<pre class=\"lang:default decode:true \" >package de.wenzlaff.mathe;\r\n\r\n\/**\r\n * Satz von Bayes.\r\n * \r\n * Aufruf: java StatzVonBayes 0.01 0.95 0.05\r\n * \r\n * @author Thomas Wenzlaff\r\n *\r\n *\/\r\npublic class SatzVonBayes {\r\n\r\n\t\/**\r\n\t * \r\n\t * @param args Parameter 1. Wahrscheinlichkeit, krank zu sein, 2.\r\n\t *             Wahrscheinlichkeit, dass der Test bei Krankheit positiv ist 3.\r\n\t *             Wahrscheinlichkeit, dass der Test f\u00e4lschlicherweise positiv ist\r\n\t *\/\r\n\tpublic static void main(String[] args) {\r\n\t\tif (args.length != 3) {\r\n\t\t\tSystem.out.println(\"Bitte geben Sie drei Parameter an, z.B. Aufruf: java StatzVonBayes 0.01 0.95 0.05\");\r\n\t\t\tSystem.out.println(\"1. Wahrscheinlichkeit, krank zu sein\\n\" + \"2. Wahrscheinlichkeit, dass der Test bei Krankheit positiv ist\\n\"\r\n\t\t\t\t\t+ \"3. Wahrscheinlichkeit, dass der Test f\u00e4lschlicherweise positiv ist\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tdouble prevalence = Double.parseDouble(args[0]); \/\/ 0.01; \/\/ Wahrscheinlichkeit, krank zu sein (1 %)\r\n\t\tdouble sensitivity = Double.parseDouble(args[1]); \/\/ 0.95; \/\/ Wahrscheinlichkeit, dass der Test bei Krankheit positiv ist\r\n\t\tdouble falsePositiveRate = Double.parseDouble(args[2]); \/\/ 0.05; \/\/ Wahrscheinlichkeit, dass der Test f\u00e4lschlicherweise positiv ist\r\n\r\n\t\tdouble probabilityHealthy = 1 - prevalence; \/\/ Wahrscheinlichkeit, gesund zu sein\r\n\t\tdouble totalPositive = (sensitivity * prevalence) + (falsePositiveRate * probabilityHealthy);\r\n\r\n\t\tdouble probabilitySickGivenPositive = (sensitivity * prevalence) \/ totalPositive;\r\n\t\tdouble probabilitySickGivenPositivePercent = probabilitySickGivenPositive * 100;\r\n\r\n\t\tprintResult(prevalence, sensitivity, falsePositiveRate, probabilitySickGivenPositivePercent);\r\n\t}\r\n\r\n\tprivate static void printResult(double prevalence, double sensitivity, double falsePositiveRate, double probabilitySickGivenPositivePercent) {\r\n\t\tSystem.out.printf(\"Wahrscheinlichkeit krank zu sein (prevalence): %.2f%%\\n\", prevalence);\r\n\t\tSystem.out.printf(\"Wahrscheinlichkeit, dass der Test bei Krankheit positiv ist (sensitivity): %.2f%%\\n\", sensitivity);\r\n\t\tSystem.out.printf(\"Wahrscheinlichkeit, dass der Test f\u00e4lschlicherweise positiv ist (falsePositiveRate): %.2f%%\\n\", falsePositiveRate);\r\n\r\n\t\tSystem.out.printf(\"Ergebnis: Die Wahrscheinlichkeit, krank zu sein, wenn der Test positiv ist: %.2f%%\\n\", probabilitySickGivenPositivePercent);\r\n\t}\r\n}\r\n<\/pre>\n<p>Das Baumdiagramm dazu, welches ich mit Python auf dem Mac generiert habe (siehe ganz oben):<\/p>\n<pre class=\"minimize:true lang:python decode:true \" >\r\n\r\n#!\/usr\/bin\/env python\r\n\r\n# Thomas Wenzlaff, kleinhirn.eu\r\n\r\nimport matplotlib.pyplot as plt\r\nimport networkx as nx\r\n\r\n# Erstelle den Baum als gerichteten Graphen\r\nG = nx.DiGraph()\r\n\r\n# Hinzuf\u00fcgen der Knoten\r\nG.add_node(\"Start\")\r\nG.add_node(\"Krank (1%)\")\r\nG.add_node(\"Gesund (99%)\")\r\nG.add_node(\"Positiv (95%)\")\r\nG.add_node(\"Negativ (5%)\")\r\nG.add_node(\"Falsch Positiv (5%)\")\r\nG.add_node(\"Richtig Negativ (95%)\")\r\n\r\n# Hinzuf\u00fcgen der Verbindungen\r\nG.add_edge(\"Start\", \"Krank (1%)\", weight=0.01)\r\nG.add_edge(\"Start\", \"Gesund (99%)\", weight=0.99)\r\nG.add_edge(\"Krank (1%)\", \"Positiv (95%)\", weight=0.95)\r\nG.add_edge(\"Krank (1%)\", \"Negativ (5%)\", weight=0.05)\r\nG.add_edge(\"Gesund (99%)\", \"Falsch Positiv (5%)\", weight=0.05)\r\nG.add_edge(\"Gesund (99%)\", \"Richtig Negativ (95%)\", weight=0.95)\r\n\r\n# Position der Knoten im Baumdiagramm\r\npos = {\r\n    \"Start\": (0, 3),\r\n    \"Krank (1%)\": (-1, 2),\r\n    \"Gesund (99%)\": (1, 2),\r\n    \"Positiv (95%)\": (-1.5, 1),\r\n    \"Negativ (5%)\": (-0.5, 1),\r\n    \"Falsch Positiv (5%)\": (0.5, 1),\r\n    \"Richtig Negativ (95%)\": (1.5, 1),\r\n}\r\n\r\n# Erstellen der Graphen-Labels\r\nlabels = {\r\n    (\"Start\", \"Krank (1%)\"): \"1%\",\r\n    (\"Start\", \"Gesund (99%)\"): \"99%\",\r\n    (\"Krank (1%)\", \"Positiv (95%)\"): \"95%\",\r\n    (\"Krank (1%)\", \"Negativ (5%)\"): \"5%\",\r\n    (\"Gesund (99%)\", \"Falsch Positiv (5%)\"): \"5%\",\r\n    (\"Gesund (99%)\", \"Richtig Negativ (95%)\"): \"95%\",\r\n}\r\n\r\n# die Labels mit Dezimalzahlen zus\u00e4tzlich zu den Prozentwerten\r\nlabels_decimal = {\r\n    (\"Start\", \"Krank (1%)\"): \"1% (0.01)\",\r\n    (\"Start\", \"Gesund (99%)\"): \"99% (0.99)\",\r\n    (\"Krank (1%)\", \"Positiv (95%)\"): \"95% (0.95)\",\r\n    (\"Krank (1%)\", \"Negativ (5%)\"): \"5% (0.05)\",\r\n    (\"Gesund (99%)\", \"Falsch Positiv (5%)\"): \"5% (0.05)\",\r\n    (\"Gesund (99%)\", \"Richtig Negativ (95%)\"): \"95% (0.95)\",\r\n}\r\n\r\n# Erstelle den Baum mit einer horizontalen Ausrichtung (links nach rechts)\r\npos_horizontal = {\r\n    \"Start\": (0, 0),\r\n    \"Krank (1%)\": (1, 1),\r\n    \"Gesund (99%)\": (1, -1),\r\n    \"Positiv (95%)\": (2, 1.5),\r\n    \"Negativ (5%)\": (2, 0.5),\r\n    \"Falsch Positiv (5%)\": (2, -0.5),\r\n    \"Richtig Negativ (95%)\": (2, -1.5),\r\n}\r\n\r\n# Zeichne den Graphen horizontal mit den neuen Labels\r\nplt.figure(figsize=(12, 6))\r\n\r\nnx.draw(G, pos_horizontal, with_labels=True, node_size=3000, node_color=\"lightblue\", font_size=10, font_weight=\"bold\")\r\nnx.draw_networkx_edge_labels(G, pos_horizontal, edge_labels=labels_decimal, font_color=\"red\")\r\n\r\nplt.title(\"Baumdiagramm f\u00fcr den Satz von Bayes\")\r\n\r\nplt.show()\r\n<\/pre>\n<p>Und die Vierfeldtafel um die Werte zu validieren:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/vierfeldtafel.png\" alt=\"\" width=\"1614\" height=\"461\" class=\"aligncenter size-full wp-image-22161\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/vierfeldtafel.png 1614w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/vierfeldtafel-300x86.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/vierfeldtafel-1024x292.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/vierfeldtafel-768x219.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/vierfeldtafel-1536x439.png 1536w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>mit diesem Code:<\/p>\n<pre class=\"minimize:true lang:python decode:true \" >#!\/usr\/bin\/env python\r\n\r\n# Thomas Wenzlaff, kleinhirn.eu\r\n\r\nimport pandas as pd\r\nimport matplotlib.pyplot as plt\r\n\r\n# Daten f\u00fcr die Vierfeldertafel\r\ndata = {\r\n    \"\": [\"Positiver Test\", \"Negativer Test\", \"Summe\"],\r\n    \"Krank (1%)\": [0.0095, 0.0005, 0.01],\r\n    \"Gesund (99%)\": [0.0495, 0.9405, 0.99],\r\n    \"Summe\": [0.059, 0.941, 1.0]\r\n}\r\n\r\n# Erstelle die Tabelle\r\ntable = pd.DataFrame(data)\r\ntable.set_index(\"\", inplace=True)\r\n\r\n# Erstellen und Anzeigen der Tabelle als Grafik\r\nfig, ax = plt.subplots(figsize=(8, 4))\r\nax.axis('tight')\r\nax.axis('off')\r\ntable_display = ax.table(cellText=table.values, colLabels=table.columns, rowLabels=table.index, loc='center', cellLoc='center')\r\n\r\n# Styling der Tabelle\r\ntable_display.auto_set_font_size(False)\r\ntable_display.set_fontsize(12)\r\ntable_display.scale(1.2, 1.2)\r\n\r\nplt.title(\"Vierfeldertafel f\u00fcr den Satz von Bayes\")\r\nplt.show()\r\n\r\n<\/pre>\n<p>Alles mit der coolen <a href=\"https:\/\/matplotlib.org\/stable\/users\/explain\/quick_start.html\" target=\"_blank\">matplotlib<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der Satz von Bayes ist ein grundlegendes Theorem in der Wahrscheinlichkeitsrechnung, das den Zusammenhang zwischen bedingten Wahrscheinlichkeiten beschreibt. Der Satz von Bayes ist ein spannendes Werkzeug aus der Welt der Mathematik, das uns hilft, Wahrscheinlichkeiten zu verstehen und zu berechnen. Er wird in vielen Bereichen angewendet, von der Medizin \u00fcber K\u00fcnstliche Intelligenz bis hin zu &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=22147\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eWahrscheinlichkeitsrechnung mit dem Satz von Bayes nicht nur f\u00fcr Versicherungen und Medizin\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[220,3897,79,4023,2713],"tags":[6061,612,2178,6060,6059,2340,5064,170,6057,581,6058],"class_list":["post-22147","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-java-programmierung","category-programmierung","category-python","category-statistik","tag-baumdiagramm","tag-diagramm","tag-java","tag-matplotlib","tag-programmiern","tag-python","tag-python3","tag-rechnen","tag-satz-von-bayes","tag-statistik","tag-wahrscheinlichkeit"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/22147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=22147"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/22147\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=22147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=22147"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=22147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}