fikset t-udregning; label på hyppighedsmål; ppv og npv-udregning

This commit is contained in:
DBras 2026-05-21 12:46:20 +02:00
parent 0687f47226
commit cf39afa769
5 changed files with 93 additions and 52 deletions

View File

@ -91,7 +91,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 9, "execution_count": 19,
"id": "af36924c-e2e7-46cf-9bde-5a94b9d427e3", "id": "af36924c-e2e7-46cf-9bde-5a94b9d427e3",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -107,13 +107,23 @@
"| Test negativ | 20 | 3142 | 3162 |\n", "| Test negativ | 20 | 3142 | 3162 |\n",
"| I alt | 137 | 3938 | **4075** |\n", "| I alt | 137 | 3938 | **4075** |\n",
"\n", "\n",
"<span style='color:red'>Sensitivitet = 85.40%</span>\n", "<span style='color:red'>Sensitivitet =</span> $\\frac{sandt\\ positive}{sandt\\ positive + falsk\\ negative} = \\frac{117}{117 + 20} \\approx$ 85.40%\n",
"\n", "\n",
"<span style='color:blue'>Specificitet = 79.79%</span>\n", "<span style='color:blue'>Specificitet =</span> $\\frac{sandt\\ negative}{sandt\\ negative + falsk\\ positive} = \\frac{3142}{3142 + 796} \\approx$ 79.79%\n",
"\n", "\n",
"For personer, der er syge, vil testen altså 85.40% af tiden vise positiv.\n", "For personer, der er syge, vil testen altså 85.40% af tiden vise positiv.\n",
"\n", "\n",
"Ligeledes vil testen for personer, der ikke er syge, vise negativ 79.79% af tiden.\n" "Ligeledes vil testen for personer, der ikke er syge, vise negativ 79.79% af tiden.\n",
"\n",
"### PPV og NPV\n",
"\n",
"<span style='color:red'>PPV =</span> $\\frac{sandt\\ positive}{sandt\\ positive + falsk\\ positive} = \\frac{117}{117 + 796} \\approx$ 12.81%\n",
"\n",
"<span style='color:blue'>NPV =</span> $\\frac{sandt\\ negative}{sandt\\ negative + falsk\\ negative} = \\frac{3142}{3142 + 20} \\approx$ 99.37%\n",
"\n",
"For en person, der tester positiv, vil der være en 12.81% sandsynlighed for, at de reelt er syge.\n",
"\n",
"For en person, der tester negativ, vil der være en 99.37% sandsynlighed for, at de reelt er raske.\n"
], ],
"text/plain": [ "text/plain": [
"<IPython.core.display.Markdown object>" "<IPython.core.display.Markdown object>"
@ -152,13 +162,23 @@
"| Test negativ | {falsk_negative} | {sandt_negative} | {sum_negative} |\n", "| Test negativ | {falsk_negative} | {sandt_negative} | {sum_negative} |\n",
"| I alt | {sum_syge} | {sum_ikke_syge} | **{sum_positive + sum_negative}** |\n", "| I alt | {sum_syge} | {sum_ikke_syge} | **{sum_positive + sum_negative}** |\n",
"\n", "\n",
"<span style='color:red'>Sensitivitet = {sensitivitet:.2%}</span>\n", "<span style='color:red'>Sensitivitet =</span> $\\frac{{sandt\\ positive}}{{sandt\\ positive + falsk\\ negative}} = \\frac{{{sandt_positive}}}{{{sandt_positive} + {falsk_negative}}} \\approx$ {sensitivitet:.2%}\n",
"\n", "\n",
"<span style='color:blue'>Specificitet = {specificitet:.2%}</span>\n", "<span style='color:blue'>Specificitet =</span> $\\frac{{sandt\\ negative}}{{sandt\\ negative + falsk\\ positive}} = \\frac{{{sandt_negative}}}{{{sandt_negative} + {falsk_positive}}} \\approx$ {specificitet:.2%}\n",
"\n", "\n",
"For personer, der er syge, vil testen altså {sensitivitet:.2%} af tiden vise positiv.\n", "For personer, der er syge, vil testen altså {sensitivitet:.2%} af tiden vise positiv.\n",
"\n", "\n",
"Ligeledes vil testen for personer, der ikke er syge, vise negativ {specificitet:.2%} af tiden.\n", "Ligeledes vil testen for personer, der ikke er syge, vise negativ {specificitet:.2%} af tiden.\n",
"\n",
"### PPV og NPV\n",
"\n",
"<span style='color:red'>PPV =</span> $\\frac{{sandt\\ positive}}{{sandt\\ positive + falsk\\ positive}} = \\frac{{{sandt_positive}}}{{{sandt_positive} + {falsk_positive}}} \\approx$ {ppv:.2%}\n",
"\n",
"<span style='color:blue'>NPV =</span> $\\frac{{sandt\\ negative}}{{sandt\\ negative + falsk\\ negative}} = \\frac{{{sandt_negative}}}{{{sandt_negative} + {falsk_negative}}} \\approx$ {npv:.2%}\n",
"\n",
"For en person, der tester positiv, vil der være en {ppv:.2%} sandsynlighed for, at de reelt er syge.\n",
"\n",
"For en person, der tester negativ, vil der være en {npv:.2%} sandsynlighed for, at de reelt er raske.\n",
"\"\"\"\n", "\"\"\"\n",
"))" "))"
] ]
@ -168,7 +188,7 @@
"id": "d72087c9-96b0-4584-bae2-854068fb9de5", "id": "d72087c9-96b0-4584-bae2-854068fb9de5",
"metadata": {}, "metadata": {},
"source": [ "source": [
"## Værdier ud fra sensitivitet, specificitet og prævalens" "## PPV ud fra sensitivitet, specificitet og prævalens"
] ]
}, },
{ {

View File

@ -98,7 +98,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 9, "execution_count": null,
"id": "9ef67735", "id": "9ef67735",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -129,9 +129,9 @@
"\n", "\n",
"$odds_{blodprop} = \\frac{26}{32} = 0.8125$\n", "$odds_{blodprop} = \\frac{26}{32} = 0.8125$\n",
"\n", "\n",
"$odds_{kontrol} = \\frac{10}{106} = 0.0943$\n", "$odds_{kontroller} = \\frac{10}{106} = 0.0943$\n",
"\n", "\n",
"$OR = \\frac{odds_{blodprop}}{odds_{kontrol}} = \\frac{0.8125}{0.0943} \\approx 8.6125$\n", "$OR = \\frac{odds_{blodprop}}{odds_{kontroller}} = \\frac{0.8125}{0.0943} \\approx 8.6125$\n",
"\n", "\n",
"Der er 7.61 gange større risiko for blodprop, hvis man er eksponeret, i forhold til hvis man ikke er eksponeret.\n" "Der er 7.61 gange større risiko for blodprop, hvis man er eksponeret, i forhold til hvis man ikke er eksponeret.\n"
], ],
@ -144,7 +144,8 @@
} }
], ],
"source": [ "source": [
"udfald = 'blodprop' # Fx blodprop\n", "udfald = 'blodprop' # Fx blodprop # BEMÆRK: mellemrum forsvinder\n",
"kontrol_label = 'kontrol' # hvis mellemrum skal forblive, skal der være backslash (\\) foran, fx: kontrol_label = 'ikke\\ blodprop'\n",
"\n", "\n",
"antal_syge_eksponerede = 26\n", "antal_syge_eksponerede = 26\n",
"antal_syge_ikke_eksponerede = 32\n", "antal_syge_ikke_eksponerede = 32\n",
@ -181,9 +182,9 @@
"\n", "\n",
"$odds_{{{udfald}}} = \\frac{{{antal_syge_eksponerede}}}{{{antal_syge_ikke_eksponerede}}} = {odds_syge:.4f}$\n", "$odds_{{{udfald}}} = \\frac{{{antal_syge_eksponerede}}}{{{antal_syge_ikke_eksponerede}}} = {odds_syge:.4f}$\n",
"\n", "\n",
"$odds_{{kontrol}} = \\frac{{{antal_raske_eksponerede}}}{{{antal_raske_ikke_eksponerede}}} = {odds_kontrol:.4f}$\n", "$odds_{{{kontrol_label}}} = \\frac{{{antal_raske_eksponerede}}}{{{antal_raske_ikke_eksponerede}}} = {odds_kontrol:.4f}$\n",
"\n", "\n",
"$OR = \\frac{{odds_{{{udfald}}}}}{{odds_{{kontrol}}}} = \\frac{{{odds_syge:.4f}}}{{{odds_kontrol:.4f}}} \\approx {oddsratio:.4f}$\n", "$OR = \\frac{{odds_{{{udfald}}}}}{{odds_{{{kontrol_label}}}}} = \\frac{{{odds_syge:.4f}}}{{{odds_kontrol:.4f}}} \\approx {oddsratio:.4f}$\n",
"\n", "\n",
"Der er {oddsratio-1:.2f} gange større risiko for {udfald}, hvis man er eksponeret, i forhold til hvis man ikke er eksponeret.\n", "Der er {oddsratio-1:.2f} gange større risiko for {udfald}, hvis man er eksponeret, i forhold til hvis man ikke er eksponeret.\n",
"\"\"\"\n", "\"\"\"\n",

View File

@ -112,7 +112,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 10, "execution_count": 21,
"id": "8f9ea711", "id": "8f9ea711",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -122,13 +122,17 @@
"\n", "\n",
"$IR = \\frac{antal\\ nye\\ tilfælde}{observationstid\\ i\\ personår}$\n", "$IR = \\frac{antal\\ nye\\ tilfælde}{observationstid\\ i\\ personår}$\n",
"\n", "\n",
"$IR_{eksponerede} = \\frac{130}{6834} \\approx 0.01902 \\approx 1.90%$\\% sv.t. 19 pr. 1000 personår\n", "$IR_{eksponeret} = \\frac{130}{6834} \\approx 0.01902 \\approx 1.90%$\\% sv.t. 19 pr. 1000 personår\n",
"\n", "\n",
"$IR_{ikke\\ eksponerede} = \\frac{40}{9228} \\approx 0.00433 \\approx 0.43%$\\% sv.t. 4 pr. 1000 personår\n", "$IR_{ikke\\ eksponeret} = \\frac{40}{9228} \\approx 0.00433 \\approx 0.43%$\\% sv.t. 4 pr. 1000 personår\n",
"\n", "\n",
"$IRR = \\frac{IR_{eksponerede}}{IR_{ikke\\ eksponerede}} = \\frac{0.01902}{0.00433} \\approx 4.388$\n", "$IRR = \\frac{IR_{eksponeret}}{IR_{ikke\\ eksponeret}} = \\frac{0.01902}{0.00433} \\approx 4.388$\n",
"\n", "\n",
"$IRD = IR_{eksponerede} - IR_{ikke\\ eksponerede} = 0.01902 - 0.00433 \\approx 0.01469$ sv.t. 15 pr. 1000\n" "$IRD = IR_{eksponeret} - IR_{ikke\\ eksponeret} = 0.01902 - 0.00433 \\approx 0.01469$ sv.t. 15 pr. 1000\n",
"\n",
"Incidensraten blandt eksponerede er 3.388 gange højere end blandt ikke-eksponerede.\n",
"\n",
"For hver 1000 personår, kan 15 ekstra incidenser tilskrives eksponering.\n"
], ],
"text/plain": [ "text/plain": [
"<IPython.core.display.Markdown object>" "<IPython.core.display.Markdown object>"
@ -139,6 +143,9 @@
} }
], ],
"source": [ "source": [
"eksponeret_label = 'eksponeret' # BEMÆRK: mellemrum forsvinder\n",
"ikke_eksponeret_label = 'ikke\\ eksponeret' # hvis mellemrum skal forblive, skal der være backslash (\\) foran, fx: ikke_eksponeret_label = 'ikke\\ eksponeret'\n",
"\n",
"antal_nye_tilfælde_eksponerede = 130\n", "antal_nye_tilfælde_eksponerede = 130\n",
"observationstid_eksponerede = 6834 # Observationstid målt i personår\n", "observationstid_eksponerede = 6834 # Observationstid målt i personår\n",
"\n", "\n",
@ -156,13 +163,17 @@
" rf\"\"\"\n", " rf\"\"\"\n",
"$IR = \\frac{{antal\\ nye\\ tilfælde}}{{observationstid\\ i\\ personår}}$\n", "$IR = \\frac{{antal\\ nye\\ tilfælde}}{{observationstid\\ i\\ personår}}$\n",
"\n", "\n",
"$IR_{{eksponerede}} = \\frac{{{antal_nye_tilfælde_eksponerede}}}{{{observationstid_eksponerede}}} \\approx {ir_eksponerede:.5f} \\approx {ir_eksponerede:.2%}$\\% sv.t. {ir_eksponerede*1000:.0f} pr. 1000 personår\n", "$IR_{{{eksponeret_label}}} = \\frac{{{antal_nye_tilfælde_eksponerede}}}{{{observationstid_eksponerede}}} \\approx {ir_eksponerede:.5f} \\approx {ir_eksponerede:.2%}$\\% sv.t. {ir_eksponerede*1000:.0f} pr. 1000 personår\n",
"\n", "\n",
"$IR_{{ikke\\ eksponerede}} = \\frac{{{antal_nye_tilfælde_ikke_eksponerede}}}{{{observationstid_ikke_eksponerede}}} \\approx {ir_ikke_eksponerede:.5f} \\approx {ir_ikke_eksponerede:.2%}$\\% sv.t. {ir_ikke_eksponerede*1000:.0f} pr. 1000 personår\n", "$IR_{{{ikke_eksponeret_label}}} = \\frac{{{antal_nye_tilfælde_ikke_eksponerede}}}{{{observationstid_ikke_eksponerede}}} \\approx {ir_ikke_eksponerede:.5f} \\approx {ir_ikke_eksponerede:.2%}$\\% sv.t. {ir_ikke_eksponerede*1000:.0f} pr. 1000 personår\n",
"\n", "\n",
"$IRR = \\frac{{IR_{{eksponerede}}}}{{IR_{{ikke\\ eksponerede}}}} = \\frac{{{ir_eksponerede:.5f}}}{{{ir_ikke_eksponerede:.5f}}} \\approx {irr:.3f}$\n", "$IRR = \\frac{{IR_{{{eksponeret_label}}}}}{{IR_{{{ikke_eksponeret_label}}}}} = \\frac{{{ir_eksponerede:.5f}}}{{{ir_ikke_eksponerede:.5f}}} \\approx {irr:.3f}$\n",
"\n", "\n",
"$IRD = IR_{{eksponerede}} - IR_{{ikke\\ eksponerede}} = {ir_eksponerede:.5f} - {ir_ikke_eksponerede:.5f} \\approx {ird:.5f}$ sv.t. {ird*1000:.0f} pr. 1000\n", "$IRD = IR_{{{eksponeret_label}}} - IR_{{{ikke_eksponeret_label}}} = {ir_eksponerede:.5f} - {ir_ikke_eksponerede:.5f} \\approx {ird:.5f}$ sv.t. {ird*1000:.0f} pr. 1000\n",
"\n",
"Incidensraten blandt eksponerede er {irr-1:.3f} gange højere end blandt ikke-eksponerede.\n",
"\n",
"For hver 1000 personår, kan {ird*1000:.0f} ekstra incidenser tilskrives eksponering.\n",
"\"\"\"\n", "\"\"\"\n",
"))" "))"
] ]
@ -197,7 +208,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 14, "execution_count": 22,
"id": "96e8cc3a", "id": "96e8cc3a",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -207,15 +218,17 @@
"\n", "\n",
"$KIP = \\frac{antal\\ nye\\ tilfælde}{antal\\ personer}$\n", "$KIP = \\frac{antal\\ nye\\ tilfælde}{antal\\ personer}$\n",
"\n", "\n",
"$KIP_{eksponerede} = \\frac{130}{656} \\approx 0.19817 \\approx 19.82%$\\%\n", "$KIP_{eksponeret} = \\frac{130}{656} \\approx 0.19817 \\approx 19.82%$\\%\n",
"\n", "\n",
"$KIP_{ikke\\ eksponerede} = \\frac{40}{787} \\approx 0.05083 \\approx 5.08%$\\%\n", "$KIP_{ikke\\ eksponeret} = \\frac{40}{787} \\approx 0.05083 \\approx 5.08%$\\%\n",
"\n", "\n",
"$RR = \\frac{KIP_{eksponerede}}{KIP_{ikke\\ eksponerede}} = \\frac{0.19817}{0.05083} \\approx 3.899$\n", "$RR = \\frac{KIP_{eksponeret}}{KIP_{ikke\\ eksponeret}} = \\frac{0.19817}{0.05083} \\approx 3.899$\n",
"\n", "\n",
"$RD = KIP_{eksponerede} - KIP_{ikke\\ eksponerede} = 0.19817 - 0.05083 \\approx 0.14734$ sv.t. 147 pr. 1000\n", "$RD = KIP_{eksponeret} - KIP_{ikke\\ eksponeret} = 0.19817 - 0.05083 \\approx 0.14734$ sv.t. 147 pr. 1000\n",
"\n", "\n",
"Dette vil altså betyde 147 ekstra tilfælde pr. 1000\n" "Dette vil altså betyde 147 ekstra tilfælde pr. 1000\n",
"\n",
"Risikoen blandt eksponerede er 2.899 gange højere end blandt ikke-eksponerede.\n"
], ],
"text/plain": [ "text/plain": [
"<IPython.core.display.Markdown object>" "<IPython.core.display.Markdown object>"
@ -226,6 +239,9 @@
} }
], ],
"source": [ "source": [
"eksponeret_label = 'eksponeret' # BEMÆRK: mellemrum forsvinder\n",
"ikke_eksponeret_label = 'ikke\\ eksponeret' # hvis mellemrum skal forblive, skal der være backslash (\\) foran, fx: ikke_eksponeret_label = 'ikke\\ eksponeret'\n",
"\n",
"antal_nye_tilfælde_eksponerede = 130\n", "antal_nye_tilfælde_eksponerede = 130\n",
"antal_eksponerede = 656\n", "antal_eksponerede = 656\n",
"\n", "\n",
@ -243,15 +259,17 @@
" rf\"\"\"\n", " rf\"\"\"\n",
"$KIP = \\frac{{antal\\ nye\\ tilfælde}}{{antal\\ personer}}$\n", "$KIP = \\frac{{antal\\ nye\\ tilfælde}}{{antal\\ personer}}$\n",
"\n", "\n",
"$KIP_{{eksponerede}} = \\frac{{{antal_nye_tilfælde_eksponerede}}}{{{antal_eksponerede}}} \\approx {kip_eksponerede:.5f} \\approx {kip_eksponerede:.2%}$\\%\n", "$KIP_{{{eksponeret_label}}} = \\frac{{{antal_nye_tilfælde_eksponerede}}}{{{antal_eksponerede}}} \\approx {kip_eksponerede:.5f} \\approx {kip_eksponerede:.2%}$\\%\n",
"\n", "\n",
"$KIP_{{ikke\\ eksponerede}} = \\frac{{{antal_nye_tilfælde_ikke_eksponerede}}}{{{antal_ikke_eksponerede}}} \\approx {kip_ikke_eksponerede:.5f} \\approx {kip_ikke_eksponerede:.2%}$\\%\n", "$KIP_{{{ikke_eksponeret_label}}} = \\frac{{{antal_nye_tilfælde_ikke_eksponerede}}}{{{antal_ikke_eksponerede}}} \\approx {kip_ikke_eksponerede:.5f} \\approx {kip_ikke_eksponerede:.2%}$\\%\n",
"\n", "\n",
"$RR = \\frac{{KIP_{{eksponerede}}}}{{KIP_{{ikke\\ eksponerede}}}} = \\frac{{{kip_eksponerede:.5f}}}{{{kip_ikke_eksponerede:.5f}}} \\approx {rr:.3f}$\n", "$RR = \\frac{{KIP_{{{eksponeret_label}}}}}{{KIP_{{{ikke_eksponeret_label}}}}} = \\frac{{{kip_eksponerede:.5f}}}{{{kip_ikke_eksponerede:.5f}}} \\approx {rr:.3f}$\n",
"\n", "\n",
"$RD = KIP_{{eksponerede}} - KIP_{{ikke\\ eksponerede}} = {kip_eksponerede:.5f} - {kip_ikke_eksponerede:.5f} \\approx {rd:.5f}$ sv.t. {rd*1000:.0f} pr. 1000\n", "$RD = KIP_{{{eksponeret_label}}} - KIP_{{{ikke_eksponeret_label}}} = {kip_eksponerede:.5f} - {kip_ikke_eksponerede:.5f} \\approx {rd:.5f}$ sv.t. {rd*1000:.0f} pr. 1000\n",
"\n", "\n",
"Dette vil altså betyde {rd*1000:.0f} ekstra tilfælde pr. 1000\n", "Dette vil altså betyde {rd*1000:.0f} ekstra tilfælde pr. 1000\n",
"\n",
"Risikoen blandt eksponerede er {rr-1:.3f} gange højere end blandt ikke-eksponerede.\n",
"\"\"\"\n", "\"\"\"\n",
"))" "))"
] ]
@ -269,8 +287,6 @@
"id": "21428554", "id": "21428554",
"metadata": {}, "metadata": {},
"source": [ "source": [
"# Hyppigheds- og associationsmål\n",
"\n",
"Odds:\n", "Odds:\n",
"\n", "\n",
"$$\n", "$$\n",
@ -295,7 +311,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 13, "execution_count": 24,
"id": "cdda6f48", "id": "cdda6f48",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -320,7 +336,8 @@
} }
], ],
"source": [ "source": [
"udfald = 'blodprop' # Fx blodprop\n", "udfald = 'blodprop' # Fx blodprop # BEMÆRK: mellemrum forsvinder\n",
"kontrol_label = 'kontrol' # hvis mellemrum skal forblive, skal der være backslash (\\) foran, fx: kontrol_label = 'ikke\\ blodprop'\n",
"\n", "\n",
"antal_syge_eksponerede = 26\n", "antal_syge_eksponerede = 26\n",
"antal_syge_ikke_eksponerede = 32\n", "antal_syge_ikke_eksponerede = 32\n",
@ -338,9 +355,9 @@
" rf\"\"\"\n", " rf\"\"\"\n",
"$odds_{{{udfald}}} = \\frac{{{antal_syge_eksponerede}}}{{{antal_syge_ikke_eksponerede}}} = {odds_syge:.4f}$\n", "$odds_{{{udfald}}} = \\frac{{{antal_syge_eksponerede}}}{{{antal_syge_ikke_eksponerede}}} = {odds_syge:.4f}$\n",
"\n", "\n",
"$odds_{{kontrol}} = \\frac{{{antal_raske_eksponerede}}}{{{antal_raske_ikke_eksponerede}}} = {odds_kontrol:.4f}$\n", "$odds_{{{kontrol_label}}} = \\frac{{{antal_raske_eksponerede}}}{{{antal_raske_ikke_eksponerede}}} = {odds_kontrol:.4f}$\n",
"\n", "\n",
"$OR = \\frac{{odds_{{{udfald}}}}}{{odds_{{kontrol}}}} = \\frac{{{odds_syge:.4f}}}{{{odds_kontrol:.4f}}} \\approx {oddsratio:.4f}$\n", "$OR = \\frac{{odds_{{{udfald}}}}}{{odds_{{{kontrol_label}}}}} = \\frac{{{odds_syge:.4f}}}{{{odds_kontrol:.4f}}} \\approx {oddsratio:.4f}$\n",
"\n", "\n",
"Der er {oddsratio-1:.2f} gange større risiko for {udfald}, hvis man er eksponeret, i forhold til hvis man ikke er eksponeret.\n", "Der er {oddsratio-1:.2f} gange større risiko for {udfald}, hvis man er eksponeret, i forhold til hvis man ikke er eksponeret.\n",
"\"\"\"\n", "\"\"\"\n",

View File

@ -72,7 +72,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": 28,
"id": "7e734740", "id": "7e734740",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -84,15 +84,15 @@
"\n", "\n",
"$H_0: \\mu_1 = \\mu_2 \\Rightarrow \\mu_1 - \\mu_2 = 0$\n", "$H_0: \\mu_1 = \\mu_2 \\Rightarrow \\mu_1 - \\mu_2 = 0$\n",
"\n", "\n",
"Test: uparret t-test med $df = 36 + 36 - 2 = 70$ frihedsgrader\n", "Test: uparret t-test med $df = 36 + 36 - 2 = $**70 frihedsgrader**\n",
"\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{ (36 - 1)\\cdot 0.25^2 + (36-1) \\cdot 0.32^2 }{ 36 + 36 - 2 } } = 0.2871$\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", "\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", "$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", "\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", "$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", "\n",
"p-værdi for $|t(x)|$ ved 70 frihedsgrader: 0.0097 $\\lt 0.05$\n" "p-værdi for $|t(x)|$ ved 70 frihedsgrader: **0.0097** $\\lt 0.05$ (fundet ved brug af Python-biblioteket `scipy.stats.t`)\n"
], ],
"text/plain": [ "text/plain": [
"<IPython.core.display.Markdown object>" "<IPython.core.display.Markdown object>"
@ -130,7 +130,7 @@
"dof = n1 + n2 - 2\n", "dof = n1 + n2 - 2\n",
"sd_fælles = math.sqrt(((n1-1)*sd1**2 + (n2-1)*sd2**2) / (n1 + n2 - 2))\n", "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", "se_fælles = math.sqrt(1/n1 + 1/n2) * sd_fælles\n",
"t_x = (middel1 - middel2)/(se_fælles)\n", "t_x = (np.abs(middel1 - middel2))/(se_fælles)\n",
"p_threshold = 0.05\n", "p_threshold = 0.05\n",
"p_værdi = (1 - t_test.cdf(t_x, dof))*2\n", "p_værdi = (1 - t_test.cdf(t_x, dof))*2\n",
"match p_værdi:\n", "match p_værdi:\n",
@ -147,15 +147,15 @@
"\n", "\n",
"$H_0: \\mu_1 = \\mu_2 \\Rightarrow \\mu_1 - \\mu_2 = 0$\n", "$H_0: \\mu_1 = \\mu_2 \\Rightarrow \\mu_1 - \\mu_2 = 0$\n",
"\n", "\n",
"Test: uparret t-test med $df = {n1} + {n2} - 2 = {dof}$ frihedsgrader\n", "Test: uparret t-test med $df = {n1} + {n2} - 2 = $**{dof} frihedsgrader**\n",
"\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", "$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", "\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", "$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",
"\n", "\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", "$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", "\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", "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", "))\n",
"\n", "\n",

View File

@ -86,7 +86,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 7, "execution_count": null,
"id": "bdd4eb49", "id": "bdd4eb49",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -96,9 +96,9 @@
"\n", "\n",
"$PP_{eksponerede} = \\frac{33}{101} \\approx 32.67%$\\%\n", "$PP_{eksponerede} = \\frac{33}{101} \\approx 32.67%$\\%\n",
"\n", "\n",
"$PP_{ikke\\ eksponerede} = \\frac{19}{90} \\approx 21.11%$\\%\n", "$PP_{ikke\\ eksponeret} = \\frac{19}{90} \\approx 21.11%$\\%\n",
"\n", "\n",
"$PPR = \\frac{PP_{eksponerede}}{PP_{ikke\\ eksponerede}} = \\frac{0.3267}{0.2111} \\approx 154.77%$\\%\n", "$PPR = \\frac{PP_{eksponerede}}{PP_{ikke\\ eksponeret}} = \\frac{0.3267}{0.2111} \\approx 154.77%$\\%\n",
"\n", "\n",
"Prævalensen er 54.77% højere blandt eksponerede i forhold til ikke-eksponerede.\n" "Prævalensen er 54.77% højere blandt eksponerede i forhold til ikke-eksponerede.\n"
], ],
@ -111,6 +111,9 @@
} }
], ],
"source": [ "source": [
"eksponeret_label = 'eksponerede' # BEMÆRK: mellemrum forsvinder\n",
"ikke_eksponeret_label = 'ikke\\ eksponeret' # hvis mellemrum skal forblive, skal der være backslash (\\) foran, fx: ikke_eksponeret_label = 'ikke\\ eksponeret'\n",
"\n",
"syge_eksponerede = 33\n", "syge_eksponerede = 33\n",
"eksponerede_i_alt = 101\n", "eksponerede_i_alt = 101\n",
"\n", "\n",
@ -125,11 +128,11 @@
"\n", "\n",
"display(Markdown(\n", "display(Markdown(\n",
" rf\"\"\"\n", " rf\"\"\"\n",
"$PP_{{eksponerede}} = \\frac{{{syge_eksponerede}}}{{{eksponerede_i_alt}}} \\approx {pp_eksponerede:.2%}$\\%\n", "$PP_{{{eksponeret_label}}} = \\frac{{{syge_eksponerede}}}{{{eksponerede_i_alt}}} \\approx {pp_eksponerede:.2%}$\\%\n",
"\n", "\n",
"$PP_{{ikke\\ eksponerede}} = \\frac{{{syge_ikke_eksponerede}}}{{{ikke_eksponerede_i_alt}}} \\approx {pp_ikke_eksponerede:.2%}$\\%\n", "$PP_{{{ikke_eksponeret_label}}} = \\frac{{{syge_ikke_eksponerede}}}{{{ikke_eksponerede_i_alt}}} \\approx {pp_ikke_eksponerede:.2%}$\\%\n",
"\n", "\n",
"$PPR = \\frac{{PP_{{eksponerede}}}}{{PP_{{ikke\\ eksponerede}}}} = \\frac{{{pp_eksponerede:.4f}}}{{{pp_ikke_eksponerede:.4f}}} \\approx {ppr:.2%}$\\%\n", "$PPR = \\frac{{PP_{{{eksponeret_label}}}}}{{PP_{{{ikke_eksponeret_label}}}}} = \\frac{{{pp_eksponerede:.4f}}}{{{pp_ikke_eksponerede:.4f}}} \\approx {ppr:.2%}$\\%\n",
"\n", "\n",
"Prævalensen er {ppr-1:.2%} højere blandt eksponerede i forhold til ikke-eksponerede.\n", "Prævalensen er {ppr-1:.2%} højere blandt eksponerede i forhold til ikke-eksponerede.\n",
"\"\"\"\n", "\"\"\"\n",