{"id":22178,"date":"2024-11-24T06:04:22","date_gmt":"2024-11-24T05:04:22","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=22178"},"modified":"2024-11-23T20:47:14","modified_gmt":"2024-11-23T19:47:14","slug":"standardabweichung","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=22178","title":{"rendered":"Wahrscheinlichkeit, Standardabweichung, Varianz und Erwartungswert mit Java und Python Baumdiagramm"},"content":{"rendered":"<p>Wir wollen mal den Erwartungswert die Varianz und die Standardabweichung bei diesen Werten 10 Euro mit 0,25 und -5 Euro mit 0,75 berechnen und mit einem Baumdiagramm darstellen. Die Berechnung soll auch in einem Java Programm mit einfacher GUI enden. <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/bewegte-wuerfel-glass.gif\" alt=\"\" width=\"512\" height=\"288\" class=\"aligncenter size-full wp-image-22186\" \/><\/p>\n<p>Also los, gegeben ist:<!--more--><\/p>\n<p>Wert X1 = 10\u2009EuroX1 \u200b= 10Euro mit Wahrscheinlichkeit P(X1\u200b)=0,25<br \/>\nWert X2 = \u22125\u2009EuroX2\u200b = \u22125Euro mit Wahrscheinlichkeit P(X2\u200b)=0,75<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.13.27.png\" alt=\"\" width=\"1278\" height=\"2012\" class=\"aligncenter size-full wp-image-22179\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.13.27.png 1278w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.13.27-191x300.png 191w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.13.27-650x1024.png 650w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.13.27-768x1209.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.13.27-976x1536.png 976w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>Ergebnisse:<\/p>\n<p>    Erwartungswert: \u22121,25\u2009Euro<br \/>\n    Varianz: 42,1875\u2009Euro 2<br \/>\n    Standardabweichung: 6,494\u2009Euro<\/p>\n<p>Der <strong>Erwartungswert<\/strong>: Gibt den durchschnittlichen Wert an, den man erwarten kann. Der gewichtete Mittelwert aller m\u00f6glichen Werte, basierend auf ihren Wahrscheinlichkeiten.<\/p>\n<p>Die <strong>Varianz<\/strong>: Misst die Streuung der Werte um den Erwartungswert. Der gewichtete Mittelwert der quadrierten Abweichungen der Werte vom Erwartungswert.<\/p>\n<p>Die <strong>Standardabweichung<\/strong>: Zeigt die durchschnittliche Abweichung der Werte vom Erwartungswert. Die Quadratwurzel der Varianz, gibt die Streuung der Werte in derselben Einheit wie die Werte.<\/p>\n<p>Mit diesem Java Programm k\u00f6nnen die Werte berechnet und dargestellt werde.<\/p>\n<pre class=\"minimize:true lang:default decode:true \" >package de.wenzlaff.mathe;\r\n\r\nimport java.awt.BorderLayout;\r\nimport java.awt.Color;\r\nimport java.awt.FlowLayout;\r\nimport java.awt.Graphics;\r\nimport java.awt.Graphics2D;\r\nimport java.awt.event.ActionEvent;\r\nimport java.awt.event.ActionListener;\r\n\r\nimport javax.swing.BoxLayout;\r\nimport javax.swing.JButton;\r\nimport javax.swing.JFrame;\r\nimport javax.swing.JLabel;\r\nimport javax.swing.JOptionPane;\r\nimport javax.swing.JPanel;\r\nimport javax.swing.JTextField;\r\nimport javax.swing.SwingUtilities;\r\n\r\n\/**\r\n * Berechne den Erwartungswert die Varinaz und die Standardabweichung bei diesen\r\n * Werten 10 Euro mit 0,25 und -5 Euro mit 0,75 mit kleiner GUI.\r\n * \r\n * @author Thomas Wenzlaff\r\n *\/\r\npublic class Standardabweichung extends JFrame {\r\n\r\n\tprivate static final long serialVersionUID = 1L;\r\n\r\n\tprivate JTextField[] valueFields = new JTextField[2];\r\n\tprivate JTextField[] probabilityFields = new JTextField[2];\r\n\tprivate double[] values = { 10, -5 };\r\n\tprivate double[] probabilities = { 0.25, 0.75 };\r\n\tprivate JPanel dataPanel;\r\n\r\n\tpublic Standardabweichung() {\r\n\t\tsetTitle(\"Wahrscheinlichkeitsverteilung\");\r\n\t\tsetSize(800, 600);\r\n\t\tsetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r\n\t\tsetLayout(new BorderLayout());\r\n\r\n\t\t\/\/ Eingabebereich\r\n\t\tJPanel inputPanel = createInputPanel();\r\n\t\tadd(inputPanel, BorderLayout.NORTH);\r\n\r\n\t\t\/\/ Datenvisualisierung\r\n\t\tdataPanel = new DataPanel();\r\n\t\tadd(dataPanel, BorderLayout.CENTER);\r\n\t}\r\n\r\n\tprivate JPanel createInputPanel() {\r\n\t\tJPanel inputPanel = new JPanel();\r\n\t\tinputPanel.setLayout(new BoxLayout(inputPanel, BoxLayout.Y_AXIS));\r\n\r\n\t\t\/\/ Eingabefelder f\u00fcr erste Wert-Wahrscheinlichkeit Kombination\r\n\t\tinputPanel.add(createLabeledField(\"Wert 1:\", valueFields[0] = new JTextField(String.valueOf(values[0]))));\r\n\t\tinputPanel.add(createLabeledField(\"Wahrscheinlichkeit 1:\", probabilityFields[0] = new JTextField(String.valueOf(probabilities[0]))));\r\n\r\n\t\t\/\/ Eingabefelder f\u00fcr zweite Wert-Wahrscheinlichkeit Kombination\r\n\t\tinputPanel.add(createLabeledField(\"Wert 2:\", valueFields[1] = new JTextField(String.valueOf(values[1]))));\r\n\t\tinputPanel.add(createLabeledField(\"Wahrscheinlichkeit 2:\", probabilityFields[1] = new JTextField(String.valueOf(probabilities[1]))));\r\n\r\n\t\t\/\/ Berechnungsbutton\r\n\t\tJButton calculateButton = new JButton(\"Berechnen\");\r\n\t\tcalculateButton.addActionListener(new ActionListener() {\r\n\t\t\t@Override\r\n\t\t\tpublic void actionPerformed(ActionEvent e) {\r\n\t\t\t\tupdateValues();\r\n\t\t\t}\r\n\t\t});\r\n\t\tinputPanel.add(calculateButton);\r\n\r\n\t\treturn inputPanel;\r\n\t}\r\n\r\n\tprivate JPanel createLabeledField(String labelText, JTextField textField) {\r\n\t\tJPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));\r\n\t\tpanel.add(new JLabel(labelText));\r\n\t\tpanel.add(textField);\r\n\t\ttextField.setColumns(10);\r\n\t\treturn panel;\r\n\t}\r\n\r\n\tprivate void updateValues() {\r\n\t\ttry {\r\n\t\t\t\/\/ Werte aus Eingabefeldern auslesen\r\n\t\t\tvalues[0] = Double.parseDouble(valueFields[0].getText());\r\n\t\t\tvalues[1] = Double.parseDouble(valueFields[1].getText());\r\n\t\t\tprobabilities[0] = Double.parseDouble(probabilityFields[0].getText());\r\n\t\t\tprobabilities[1] = Double.parseDouble(probabilityFields[1].getText());\r\n\r\n\t\t\t\/\/ Neuzeichnen des Panels\r\n\t\t\tdataPanel.repaint();\r\n\t\t} catch (NumberFormatException ex) {\r\n\t\t\tJOptionPane.showMessageDialog(this, \"Bitte g\u00fcltige Zahlen eingeben!\");\r\n\t\t}\r\n\t}\r\n\r\n\tprivate class DataPanel extends JPanel {\r\n\t\t@Override\r\n\t\tprotected void paintComponent(Graphics g) {\r\n\t\t\tsuper.paintComponent(g);\r\n\t\t\tGraphics2D g2d = (Graphics2D) g;\r\n\r\n\t\t\t\/\/ Hintergrund\r\n\t\t\tg2d.setColor(Color.WHITE);\r\n\t\t\tg2d.fillRect(0, 0, getWidth(), getHeight());\r\n\r\n\t\t\t\/\/ Balkendiagramm\r\n\t\t\tint startX = 100;\r\n\t\t\tint startY = 300;\r\n\t\t\tint barWidth = 100;\r\n\t\t\tint maxHeight = 200;\r\n\r\n\t\t\tfor (int i = 0; i &lt; values.length; i++) {\r\n\t\t\t\tdouble scaledHeight = Math.abs(values[i]) * (maxHeight \/ 10.0);\r\n\r\n\t\t\t\tg2d.setColor(values[i] &gt;= 0 ? Color.GREEN : Color.RED);\r\n\t\t\t\tg2d.fillRect(startX + i * 150, startY - (int) scaledHeight, barWidth, (int) scaledHeight);\r\n\r\n\t\t\t\tg2d.setColor(Color.BLACK);\r\n\t\t\t\tg2d.drawString(String.format(\"Wert %d\", i + 1), startX + i * 150, startY + 30);\r\n\t\t\t\tg2d.drawString(String.format(\"%.2f\u20ac (%.2f%%)\", values[i], probabilities[i] * 100), startX + i * 150, startY + 50);\r\n\t\t\t}\r\n\r\n\t\t\t\/\/ Statistische Berechnungen\r\n\t\t\tdouble expectation = calculateExpectation();\r\n\t\t\tdouble variance = calculateVariance(expectation);\r\n\t\t\tdouble stdDeviation = Math.sqrt(variance);\r\n\r\n\t\t\tg2d.drawString(String.format(\"Erwartungswert: %.2f\u20ac\", expectation), 50, 50);\r\n\t\t\tg2d.drawString(String.format(\"Varianz: %.2f\", variance), 50, 70);\r\n\t\t\tg2d.drawString(String.format(\"Standardabweichung: %.2f\u20ac\", stdDeviation), 50, 90);\r\n\t\t}\r\n\r\n\t\tprivate double calculateExpectation() {\r\n\t\t\tdouble sum = 0;\r\n\t\t\tfor (int i = 0; i &lt; values.length; i++) {\r\n\t\t\t\tsum += values[i] * probabilities[i];\r\n\t\t\t}\r\n\t\t\treturn sum;\r\n\t\t}\r\n\r\n\t\tprivate double calculateVariance(double expectation) {\r\n\t\t\tdouble variance = 0;\r\n\t\t\tfor (int i = 0; i &lt; values.length; i++) {\r\n\t\t\t\tvariance += Math.pow(values[i] - expectation, 2) * probabilities[i];\r\n\t\t\t}\r\n\t\t\treturn variance;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\tSwingUtilities.invokeLater(() -&gt; {\r\n\t\t\tnew Standardabweichung().setVisible(true);\r\n\t\t});\r\n\t}\r\n}\r\n<\/pre>\n<p>Es kann auch hier auf <a href=\"https:\/\/gitlab.com\/IT-Berater\/twmathe\/-\/blob\/main\/src\/main\/java\/de\/wenzlaff\/mathe\/Standardabweichung.java?ref_type=heads\" target=\"_blank\">Gitlab<\/a> geladen werden.<\/p>\n<p>Bekommen wir dieses Ergebnis:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.16.38.png\" alt=\"\" width=\"1582\" height=\"1194\" class=\"aligncenter size-full wp-image-22180\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.16.38.png 1582w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.16.38-300x226.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.16.38-1024x773.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.16.38-768x580.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.16.38-1536x1159.png 1536w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>Dann noch eben ein Baumdiagramm f\u00fcr das Beispiel:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.26.55.png\" alt=\"\" width=\"1892\" height=\"1308\" class=\"aligncenter size-full wp-image-22184\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.26.55.png 1892w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.26.55-300x207.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.26.55-1024x708.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.26.55-768x531.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/11\/wenzlaff.de-2024-11-23-um-15.26.55-1536x1062.png 1536w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>Hier der Python Code dazu:<\/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 matplotlib.pyplot as plt\r\nimport networkx as nx\r\nimport matplotlib.pyplot as plt\r\nimport networkx as nx\r\n\r\n# Daten f\u00fcr das Baumdiagramm\r\nedges = [\r\n    (\"Start\", \"10 Euro (0.25)\"),\r\n    (\"Start\", \"-5 Euro (0.75)\"),\r\n]\r\n\r\n# Graphen initialisieren\r\nG = nx.DiGraph()\r\nG.add_edges_from(edges)\r\n\r\n# Positionen der Knoten f\u00fcr Layout\r\npos = {\r\n    \"Start\": (0, 1),\r\n    \"10 Euro (0.25)\": (-1, 0),\r\n    \"-5 Euro (0.75)\": (1, 0),\r\n}\r\n\r\n# Plot erstellen\r\nplt.figure(figsize=(8, 6))\r\nnx.draw(G, pos, with_labels=True, node_size=3000, node_color=\"lightblue\", font_size=10, font_weight=\"bold\", arrows=False)\r\n\r\n# Wahrscheinlichkeiten hinzuf\u00fcgen\r\nnx.draw_networkx_edge_labels(\r\n    G, pos,\r\n    edge_labels={\r\n        (\"Start\", \"10 Euro (0.25)\"): \"0.25\",\r\n        (\"Start\", \"-5 Euro (0.75)\"): \"0.75\",\r\n    },\r\n    font_size=10\r\n)\r\n\r\n# Diagramm anzeigen\r\nplt.title(\"Baumdiagramm f\u00fcr Erwartungswert, Varianz und Standardabweichung\", fontsize=12)\r\nplt.axis(\"off\")\r\nplt.show()<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Wir wollen mal den Erwartungswert die Varianz und die Standardabweichung bei diesen Werten 10 Euro mit 0,25 und -5 Euro mit 0,75 berechnen und mit einem Baumdiagramm darstellen. Die Berechnung soll auch in einem Java Programm mit einfacher GUI enden. Also los, gegeben ist:<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,2713],"tags":[6061,839,2178,5850,2340,6068,6070,6069,6058],"class_list":["post-22178","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-statistik","tag-baumdiagramm","tag-berechnung","tag-java","tag-mathe","tag-python","tag-standardabweichung","tag-varianz","tag-varianz-und-erwartungswert","tag-wahrscheinlichkeit"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/22178","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=22178"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/22178\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=22178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=22178"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=22178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}