From 0687f47226febdfef95b6c3a2fbf5db98b36355c Mon Sep 17 00:00:00 2001 From: DBras Date: Wed, 20 May 2026 17:11:53 +0200 Subject: [PATCH] patches to improve code output --- 2x2-tabel.ipynb | 56 +++++++++++-------- Case-Kontrol.ipynb | 42 +++++++++++++- En Numerisk.ipynb | 10 ++-- To Binære.ipynb | 134 +++++++++++++++++++++------------------------ To Numeriske.ipynb | 70 ++++++++++++++--------- 5 files changed, 186 insertions(+), 126 deletions(-) diff --git a/2x2-tabel.ipynb b/2x2-tabel.ipynb index a59b058..e1a84d4 100644 --- a/2x2-tabel.ipynb +++ b/2x2-tabel.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "bac57c6e-48a0-4414-bf65-ed4ff751aa87", "metadata": {}, "outputs": [], @@ -91,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 9, "id": "af36924c-e2e7-46cf-9bde-5a94b9d427e3", "metadata": {}, "outputs": [ @@ -107,11 +107,13 @@ "| Test negativ | 20 | 3142 | 3162 |\n", "| I alt | 137 | 3938 | **4075** |\n", "\n", - "Sensitivitet $= 85.40%$\\%\n", + "Sensitivitet = 85.40%\n", "\n", - "Specificitet $= 79.79%$\\%\n", + "Specificitet = 79.79%\n", "\n", - "\n" + "For personer, der er syge, vil testen altså 85.40% af tiden vise positiv.\n", + "\n", + "Ligeledes vil testen for personer, der ikke er syge, vise negativ 79.79% af tiden.\n" ], "text/plain": [ "" @@ -150,11 +152,13 @@ "| Test negativ | {falsk_negative} | {sandt_negative} | {sum_negative} |\n", "| I alt | {sum_syge} | {sum_ikke_syge} | **{sum_positive + sum_negative}** |\n", "\n", - "Sensitivitet $= {sensitivitet:.2%}$\\%\n", + "Sensitivitet = {sensitivitet:.2%}\n", "\n", - "Specificitet $= {specificitet:.2%}$\\%\n", + "Specificitet = {specificitet:.2%}\n", "\n", + "For personer, der er syge, vil testen altså {sensitivitet:.2%} af tiden vise positiv.\n", "\n", + "Ligeledes vil testen for personer, der ikke er syge, vise negativ {specificitet:.2%} af tiden.\n", "\"\"\"\n", "))" ] @@ -179,7 +183,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 11, "id": "0b81b6b9-268a-4338-bff9-d5a7c1636a67", "metadata": {}, "outputs": [ @@ -187,16 +191,20 @@ "data": { "text/markdown": [ "\n", - "$$\n", + "$\n", "PPV = \\frac{sensitivitet \\cdot prævalens}{sensitivitet \\cdot prævalens + (1-specificitet) \\cdot (1-prævalens)}\n", - "$$\n", - "$$\n", + "$\n", + "\n", + "$\n", "= \\frac{0.854 \\cdot 0.05}{0.854 \\cdot 0.05 + (1-0.798) \\cdot (1-0.05)}\n", - "$$\n", - "$$\n", + "$\n", + "\n", + "$\n", "= 18.20%\n", "\\%\n", - "$$\n" + "$\n", + "\n", + "Altså vil der være en sandsynlighed på 18.20% for, at en person faktisk er syg, hvis testen er positiv.\n" ], "text/plain": [ "" @@ -215,16 +223,20 @@ "\n", "display(Markdown(\n", " rf\"\"\"\n", - "$$\n", + "$\n", "PPV = \\frac{{sensitivitet \\cdot prævalens}}{{sensitivitet \\cdot prævalens + (1-specificitet) \\cdot (1-prævalens)}}\n", - "$$\n", - "$$\n", + "$\n", + "\n", + "$\n", "= \\frac{{{sensitivitet} \\cdot {prævalens}}}{{{sensitivitet} \\cdot {prævalens} + (1-{specificitet}) \\cdot (1-{prævalens})}}\n", - "$$\n", - "$$\n", + "$\n", + "\n", + "$\n", "= {ppv:.2%}\n", "\\%\n", - "$$\n", + "$\n", + "\n", + "Altså vil der være en sandsynlighed på {ppv:.2%} for, at en person faktisk er syg, hvis testen er positiv.\n", "\"\"\"\n", "))" ] @@ -240,7 +252,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "base", "language": "python", "name": "python3" }, @@ -254,7 +266,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.5" + "version": "3.13.9" } }, "nbformat": 4, diff --git a/Case-Kontrol.ipynb b/Case-Kontrol.ipynb index c8d795f..e3267c3 100644 --- a/Case-Kontrol.ipynb +++ b/Case-Kontrol.ipynb @@ -98,13 +98,34 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 9, "id": "9ef67735", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ + "\n", + "### 2x2-tabel\n", + "\n", + "| | blodprop | Ikke blodprop | I alt |\n", + "| :-------------- | :----------------------------------: | :-----------------------------------: | ----------------------------------------: |\n", + "| Eksponeret | 26 | 10 | 36 |\n", + "| Ikke eksponeret | 32 | 106 | 138 |\n", + "| I alt | 58 | 116 | **174** |\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/markdown": [ + "\n", + "### Hyppigheds- og associationsmål\n", "\n", "$odds_{blodprop} = \\frac{26}{32} = 0.8125$\n", "\n", @@ -137,8 +158,27 @@ "odds_kontrol = antal_raske_eksponerede / antal_raske_ikke_eksponerede\n", "oddsratio = odds_syge / odds_kontrol\n", "\n", + "sum_udfald = antal_syge_eksponerede + antal_syge_ikke_eksponerede\n", + "sum_ikke_udfald = antal_raske_eksponerede + antal_raske_ikke_eksponerede\n", + "sum_eksponerede = antal_syge_eksponerede + antal_raske_eksponerede\n", + "sum_ikke_eksponerede = antal_syge_ikke_eksponerede + antal_raske_ikke_eksponerede\n", + "\n", "display(Markdown(\n", " rf\"\"\"\n", + "### 2x2-tabel\n", + " \n", + "| | {udfald} | Ikke {udfald} | I alt |\n", + "| :-------------- | :----------------------------------: | :-----------------------------------: | ----------------------------------------: |\n", + "| Eksponeret | {antal_syge_eksponerede} | {antal_raske_eksponerede} | {sum_eksponerede} |\n", + "| Ikke eksponeret | {antal_syge_ikke_eksponerede} | {antal_raske_ikke_eksponerede} | {sum_ikke_eksponerede} |\n", + "| I alt | {sum_udfald} | {sum_ikke_udfald} | **{sum_udfald + sum_ikke_udfald}** |\n", + "\"\"\"\n", + "))\n", + "\n", + "display(Markdown(\n", + " rf\"\"\"\n", + "### Hyppigheds- og associationsmål\n", + "\n", "$odds_{{{udfald}}} = \\frac{{{antal_syge_eksponerede}}}{{{antal_syge_ikke_eksponerede}}} = {odds_syge:.4f}$\n", "\n", "$odds_{{kontrol}} = \\frac{{{antal_raske_eksponerede}}}{{{antal_raske_ikke_eksponerede}}} = {odds_kontrol:.4f}$\n", diff --git a/En Numerisk.ipynb b/En Numerisk.ipynb index 8bd0831..a83d77a 100644 --- a/En Numerisk.ipynb +++ b/En Numerisk.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "f0d18716", "metadata": {}, "outputs": [], @@ -129,7 +129,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 4, "id": "1e61db8b", "metadata": {}, "outputs": [], @@ -186,7 +186,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 5, "id": "e7d81100", "metadata": {}, "outputs": [ @@ -194,7 +194,7 @@ "data": { "text/markdown": [ "\n", - "95%-CI\n", + "95%-CI med eksakt formel:\n", "\n", "$=\\left[\\bar{x} \\pm t' \\cdot se\\right]$\n", "\n", @@ -220,7 +220,7 @@ "t_se = t_value(0.025, n-1) * standard_error\n", "display(Markdown(\n", " rf\"\"\"\n", - "95%-CI\n", + "95%-CI med eksakt formel:\n", "\n", "$=\\left[\\bar{{x}} \\pm t' \\cdot se\\right]$\n", "\n", diff --git a/To Binære.ipynb b/To Binære.ipynb index 1c4518d..2e21efe 100644 --- a/To Binære.ipynb +++ b/To Binære.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "42259d82", "metadata": {}, "outputs": [], @@ -47,39 +47,27 @@ }, { "cell_type": "markdown", - "id": "82a22acc", + "id": "3ef266dc", "metadata": {}, "source": [ - "# Hyppigheds- og associationsmål" + "# $\\Chi^2$-test\n", + "\n", + "| | Kolonne 1| Kolonne 2 |\n", + "|-|---------|---------|\n", + "|Række 1| R1 K1| R1 K2|\n", + "|Række 2| R2 K1| R2 K2|" ] }, { "cell_type": "code", "execution_count": null, - "id": "9920c0f3", - "metadata": {}, - "outputs": [], - "source": [ - "# Odds risiko\n", - "# Relativ risiko\n", - "# Risiko differens" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "d8e8f8ea", + "id": "7c426592", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ - "\n", - "Prævalens (Høj skærmtid) $= \\frac{210}{460} = 0.4565 \\approx 45.65%$ \\%\n", - "\n", - "Prævalens (Lav skærmtid) $= \\frac{90}{360} = 0.2500 \\approx 25.00%$ \\%\n", - "\n", - "PPR $= \\frac{0.4565}{0.2500} = 1.8261$\n" + "$H_0$: $\\pi_1 = \\pi_0$, altså ingen sammenhæng mellem rækker og søjler, hvilket vil sige ingen sammenhæng mellem eksponering og udfald." ], "text/plain": [ "" @@ -87,44 +75,7 @@ }, "metadata": {}, "output_type": "display_data" - } - ], - "source": [ - "kategorier = ['Høj skærmtid', 'Lav skærmtid']\n", - "data = [[210, 460],\n", - " [90, 360]]\n", - "\n", - "\n", - "\n", - "####################################\n", - "prævalens1 = data[0][0] / data[0][1]\n", - "prævalens2 = data[1][0] / data[1][1]\n", - "\n", - "display(Markdown(\n", - " rf\"\"\"\n", - "Prævalens ({kategorier[0]}) $= \\frac{{{data[0][0]}}}{{{data[0][1]}}} = {prævalens1:.4f} \\approx {prævalens1:.2%}$ \\%\n", - "\n", - "Prævalens ({kategorier[1]}) $= \\frac{{{data[1][0]}}}{{{data[1][1]}}} = {prævalens2:.4f} \\approx {prævalens2:.2%}$ \\%\n", - "\n", - "PPR $= \\frac{{{prævalens1:.4f}}}{{{prævalens2:.4f}}} = {prævalens1 / prævalens2:.4f}$\n", - "\"\"\"\n", - "))" - ] - }, - { - "cell_type": "markdown", - "id": "3ef266dc", - "metadata": {}, - "source": [ - "# $\\Chi^2$-test" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "7c426592", - "metadata": {}, - "outputs": [ + }, { "data": { "text/markdown": [ @@ -187,11 +138,26 @@ "data": { "text/markdown": [ "\n", - "$\\Chi^2$-værdi: 36.24\n", + "Frihedsgrader: 1\n", "\n", - "$p$-værdi: 1.7e-09\n", + "Udregnet ved brug af Python-biblioteket `scipy.stats.chi2_contingency`:\n", "\n", - "Frihedsgrader: 1\n" + "$\\Chi^2$-værdi/teststørrelse: 36.24\n", + "\n", + "$p$-værdi: 1.7e-09 $\\ll 0.05$\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/markdown": [ + "\n", + "Da $p$ $\\ll 0.05$, kan nulhypotesen $\\pi_1 = \\pi_0$ forkastes. Der er altså signifikant sammenhæng mellem udfald og eksponering.\n" ], "text/plain": [ "" @@ -202,16 +168,26 @@ } ], "source": [ - "rækker = ['Høj skærmtid', 'Lav skærmtid']\n", "kolonner = ['Hovedpine', 'Ingen hovedpine']\n", - "data = [[210, 250], \n", - " [90, 270]]\n", + "rækker = ['Høj skærmtid',\n", + " 'Lav skærmtid']\n", + "data = [[210, 250], # R1 K1 , R1 K2\n", + " [90, 270]] # R2 K1 , R2 K2\n", "\n", "\n", "\n", "############################################\n", "stat, p, dof, expected = chi2_contingency(data)\n", + "p_threshold = 0.05\n", + "match p:\n", + " case p if p >= p_threshold:\n", + " p_text = f'$\\ge {p_threshold}$'\n", + " case p if p < p_threshold/100:\n", + " p_text = f'$\\ll {p_threshold}$'\n", + " case _:\n", + " p_text = f'$\\lt {p_threshold}$'\n", "\n", + "display(Markdown(rf\"$H_0$: $\\pi_1 = \\pi_0$, altså ingen sammenhæng mellem rækker og søjler, hvilket vil sige ingen sammenhæng mellem eksponering og udfald.\"))\n", "display(Markdown('### Observeret:'))\n", "_display_table(data, rækker, kolonner)\n", "display(Markdown('### Forventet:'))\n", @@ -219,13 +195,29 @@ "\n", "display(Markdown(\n", " rf\"\"\"\n", - "$\\Chi^2$-værdi: {stat:.2f}\n", - "\n", - "$p$-værdi: {p:.2}\n", - "\n", "Frihedsgrader: {dof}\n", + "\n", + "Udregnet ved brug af Python-biblioteket `scipy.stats.chi2_contingency`:\n", + "\n", + "$\\Chi^2$-værdi (teststørrelse): {stat:.2f}\n", + "\n", + "$p$-værdi: {p:.2} {p_text}\n", "\"\"\"\n", - "))\n" + "))\n", + "\n", + "if p < p_threshold:\n", + " display(Markdown(\n", + " rf\"\"\"\n", + "Da $p$ {p_text}, kan nulhypotesen $\\pi_1 = \\pi_0$ forkastes. Der er altså signifikant sammenhæng mellem udfald og eksponering.\n", + "\"\"\"\n", + " ))\n", + "\n", + "else:\n", + " display(Markdown(\n", + " rf\"\"\"\n", + "Da $p$ {p_text}, kan nulhypotesen $\\pi_1 = \\pi_0$ ikke forkastes. Altså kan uafhængighed mellem udfald og eksponering ikke afvises.\n", + "\"\"\"\n", + " ))" ] }, { diff --git a/To Numeriske.ipynb b/To Numeriske.ipynb index 6f29308..4748b34 100644 --- a/To Numeriske.ipynb +++ b/To Numeriske.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "0ba6d314", "metadata": {}, "outputs": [], @@ -72,25 +72,27 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": null, "id": "7e734740", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ + "\n", + "Middeldifference: $\\bar{x} = \\bar{x}_1 - \\bar{x}_2 = 1.44 - 1.26 = 0.180$\n", "\n", "$H_0: \\mu_1 = \\mu_2 \\Rightarrow \\mu_1 - \\mu_2 = 0$\n", "\n", - "Test: uparret t-test med $df = 150 + 300 - 2 = 448$ frihedsgrader\n", + "Test: uparret t-test med $df = 36 + 36 - 2 = 70$ frihedsgrader\n", "\n", - "$SD_{fælles} = \\sqrt{ \\frac{ (n_1 - 1)\\cdot SD_1^2 + (n_2-1) \\cdot SD_2^2 }{ n_1 + n_2 - 2 } } = \\sqrt{ \\frac{ (150 - 1)\\cdot 1.7^2 + (300-1) \\cdot 1.8^2 }{ 150 + 300 - 2 } } = 1.7674$\n", + "$SD_{fælles} = \\sqrt{ \\frac{ (n_1 - 1)\\cdot SD_1^2 + (n_2-1) \\cdot SD_2^2 }{ n_1 + n_2 - 2 } } = \\sqrt{ \\frac{ (36 - 1)\\cdot 0.25^2 + (36-1) \\cdot 0.32^2 }{ 36 + 36 - 2 } } = 0.2871$\n", "\n", - "$se(\\bar{x_1} - \\bar{x_2}) = \\sqrt{\\frac{1}{n_1} + \\frac{1}{n_2}} \\cdot SD_{fælles} = \\sqrt{\\frac{1}{150} + \\frac{1}{300}} \\cdot 1.7674 = 0.1767$\n", + "$se(\\bar{x_1} - \\bar{x_2}) = \\sqrt{\\frac{1}{n_1} + \\frac{1}{n_2}} \\cdot SD_{fælles} = \\sqrt{\\frac{1}{36} + \\frac{1}{36}} \\cdot 0.2871 = 0.0677$\n", "\n", - "$t(x) = \\frac{\\bar{x_1} - \\bar{x_2}}{se(\\bar{x_1} - \\bar{x_2})} = \\frac{21.9 - 21.6}{0.1767} = 1.6974$\n", + "$t(x) = \\frac{\\bar{x_1} - \\bar{x_2}}{se(\\bar{x_1} - \\bar{x_2})} = \\frac{1.44 - 1.26}{0.0677} = 2.6596$\n", "\n", - "For en t-test med 448 frihedsgrader og et signifikansniveau på $\\alpha = 0.05$ er den kritiske værdi for $t(x) = 1.9653$.\n" + "p-værdi for $|t(x)|$ ved 70 frihedsgrader: 0.0097 $\\lt 0.05$\n" ], "text/plain": [ "" @@ -103,7 +105,7 @@ "data": { "text/markdown": [ "\n", - "Da teststørrelsen $t(x)$ er mindre end den kritiske værdi, kan nulhypotesen $H_0: \\mu_1 - \\mu_2 = 0$ ikke forkastes.\n" + "Da $p$ $\\lt 0.05$, kan nulhypotesen $H_0: \\mu_1 - \\mu_2 = 0$ forkastes. Der er altså statistisk signifikant forskel mellem middelværdierne.\n" ], "text/plain": [ "" @@ -114,13 +116,13 @@ } ], "source": [ - "middel1 = 21.9\n", - "n1 = 150\n", - "sd1 = 1.7\n", + "middel1 = 1.44\n", + "n1 = 36\n", + "sd1 = 0.25\n", "\n", - "middel2 = 21.6\n", - "n2 = 300\n", - "sd2 = 1.8\n", + "middel2 = 1.26\n", + "n2 = 36\n", + "sd2 = 0.32\n", "\n", "\n", "\n", @@ -129,10 +131,20 @@ "sd_fælles = math.sqrt(((n1-1)*sd1**2 + (n2-1)*sd2**2) / (n1 + n2 - 2))\n", "se_fælles = math.sqrt(1/n1 + 1/n2) * sd_fælles\n", "t_x = (middel1 - middel2)/(se_fælles)\n", - "crit_t = t_test.ppf(1-0.05/2, dof)\n", + "p_threshold = 0.05\n", + "p_værdi = (1 - t_test.cdf(t_x, dof))*2\n", + "match p_værdi:\n", + " case p_værdi if p_værdi >= p_threshold:\n", + " p_text = f'$\\ge {p_threshold}$'\n", + " case p_værdi if p_værdi < p_threshold/100:\n", + " p_text = f'$\\ll {p_threshold}$'\n", + " case _:\n", + " p_text = f'$\\lt {p_threshold}$'\n", "\n", "display(Markdown(\n", " rf\"\"\"\n", + "Middeldifference: $\\bar{{x}} = \\bar{{x}}_1 - \\bar{{x}}_2 = {middel1} - {middel2} = {middel1 - middel2:.3f}$\n", + "\n", "$H_0: \\mu_1 = \\mu_2 \\Rightarrow \\mu_1 - \\mu_2 = 0$\n", "\n", "Test: uparret t-test med $df = {n1} + {n2} - 2 = {dof}$ frihedsgrader\n", @@ -143,20 +155,20 @@ "\n", "$t(x) = \\frac{{\\bar{{x_1}} - \\bar{{x_2}}}}{{se(\\bar{{x_1}} - \\bar{{x_2}})}} = \\frac{{{middel1} - {middel2}}}{{{se_fælles:.4f}}} = {t_x:.4f}$\n", "\n", - "For en t-test med {dof} frihedsgrader og et signifikansniveau på $\\alpha = 0.05$ er den kritiske værdi for $t(x) = {crit_t:.4f}$.\n", + "p-værdi for $|t(x)|$ ved {dof} frihedsgrader: {p_værdi:.4f} {p_text} (fundet ved brug af Python-biblioteket `scipy.stats.t`)\n", "\"\"\"\n", "))\n", "\n", - "if t_x > crit_t:\n", + "if p_værdi < p_threshold:\n", " display(Markdown(\n", " rf\"\"\"\n", - "Da teststørrelsen $t(x)$ er større end den kritiske værdi, kan nulhypotesen $H_0: \\mu_1 - \\mu_2 = 0$ forkastes.\n", + "Da $p$ {p_text}, kan nulhypotesen $H_0: \\mu_1 - \\mu_2 = 0$ forkastes. Der er altså statistisk signifikant forskel mellem middelværdierne.\n", "\"\"\"\n", " ))\n", "else:\n", " display(Markdown(\n", " rf\"\"\"\n", - "Da teststørrelsen $t(x)$ er mindre end den kritiske værdi, kan nulhypotesen $H_0: \\mu_1 - \\mu_2 = 0$ ikke forkastes.\n", + "Da $p$ {p_text}, kan nulhypotesen $H_0: \\mu_1 - \\mu_2 = 0$ ikke forkastes. Der kan altså ikke siges at være statistisk signifikant forskel mellem middelværdierne.\n", "\"\"\"\n", " ))" ] @@ -195,7 +207,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 20, "id": "bdc8cd82", "metadata": {}, "outputs": [ @@ -203,19 +215,21 @@ "data": { "text/markdown": [ "\n", - "$\\bar{x}_1 = 21.9$\n", + "$\\bar{x}_1 = 1.44$\n", "\n", - "$\\bar{x}_2 = 21.6$\n", + "$\\bar{x}_2 = 1.26$\n", "\n", - "$SD_{fælles} = \\sqrt{ \\frac{ (n_1 - 1)\\cdot SD_1^2 + (n_2-1) \\cdot SD_2^2 }{ n_1 + n_2 - 2 } } = \\sqrt{ \\frac{ (150 - 1)\\cdot 1.7^2 + (300-1) \\cdot 1.8^2 }{ 150 + 300 - 2 } } = 1.7674$\n", + "Eksakt formel:\n", "\n", - "$se(\\bar{x_1} - \\bar{x_2}) = \\sqrt{\\frac{1}{n_1} + \\frac{1}{n_2}} \\cdot SD_{fælles} = \\sqrt{\\frac{1}{150} + \\frac{1}{300}} \\cdot 1.7674 = 0.1767$\n", + "$SD_{fælles} = \\sqrt{ \\frac{ (n_1 - 1)\\cdot SD_1^2 + (n_2-1) \\cdot SD_2^2 }{ n_1 + n_2 - 2 } } = \\sqrt{ \\frac{ (36 - 1)\\cdot 0.25^2 + (36-1) \\cdot 0.32^2 }{ 36 + 36 - 2 } } = 0.2871$\n", + "\n", + "$se(\\bar{x_1} - \\bar{x_2}) = \\sqrt{\\frac{1}{n_1} + \\frac{1}{n_2}} \\cdot SD_{fælles} = \\sqrt{\\frac{1}{36} + \\frac{1}{36}} \\cdot 0.2871 = 0.0677$\n", "\n", "$95\\% CI(\\mu_1 - \\mu_2) = \\bar{x}_1 - \\bar{x}_2 \\pm t' \\cdot se(\\bar{x}_1 - \\bar{x}_2)$\n", "\n", - "$= 21.9 - 21.6 \\pm 1.965 \\cdot 0.177$\n", + "$= 1.44 - 1.26 \\pm 1.994 \\cdot 0.068$\n", "\n", - "$= 0.300 \\pm 0.347 = \\left[-0.047\\ ;\\ 0.647\\right]$\n" + "$= 0.180 \\pm 0.135 = \\left[0.045\\ ;\\ 0.315\\right]$\n" ], "text/plain": [ "" @@ -228,7 +242,7 @@ "data": { "text/markdown": [ "\n", - "Da $0$ er inkluderet i $95\\%CI$, kan der ikke siges at være signifikant forskel på middelværdierne.\n" + "Da $0$ ikke er inkluderet i $95\\%CI$, kan der siges at være signifikant forskel på middelværdierne.\n" ], "text/plain": [ "" @@ -252,6 +266,8 @@ "\n", "$\\bar{{x}}_2 = {middel2}$\n", "\n", + "Eksakt formel:\n", + "\n", "$SD_{{fælles}} = \\sqrt{{ \\frac{{ (n_1 - 1)\\cdot SD_1^2 + (n_2-1) \\cdot SD_2^2 }}{{ n_1 + n_2 - 2 }} }} = \\sqrt{{ \\frac{{ ({n1} - 1)\\cdot {sd1}^2 + ({n2}-1) \\cdot {sd2}^2 }}{{ {n1} + {n2} - 2 }} }} = {sd_fælles:.4f}$\n", "\n", "$se(\\bar{{x_1}} - \\bar{{x_2}}) = \\sqrt{{\\frac{{1}}{{n_1}} + \\frac{{1}}{{n_2}}}} \\cdot SD_{{fælles}} = \\sqrt{{\\frac{{1}}{{{n1}}} + \\frac{{1}}{{{n2}}}}} \\cdot {sd_fælles:.4f} = {se_fælles:.4f}$\n",