BioStatistik/En Numerisk.ipynb

267 lines
6.2 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "f0d18716",
"metadata": {},
"outputs": [],
"source": [
"# Imports\n",
"\n",
"from IPython.display import display, Markdown\n",
"from scipy.stats import chi2_contingency\n",
"from scipy.stats import t as t_test\n",
"import numpy as np\n",
"t_value = t_test.isf\n",
"\n",
"def _display_table(data_array, row_names=None, col_names=None):\n",
" _row_num = len(data_array)\n",
" _col_num = len(data_array[0])\n",
" _rows = []\n",
" for i in range(_row_num):\n",
" row = f'| {row_names[i]} |'\n",
" for j in range(_col_num):\n",
" row += f' {data_array[i][j]:.1f} |'\n",
" row += f' {sum(data_array[i]):.0f} |'\n",
" _rows.append(row)\n",
" _total_row = '| **Total** |'\n",
" _col_tots = 0\n",
" for i in range(_col_num):\n",
" col_tot = 0\n",
" for j in range(_row_num):\n",
" col_tot += data_array[j][i]\n",
" _col_tots += col_tot\n",
" _total_row += f' **{col_tot:.0f}** |'\n",
" _total_row += f' **{_col_tots:.0f}** |'\n",
" display(Markdown(\n",
" rf\"\"\"\n",
"| | {' | '.join(col_names + ['Total'])} |\n",
"{'|-'*(len(row_names) + 2)} |\n",
"{'\\n'.join(_rows)}\n",
"{_total_row}\n",
"\"\"\"\n",
"))\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "72bdb3bd",
"metadata": {},
"source": [
"# Prædiktionsinterval\n",
"\n",
"$$\n",
"95\\% - PI = \\bar{x} \\pm 1.96 \\cdot SD\n",
"$$\n",
"\n",
"- $\\bar{x}$: middelværdi\n",
"- $SD$: Stikprøvespredning"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "798fdae9",
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"\n",
"95%-PI\n",
"\n",
"$= \\left[\\bar{x} \\pm 1.96 \\cdot SD\\right]$\n",
"\n",
"$= 3987 \\pm 1.96 \\cdot 506$\n",
"\n",
"$=\\left[ 2995.2\\ ;\\ 4978.8 \\right]$\n"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"middelværdi = 3987\n",
"stikprøvespredning = 506\n",
"\n",
"\n",
"################################\n",
"display(Markdown(\n",
" rf\"\"\"\n",
"95%-PI\n",
"\n",
"$= \\left[\\bar{{x}} \\pm 1.96 \\cdot SD\\right]$\n",
"\n",
"$= {middelværdi} \\pm 1.96 \\cdot {stikprøvespredning}$\n",
"\n",
"$=\\left[ {middelværdi - 1.96 * stikprøvespredning:.1f}\\ ;\\ {middelværdi + 1.96 * stikprøvespredning:.1f} \\right]$\n",
"\"\"\"\n",
"))"
]
},
{
"cell_type": "markdown",
"id": "72541db9",
"metadata": {},
"source": [
"# Konfidensinterval\n",
"\n",
"$$\n",
"\\left[\\bar{x} \\pm t' \\cdot se\\right]\n",
"\\\\\n",
"= \\bar{x} - t' \\cdot se\\ ;\\ \\bar{x} + t' \\cdot se\n",
"$$\n",
"\n",
"- $\\bar{x}$: middelværdi\n",
"- $se$: _standard error_, $= \\frac{SD}{\\sqrt{n}}$\n",
"\n",
"Hvis $se$ er ukendt:\n",
"\n",
"- $SD$: stikprøvespredning\n",
"- $n$: stikprøvestørrelse (antal observationer)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "1e61db8b",
"metadata": {},
"outputs": [],
"source": [
"# Hvis se (standard error) er kendt:\n",
"\n",
"standard_error = 8.04\n",
"n = 3978"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "d3916fb4",
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"\n",
"$standard\\ error = se = \\frac{SD}{\\sqrt{n}}$\n",
"\n",
"$= \\frac{507}{3978}$\n",
"\n",
"$=8.04$\n"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Hvis se (standard error) er ukendt:\n",
"\n",
"stikprøvespredning = 507\n",
"n = 3978\n",
"standard_error = stikprøvespredning / (n**0.5)\n",
"\n",
"\n",
"#########################################\n",
"display(Markdown(\n",
" rf\"\"\"\n",
"$standard\\ error = se = \\frac{{SD}}{{\\sqrt{{n}}}}$\n",
"\n",
"$= \\frac{{{stikprøvespredning}}}{{{n}}}$\n",
"\n",
"$={standard_error:.2f}$\n",
"\"\"\"\n",
"))"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "e7d81100",
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"\n",
"95%-CI\n",
"\n",
"$=\\left[\\bar{x} \\pm t' \\cdot se\\right]$\n",
"\n",
"$=\\left[3437 \\pm 1.96 \\cdot 8.04\\right]$\n",
"\n",
"$=\\left[3437 \\pm 15.76\\right]$\n",
"\n",
"$= \\left[3421.24 \\ ;\\ 3452.76\\right]$\n"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"middelværdi = 3437\n",
"\n",
"\n",
"##########################################\n",
"t_se = t_value(0.025, n-1) * standard_error\n",
"display(Markdown(\n",
" rf\"\"\"\n",
"95%-CI\n",
"\n",
"$=\\left[\\bar{{x}} \\pm t' \\cdot se\\right]$\n",
"\n",
"$=\\left[{middelværdi} \\pm {t_value(0.025, n-1):.2f} \\cdot {standard_error:.2f}\\right]$\n",
"\n",
"$=\\left[{middelværdi} \\pm {t_se:.2f}\\right]$\n",
"\n",
"$= \\left[{middelværdi - t_se:.2f} \\ ;\\ {middelværdi + t_se:.2f}\\right]$\n",
"\"\"\"\n",
"))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "05fec350",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}