From 7d927a96588347c0d41e7d335c0c1df9052a589f Mon Sep 17 00:00:00 2001 From: AliHarp Date: Wed, 1 May 2024 12:29:40 +0100 Subject: [PATCH 1/2] MODEL: Trauma distribution bug --- content/02_model_code/04_model.ipynb | 288 +++++++++++------------ content/02_model_code/output/table_3.txt | 4 +- 2 files changed, 146 insertions(+), 146 deletions(-) diff --git a/content/02_model_code/04_model.ipynb b/content/02_model_code/04_model.ipynb index e5dba27..233e990 100644 --- a/content/02_model_code/04_model.ipynb +++ b/content/02_model_code/04_model.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "e251ce0d", + "id": "35a54f8e", "metadata": {}, "source": [ "# SimPy: Treatment Centre\n", @@ -16,7 +16,7 @@ }, { "cell_type": "markdown", - "id": "6ab38314", + "id": "ddc4aa02", "metadata": {}, "source": [ "## 1. Imports\n", @@ -27,7 +27,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "f9b9d8c8", + "id": "63ab34cd", "metadata": {}, "outputs": [ { @@ -49,7 +49,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "956f9cb7", + "id": "a64f87c1", "metadata": {}, "outputs": [], "source": [ @@ -63,7 +63,7 @@ }, { "cell_type": "markdown", - "id": "3a04b23d", + "id": "7159952e", "metadata": {}, "source": [ "## 2. Constants and defaults for modelling **as-is**" @@ -71,7 +71,7 @@ }, { "cell_type": "markdown", - "id": "4b7ab380", + "id": "37846cfb", "metadata": {}, "source": [ "### 2.1 Distribution parameters" @@ -80,7 +80,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "b98c91df", + "id": "9125827f", "metadata": {}, "outputs": [], "source": [ @@ -115,7 +115,7 @@ }, { "cell_type": "markdown", - "id": "d1dba095", + "id": "59b4818c", "metadata": {}, "source": [ "### 2.2 Time dependent arrival rates data\n", @@ -126,7 +126,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "31132d08", + "id": "c0b31114", "metadata": {}, "outputs": [ { @@ -154,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "8a8eccec", + "id": "f0b66e59", "metadata": {}, "source": [ "### 2.3 Resource counts\n", @@ -165,7 +165,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "9f97c46b", + "id": "065fdfd5", "metadata": {}, "outputs": [], "source": [ @@ -183,7 +183,7 @@ }, { "cell_type": "markdown", - "id": "bbb220c8", + "id": "4936da33", "metadata": {}, "source": [ "### 2.4 Simulation model run settings" @@ -192,7 +192,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "3b44984a", + "id": "65190377", "metadata": {}, "outputs": [], "source": [ @@ -213,7 +213,7 @@ }, { "cell_type": "markdown", - "id": "c2f5d0d5", + "id": "31e0d5af", "metadata": {}, "source": [ "## 3. Utility functions" @@ -222,7 +222,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "91481550", + "id": "28afe578", "metadata": {}, "outputs": [], "source": [ @@ -243,7 +243,7 @@ }, { "cell_type": "markdown", - "id": "44840021", + "id": "aefbbdb1", "metadata": {}, "source": [ "## 4. Distribution classes\n", @@ -261,7 +261,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "ee8a6b21", + "id": "eace284a", "metadata": {}, "outputs": [], "source": [ @@ -387,7 +387,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "e3662ea3", + "id": "277bc0a4", "metadata": {}, "outputs": [], "source": [ @@ -469,7 +469,7 @@ }, { "cell_type": "markdown", - "id": "21f34196", + "id": "03b3ac28", "metadata": {}, "source": [ "## 5. Model parameterisation\n", @@ -480,7 +480,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "6a261de8", + "id": "95dfe811", "metadata": {}, "outputs": [], "source": [ @@ -694,7 +694,7 @@ }, { "cell_type": "markdown", - "id": "a627b72f", + "id": "c9502d07", "metadata": {}, "source": [ "## 6. Patient Pathways Process Logic\n", @@ -705,7 +705,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "11700ff1", + "id": "ade8fa79", "metadata": {}, "outputs": [], "source": [ @@ -804,7 +804,7 @@ " f'{self.env.now:.3f}')\n", " \n", " # sample treatment duration.\n", - " self.treat_duration = args.trauma_dist.sample()\n", + " self.treat_duration = args.treat_dist.sample()\n", " yield self.env.timeout(self.treat_duration)\n", " \n", " self.treatment_complete()\n", @@ -837,7 +837,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "fc633380", + "id": "ed285e08", "metadata": {}, "outputs": [], "source": [ @@ -988,7 +988,7 @@ }, { "cell_type": "markdown", - "id": "284188bc", + "id": "624af7e3", "metadata": {}, "source": [ "## 7. Main model class\n", @@ -999,7 +999,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "03770c5a", + "id": "a102fb97", "metadata": {}, "outputs": [], "source": [ @@ -1141,7 +1141,7 @@ }, { "cell_type": "markdown", - "id": "cb89619b", + "id": "53c32a03", "metadata": {}, "source": [ "### 8. Logic to process end of run results.\n", @@ -1152,7 +1152,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "f6a4fd58", + "id": "afb629c0", "metadata": {}, "outputs": [], "source": [ @@ -1343,7 +1343,7 @@ }, { "cell_type": "markdown", - "id": "5b4b5208", + "id": "51653e7a", "metadata": {}, "source": [ "## 9. Model execution\n", @@ -1356,7 +1356,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "2dfa5971", + "id": "67583c28", "metadata": {}, "outputs": [], "source": [ @@ -1404,7 +1404,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "3adde6ad", + "id": "4065bb56", "metadata": {}, "outputs": [], "source": [ @@ -1442,7 +1442,7 @@ }, { "cell_type": "markdown", - "id": "6cfd29ba", + "id": "48571f13", "metadata": {}, "source": [ "### 9.1 Single run of the model\n", @@ -1458,7 +1458,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "1c592473", + "id": "322065b8", "metadata": {}, "outputs": [ { @@ -1535,27 +1535,27 @@ " \n", " \n", " 06a_trauma_wait\n", - " 240.846123\n", + " 201.144403\n", " \n", " \n", " 06b_trauma_util\n", - " 0.952202\n", + " 0.919830\n", " \n", " \n", " 07a_treatment_wait(trauma)\n", - " 87.200272\n", + " 22.904842\n", " \n", " \n", " 07b_treatment_util(trauma)\n", - " 0.740196\n", + " 0.495450\n", " \n", " \n", " 08_total_time(trauma)\n", - " 422.158076\n", + " 310.794173\n", " \n", " \n", " 09_throughput\n", - " 150.000000\n", + " 155.000000\n", " \n", " \n", "\n", @@ -1573,12 +1573,12 @@ "04a_treatment_wait(non_trauma) 172.435861\n", "04b_treatment_util(non_trauma) 0.845652\n", "05_total_time(non-trauma) 248.848441\n", - "06a_trauma_wait 240.846123\n", - "06b_trauma_util 0.952202\n", - "07a_treatment_wait(trauma) 87.200272\n", - "07b_treatment_util(trauma) 0.740196\n", - "08_total_time(trauma) 422.158076\n", - "09_throughput 150.000000" + "06a_trauma_wait 201.144403\n", + "06b_trauma_util 0.919830\n", + "07a_treatment_wait(trauma) 22.904842\n", + "07b_treatment_util(trauma) 0.495450\n", + "08_total_time(trauma) 310.794173\n", + "09_throughput 155.000000" ] }, "execution_count": 17, @@ -1605,7 +1605,7 @@ }, { "cell_type": "markdown", - "id": "75df4e4d", + "id": "557ea941", "metadata": {}, "source": [ "### 9.2 Multiple independent replications\n", @@ -1616,7 +1616,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "592c20b9", + "id": "b4bf3413", "metadata": {}, "outputs": [ { @@ -1625,8 +1625,8 @@ "text": [ "Running multiple replications => done.\n", "\n", - "CPU times: user 1.5 s, sys: 17.2 ms, total: 1.51 s\n", - "Wall time: 4.44 s\n" + "CPU times: user 1.3 s, sys: 8.74 ms, total: 1.31 s\n", + "Wall time: 3.38 s\n" ] }, { @@ -1700,12 +1700,12 @@ " 152.483394\n", " 0.890904\n", " 234.759918\n", - " 191.391047\n", - " 0.812900\n", - " 239.889716\n", - " 0.929002\n", - " 393.725433\n", - " 157.0\n", + " 236.508444\n", + " 1.028887\n", + " 13.471615\n", + " 0.607219\n", + " 346.390186\n", + " 171.0\n", " \n", " \n", " 2\n", @@ -1719,12 +1719,12 @@ " 120.245474\n", " 0.912127\n", " 233.882040\n", - " 198.986555\n", - " 0.790265\n", - " 91.161308\n", - " 0.699481\n", - " 406.292519\n", - " 156.0\n", + " 133.813901\n", + " 0.834124\n", + " 3.729017\n", + " 0.367824\n", + " 301.560578\n", + " 161.0\n", " \n", " \n", " 3\n", @@ -1738,12 +1738,12 @@ " 94.019885\n", " 0.868888\n", " 208.361290\n", - " 284.853607\n", - " 0.896077\n", - " 156.650713\n", - " 0.699029\n", - " 524.843569\n", - " 161.0\n", + " 276.422566\n", + " 0.874245\n", + " 12.303868\n", + " 0.467373\n", + " 440.733961\n", + " 167.0\n", " \n", " \n", "\n", @@ -1770,21 +1770,21 @@ "\n", " 05_total_time(non-trauma) 06a_trauma_wait 06b_trauma_util \\\n", "rep \n", - "1 234.759918 191.391047 0.812900 \n", - "2 233.882040 198.986555 0.790265 \n", - "3 208.361290 284.853607 0.896077 \n", + "1 234.759918 236.508444 1.028887 \n", + "2 233.882040 133.813901 0.834124 \n", + "3 208.361290 276.422566 0.874245 \n", "\n", " 07a_treatment_wait(trauma) 07b_treatment_util(trauma) \\\n", "rep \n", - "1 239.889716 0.929002 \n", - "2 91.161308 0.699481 \n", - "3 156.650713 0.699029 \n", + "1 13.471615 0.607219 \n", + "2 3.729017 0.367824 \n", + "3 12.303868 0.467373 \n", "\n", " 08_total_time(trauma) 09_throughput \n", "rep \n", - "1 393.725433 157.0 \n", - "2 406.292519 156.0 \n", - "3 524.843569 161.0 " + "1 346.390186 171.0 \n", + "2 301.560578 161.0 \n", + "3 440.733961 167.0 " ] }, "execution_count": 18, @@ -1807,7 +1807,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "a2977d15", + "id": "4017a499", "metadata": {}, "outputs": [ { @@ -1823,12 +1823,12 @@ "04a_treatment_wait(non_trauma) 136.66\n", "04b_treatment_util(non_trauma) 0.87\n", "05_total_time(non-trauma) 234.34\n", - "06a_trauma_wait 147.42\n", + "06a_trauma_wait 151.68\n", "06b_trauma_util 0.83\n", - "07a_treatment_wait(trauma) 169.61\n", - "07b_treatment_util(trauma) 0.81\n", - "08_total_time(trauma) 395.08\n", - "09_throughput 153.60\n", + "07a_treatment_wait(trauma) 14.25\n", + "07b_treatment_util(trauma) 0.50\n", + "08_total_time(trauma) 292.21\n", + "09_throughput 162.16\n", "dtype: float64" ] }, @@ -1844,7 +1844,7 @@ }, { "cell_type": "markdown", - "id": "f356c85f", + "id": "c56f8b17", "metadata": {}, "source": [ "### 9.3 Visualise replications" @@ -1853,7 +1853,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "03f0caf3", + "id": "7e0dc4bc", "metadata": {}, "outputs": [ { @@ -1877,7 +1877,7 @@ }, { "cell_type": "markdown", - "id": "31679e4b", + "id": "31a7851f", "metadata": {}, "source": [ "## 10. Scenario Analysis\n", @@ -1890,7 +1890,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "87fa1b65", + "id": "cca43803", "metadata": {}, "outputs": [], "source": [ @@ -1925,7 +1925,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "079a12b9", + "id": "97667916", "metadata": {}, "outputs": [], "source": [ @@ -1967,7 +1967,7 @@ }, { "cell_type": "markdown", - "id": "679b9dc1", + "id": "7cd047a7", "metadata": {}, "source": [ "### 10.1 Script to run scenario analysis" @@ -1976,7 +1976,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "51a9bfbf", + "id": "a50b56b9", "metadata": {}, "outputs": [ { @@ -2016,7 +2016,7 @@ { "cell_type": "code", "execution_count": 24, - "id": "77d20748", + "id": "5e9a61b3", "metadata": {}, "outputs": [], "source": [ @@ -2047,7 +2047,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "4e63a89b", + "id": "8e5ba532", "metadata": {}, "outputs": [ { @@ -2161,51 +2161,51 @@ " \n", " \n", " 06a_trauma_wait\n", - " 144.23\n", - " 163.29\n", - " 153.04\n", - " 151.20\n", - " 189.95\n", + " 171.44\n", + " 182.96\n", + " 139.42\n", + " 166.51\n", + " 178.34\n", " \n", " \n", " 06b_trauma_util\n", - " 0.85\n", - " 0.85\n", - " 0.89\n", - " 0.80\n", " 0.88\n", + " 0.88\n", + " 0.83\n", + " 0.87\n", + " 0.86\n", " \n", " \n", " 07a_treatment_wait(trauma)\n", - " 176.13\n", - " 208.33\n", - " 192.61\n", - " 165.71\n", - " 191.00\n", + " 20.26\n", + " 22.65\n", + " 19.40\n", + " 16.96\n", + " 19.48\n", " \n", " \n", " 07b_treatment_util(trauma)\n", - " 0.84\n", - " 0.86\n", - " 0.80\n", - " 0.84\n", - " 0.85\n", + " 0.52\n", + " 0.52\n", + " 0.52\n", + " 0.51\n", + " 0.52\n", " \n", " \n", " 08_total_time(trauma)\n", - " 393.36\n", - " 389.83\n", - " 400.76\n", - " 383.26\n", - " 408.64\n", + " 316.81\n", + " 298.77\n", + " 271.91\n", + " 297.40\n", + " 288.95\n", " \n", " \n", " 09_throughput\n", - " 156.25\n", - " 157.50\n", - " 159.85\n", - " 187.85\n", - " 159.80\n", + " 166.15\n", + " 167.40\n", + " 169.20\n", + " 196.80\n", + " 170.40\n", " \n", " \n", "\n", @@ -2223,12 +2223,12 @@ "04a_treatment_wait(non_trauma) 134.19 134.80 148.81 2.10 150.61\n", "04b_treatment_util(non_trauma) 0.88 0.88 0.88 0.62 0.88\n", "05_total_time(non-trauma) 226.57 223.52 213.47 184.42 210.25\n", - "06a_trauma_wait 144.23 163.29 153.04 151.20 189.95\n", - "06b_trauma_util 0.85 0.85 0.89 0.80 0.88\n", - "07a_treatment_wait(trauma) 176.13 208.33 192.61 165.71 191.00\n", - "07b_treatment_util(trauma) 0.84 0.86 0.80 0.84 0.85\n", - "08_total_time(trauma) 393.36 389.83 400.76 383.26 408.64\n", - "09_throughput 156.25 157.50 159.85 187.85 159.80" + "06a_trauma_wait 171.44 182.96 139.42 166.51 178.34\n", + "06b_trauma_util 0.88 0.88 0.83 0.87 0.86\n", + "07a_treatment_wait(trauma) 20.26 22.65 19.40 16.96 19.48\n", + "07b_treatment_util(trauma) 0.52 0.52 0.52 0.51 0.52\n", + "08_total_time(trauma) 316.81 298.77 271.91 297.40 288.95\n", + "09_throughput 166.15 167.40 169.20 196.80 170.40" ] }, "execution_count": 25, @@ -2245,7 +2245,7 @@ }, { "cell_type": "markdown", - "id": "7cb09bfb", + "id": "66d1165f", "metadata": {}, "source": [ "## 11. Script to produce formatted LaTeX table for paper" @@ -2254,7 +2254,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "82a91037", + "id": "2e27baa6", "metadata": {}, "outputs": [ { @@ -2326,20 +2326,20 @@ " \n", " 4\n", " Trauma stabilisation\n", - " 144.23\n", - " 163.29\n", - " 153.04\n", - " 151.20\n", - " 189.95\n", + " 171.44\n", + " 182.96\n", + " 139.42\n", + " 166.51\n", + " 178.34\n", " \n", " \n", " 5\n", " Trauma treatment\n", - " 176.13\n", - " 208.33\n", - " 192.61\n", - " 165.71\n", - " 191.00\n", + " 20.26\n", + " 22.65\n", + " 19.40\n", + " 16.96\n", + " 19.48\n", " \n", " \n", "\n", @@ -2351,8 +2351,8 @@ "1 Registation 101.88 128.14 101.09 109.70 125.47\n", "2 Examination 25.34 24.93 0.16 24.03 0.14\n", "3 Non-trauma treatment 134.19 134.80 148.81 2.10 150.61\n", - "4 Trauma stabilisation 144.23 163.29 153.04 151.20 189.95\n", - "5 Trauma treatment 176.13 208.33 192.61 165.71 191.00" + "4 Trauma stabilisation 171.44 182.96 139.42 166.51 178.34\n", + "5 Trauma treatment 20.26 22.65 19.40 16.96 19.48" ] }, "execution_count": 26, @@ -2382,7 +2382,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "cc53c15f", + "id": "23ad7756", "metadata": {}, "outputs": [ { @@ -2401,8 +2401,8 @@ " Registation & 101.88 & 128.14 & 101.09 & 109.70 & 125.47 \\\\\n", " Examination & 25.34 & 24.93 & 0.16 & 24.03 & 0.14 \\\\\n", " Non-trauma treatment & 134.19 & 134.80 & 148.81 & 2.10 & 150.61 \\\\\n", - " Trauma stabilisation & 144.23 & 163.29 & 153.04 & 151.20 & 189.95 \\\\\n", - " Trauma treatment & 176.13 & 208.33 & 192.61 & 165.71 & 191.00 \\\\\n", + " Trauma stabilisation & 171.44 & 182.96 & 139.42 & 166.51 & 178.34 \\\\\n", + " Trauma treatment & 20.26 & 22.65 & 19.40 & 16.96 & 19.48 \\\\\n", "\\bottomrule\n", "\\end{tabular}\n", "\\end{table}\n", @@ -2431,7 +2431,7 @@ }, { "cell_type": "markdown", - "id": "ea8a95ab", + "id": "53154549", "metadata": {}, "source": [ "## End" diff --git a/content/02_model_code/output/table_3.txt b/content/02_model_code/output/table_3.txt index c8034c3..4333945 100644 --- a/content/02_model_code/output/table_3.txt +++ b/content/02_model_code/output/table_3.txt @@ -10,8 +10,8 @@ Mean waiting time (mins) & base & triage+1 & exam+1 & treat+1 & triage+exa Registation & 101.88 & 128.14 & 101.09 & 109.70 & 125.47 \\ Examination & 25.34 & 24.93 & 0.16 & 24.03 & 0.14 \\ Non-trauma treatment & 134.19 & 134.80 & 148.81 & 2.10 & 150.61 \\ - Trauma stabilisation & 144.23 & 163.29 & 153.04 & 151.20 & 189.95 \\ - Trauma treatment & 176.13 & 208.33 & 192.61 & 165.71 & 191.00 \\ + Trauma stabilisation & 171.44 & 182.96 & 139.42 & 166.51 & 178.34 \\ + Trauma treatment & 20.26 & 22.65 & 19.40 & 16.96 & 19.48 \\ \bottomrule \end{tabular} \end{table} From 95d5c3b8f74867f0b2417b5a08cf1081046e870e Mon Sep 17 00:00:00 2001 From: TomMonks Date: Wed, 1 May 2024 15:07:46 +0100 Subject: [PATCH 2/2] PATCH: correct variance for trauma treat dist --- binder/environment.yml | 3 +- content/02_model_code/04_model.ipynb | 194 +++++++++++------------ content/02_model_code/output/table_3.txt | 2 +- src/full_model.ipynb | 98 ++++++------ src/treat_sim/model.py | 20 +-- 5 files changed, 159 insertions(+), 158 deletions(-) diff --git a/binder/environment.yml b/binder/environment.yml index 7f9412f..db32028 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -12,5 +12,4 @@ dependencies: - scipy=1.6.1 - simpy=4.0.1 - pip: - - jupyter-book==0.15.1 - + - jupyter-book==0.15.1 \ No newline at end of file diff --git a/content/02_model_code/04_model.ipynb b/content/02_model_code/04_model.ipynb index 233e990..ac7fae0 100644 --- a/content/02_model_code/04_model.ipynb +++ b/content/02_model_code/04_model.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "35a54f8e", + "id": "9864ff04", "metadata": {}, "source": [ "# SimPy: Treatment Centre\n", @@ -16,7 +16,7 @@ }, { "cell_type": "markdown", - "id": "ddc4aa02", + "id": "67d378b9", "metadata": {}, "source": [ "## 1. Imports\n", @@ -27,7 +27,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "63ab34cd", + "id": "7d374b31", "metadata": {}, "outputs": [ { @@ -49,7 +49,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "a64f87c1", + "id": "11fac8cf", "metadata": {}, "outputs": [], "source": [ @@ -63,7 +63,7 @@ }, { "cell_type": "markdown", - "id": "7159952e", + "id": "559ee23e", "metadata": {}, "source": [ "## 2. Constants and defaults for modelling **as-is**" @@ -71,7 +71,7 @@ }, { "cell_type": "markdown", - "id": "37846cfb", + "id": "87c119bd", "metadata": {}, "source": [ "### 2.1 Distribution parameters" @@ -80,7 +80,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "9125827f", + "id": "6f01d888", "metadata": {}, "outputs": [], "source": [ @@ -115,7 +115,7 @@ }, { "cell_type": "markdown", - "id": "59b4818c", + "id": "7bb06c1d", "metadata": {}, "source": [ "### 2.2 Time dependent arrival rates data\n", @@ -126,7 +126,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "c0b31114", + "id": "e55e450a", "metadata": {}, "outputs": [ { @@ -154,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "f0b66e59", + "id": "18ce33a2", "metadata": {}, "source": [ "### 2.3 Resource counts\n", @@ -165,7 +165,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "065fdfd5", + "id": "93644445", "metadata": {}, "outputs": [], "source": [ @@ -183,7 +183,7 @@ }, { "cell_type": "markdown", - "id": "4936da33", + "id": "814e3a78", "metadata": {}, "source": [ "### 2.4 Simulation model run settings" @@ -192,7 +192,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "65190377", + "id": "0038a24f", "metadata": {}, "outputs": [], "source": [ @@ -213,7 +213,7 @@ }, { "cell_type": "markdown", - "id": "31e0d5af", + "id": "4df7855a", "metadata": {}, "source": [ "## 3. Utility functions" @@ -222,7 +222,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "28afe578", + "id": "9e150cb9", "metadata": {}, "outputs": [], "source": [ @@ -243,7 +243,7 @@ }, { "cell_type": "markdown", - "id": "aefbbdb1", + "id": "dab518e5", "metadata": {}, "source": [ "## 4. Distribution classes\n", @@ -261,7 +261,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "eace284a", + "id": "48e2c282", "metadata": {}, "outputs": [], "source": [ @@ -387,7 +387,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "277bc0a4", + "id": "ffd5ca32", "metadata": {}, "outputs": [], "source": [ @@ -469,7 +469,7 @@ }, { "cell_type": "markdown", - "id": "03b3ac28", + "id": "da4e0ca7", "metadata": {}, "source": [ "## 5. Model parameterisation\n", @@ -480,7 +480,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "95dfe811", + "id": "4cbd58d2", "metadata": {}, "outputs": [], "source": [ @@ -659,7 +659,7 @@ " \n", " # treatment of trauma patients\n", " self.treat_dist = Lognormal(self.trauma_treat_mean, \n", - " np.sqrt(self.non_trauma_treat_var),\n", + " np.sqrt(self.trauma_treat_var),\n", " random_seed=self.seeds[5])\n", " \n", " # probability of non-trauma patient requiring treatment\n", @@ -694,7 +694,7 @@ }, { "cell_type": "markdown", - "id": "c9502d07", + "id": "e3cb73a1", "metadata": {}, "source": [ "## 6. Patient Pathways Process Logic\n", @@ -705,7 +705,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "ade8fa79", + "id": "34edd733", "metadata": {}, "outputs": [], "source": [ @@ -837,7 +837,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "ed285e08", + "id": "30185f46", "metadata": {}, "outputs": [], "source": [ @@ -988,7 +988,7 @@ }, { "cell_type": "markdown", - "id": "624af7e3", + "id": "39bb1a70", "metadata": {}, "source": [ "## 7. Main model class\n", @@ -999,7 +999,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "a102fb97", + "id": "32fe1593", "metadata": {}, "outputs": [], "source": [ @@ -1141,7 +1141,7 @@ }, { "cell_type": "markdown", - "id": "53c32a03", + "id": "b697a7f0", "metadata": {}, "source": [ "### 8. Logic to process end of run results.\n", @@ -1152,7 +1152,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "afb629c0", + "id": "91cb2537", "metadata": {}, "outputs": [], "source": [ @@ -1343,7 +1343,7 @@ }, { "cell_type": "markdown", - "id": "51653e7a", + "id": "2ed1e0a7", "metadata": {}, "source": [ "## 9. Model execution\n", @@ -1356,7 +1356,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "67583c28", + "id": "9dcc164b", "metadata": {}, "outputs": [], "source": [ @@ -1404,7 +1404,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "4065bb56", + "id": "3320cd7c", "metadata": {}, "outputs": [], "source": [ @@ -1442,7 +1442,7 @@ }, { "cell_type": "markdown", - "id": "48571f13", + "id": "c2773977", "metadata": {}, "source": [ "### 9.1 Single run of the model\n", @@ -1458,7 +1458,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "322065b8", + "id": "ab928ff2", "metadata": {}, "outputs": [ { @@ -1543,15 +1543,15 @@ " \n", " \n", " 07a_treatment_wait(trauma)\n", - " 22.904842\n", + " 22.620880\n", " \n", " \n", " 07b_treatment_util(trauma)\n", - " 0.495450\n", + " 0.493576\n", " \n", " \n", " 08_total_time(trauma)\n", - " 310.794173\n", + " 310.384648\n", " \n", " \n", " 09_throughput\n", @@ -1575,9 +1575,9 @@ "05_total_time(non-trauma) 248.848441\n", "06a_trauma_wait 201.144403\n", "06b_trauma_util 0.919830\n", - "07a_treatment_wait(trauma) 22.904842\n", - "07b_treatment_util(trauma) 0.495450\n", - "08_total_time(trauma) 310.794173\n", + "07a_treatment_wait(trauma) 22.620880\n", + "07b_treatment_util(trauma) 0.493576\n", + "08_total_time(trauma) 310.384648\n", "09_throughput 155.000000" ] }, @@ -1605,7 +1605,7 @@ }, { "cell_type": "markdown", - "id": "557ea941", + "id": "7ce7a397", "metadata": {}, "source": [ "### 9.2 Multiple independent replications\n", @@ -1616,7 +1616,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "b4bf3413", + "id": "7d1bd513", "metadata": {}, "outputs": [ { @@ -1625,8 +1625,8 @@ "text": [ "Running multiple replications => done.\n", "\n", - "CPU times: user 1.3 s, sys: 8.74 ms, total: 1.31 s\n", - "Wall time: 3.38 s\n" + "CPU times: user 3.21 s, sys: 25 ms, total: 3.23 s\n", + "Wall time: 5.8 s\n" ] }, { @@ -1702,9 +1702,9 @@ " 234.759918\n", " 236.508444\n", " 1.028887\n", - " 13.471615\n", - " 0.607219\n", - " 346.390186\n", + " 13.701783\n", + " 0.607996\n", + " 346.698079\n", " 171.0\n", " \n", " \n", @@ -1721,9 +1721,9 @@ " 233.882040\n", " 133.813901\n", " 0.834124\n", - " 3.729017\n", - " 0.367824\n", - " 301.560578\n", + " 3.715446\n", + " 0.367507\n", + " 301.521195\n", " 161.0\n", " \n", " \n", @@ -1740,9 +1740,9 @@ " 208.361290\n", " 276.422566\n", " 0.874245\n", - " 12.303868\n", - " 0.467373\n", - " 440.733961\n", + " 12.252175\n", + " 0.464740\n", + " 440.515502\n", " 167.0\n", " \n", " \n", @@ -1776,15 +1776,15 @@ "\n", " 07a_treatment_wait(trauma) 07b_treatment_util(trauma) \\\n", "rep \n", - "1 13.471615 0.607219 \n", - "2 3.729017 0.367824 \n", - "3 12.303868 0.467373 \n", + "1 13.701783 0.607996 \n", + "2 3.715446 0.367507 \n", + "3 12.252175 0.464740 \n", "\n", " 08_total_time(trauma) 09_throughput \n", "rep \n", - "1 346.390186 171.0 \n", - "2 301.560578 161.0 \n", - "3 440.733961 167.0 " + "1 346.698079 171.0 \n", + "2 301.521195 161.0 \n", + "3 440.515502 167.0 " ] }, "execution_count": 18, @@ -1807,7 +1807,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "4017a499", + "id": "0964cfc9", "metadata": {}, "outputs": [ { @@ -1825,9 +1825,9 @@ "05_total_time(non-trauma) 234.34\n", "06a_trauma_wait 151.68\n", "06b_trauma_util 0.83\n", - "07a_treatment_wait(trauma) 14.25\n", + "07a_treatment_wait(trauma) 14.31\n", "07b_treatment_util(trauma) 0.50\n", - "08_total_time(trauma) 292.21\n", + "08_total_time(trauma) 292.28\n", "09_throughput 162.16\n", "dtype: float64" ] @@ -1844,7 +1844,7 @@ }, { "cell_type": "markdown", - "id": "c56f8b17", + "id": "f3d13d68", "metadata": {}, "source": [ "### 9.3 Visualise replications" @@ -1853,7 +1853,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "7e0dc4bc", + "id": "83bb0cb6", "metadata": {}, "outputs": [ { @@ -1877,7 +1877,7 @@ }, { "cell_type": "markdown", - "id": "31a7851f", + "id": "1cdb9f2c", "metadata": {}, "source": [ "## 10. Scenario Analysis\n", @@ -1890,7 +1890,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "cca43803", + "id": "938b1851", "metadata": {}, "outputs": [], "source": [ @@ -1925,7 +1925,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "97667916", + "id": "ffc0b669", "metadata": {}, "outputs": [], "source": [ @@ -1967,7 +1967,7 @@ }, { "cell_type": "markdown", - "id": "7cd047a7", + "id": "702e13a3", "metadata": {}, "source": [ "### 10.1 Script to run scenario analysis" @@ -1976,7 +1976,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "a50b56b9", + "id": "36a7271a", "metadata": {}, "outputs": [ { @@ -2016,7 +2016,7 @@ { "cell_type": "code", "execution_count": 24, - "id": "5e9a61b3", + "id": "ae7a3a51", "metadata": {}, "outputs": [], "source": [ @@ -2047,7 +2047,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "8e5ba532", + "id": "7c370630", "metadata": {}, "outputs": [ { @@ -2177,11 +2177,11 @@ " \n", " \n", " 07a_treatment_wait(trauma)\n", - " 20.26\n", - " 22.65\n", - " 19.40\n", - " 16.96\n", - " 19.48\n", + " 20.38\n", + " 22.61\n", + " 19.24\n", + " 16.89\n", + " 19.46\n", " \n", " \n", " 07b_treatment_util(trauma)\n", @@ -2193,18 +2193,18 @@ " \n", " \n", " 08_total_time(trauma)\n", - " 316.81\n", - " 298.77\n", - " 271.91\n", - " 297.40\n", - " 288.95\n", + " 316.94\n", + " 298.88\n", + " 271.56\n", + " 297.58\n", + " 288.86\n", " \n", " \n", " 09_throughput\n", " 166.15\n", - " 167.40\n", - " 169.20\n", - " 196.80\n", + " 167.45\n", + " 169.15\n", + " 196.85\n", " 170.40\n", " \n", " \n", @@ -2225,10 +2225,10 @@ "05_total_time(non-trauma) 226.57 223.52 213.47 184.42 210.25\n", "06a_trauma_wait 171.44 182.96 139.42 166.51 178.34\n", "06b_trauma_util 0.88 0.88 0.83 0.87 0.86\n", - "07a_treatment_wait(trauma) 20.26 22.65 19.40 16.96 19.48\n", + "07a_treatment_wait(trauma) 20.38 22.61 19.24 16.89 19.46\n", "07b_treatment_util(trauma) 0.52 0.52 0.52 0.51 0.52\n", - "08_total_time(trauma) 316.81 298.77 271.91 297.40 288.95\n", - "09_throughput 166.15 167.40 169.20 196.80 170.40" + "08_total_time(trauma) 316.94 298.88 271.56 297.58 288.86\n", + "09_throughput 166.15 167.45 169.15 196.85 170.40" ] }, "execution_count": 25, @@ -2245,7 +2245,7 @@ }, { "cell_type": "markdown", - "id": "66d1165f", + "id": "e1075c3a", "metadata": {}, "source": [ "## 11. Script to produce formatted LaTeX table for paper" @@ -2254,7 +2254,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "2e27baa6", + "id": "9d4388bd", "metadata": {}, "outputs": [ { @@ -2335,11 +2335,11 @@ " \n", " 5\n", " Trauma treatment\n", - " 20.26\n", - " 22.65\n", - " 19.40\n", - " 16.96\n", - " 19.48\n", + " 20.38\n", + " 22.61\n", + " 19.24\n", + " 16.89\n", + " 19.46\n", " \n", " \n", "\n", @@ -2352,7 +2352,7 @@ "2 Examination 25.34 24.93 0.16 24.03 0.14\n", "3 Non-trauma treatment 134.19 134.80 148.81 2.10 150.61\n", "4 Trauma stabilisation 171.44 182.96 139.42 166.51 178.34\n", - "5 Trauma treatment 20.26 22.65 19.40 16.96 19.48" + "5 Trauma treatment 20.38 22.61 19.24 16.89 19.46" ] }, "execution_count": 26, @@ -2382,7 +2382,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "23ad7756", + "id": "12fbe03a", "metadata": {}, "outputs": [ { @@ -2402,7 +2402,7 @@ " Examination & 25.34 & 24.93 & 0.16 & 24.03 & 0.14 \\\\\n", " Non-trauma treatment & 134.19 & 134.80 & 148.81 & 2.10 & 150.61 \\\\\n", " Trauma stabilisation & 171.44 & 182.96 & 139.42 & 166.51 & 178.34 \\\\\n", - " Trauma treatment & 20.26 & 22.65 & 19.40 & 16.96 & 19.48 \\\\\n", + " Trauma treatment & 20.38 & 22.61 & 19.24 & 16.89 & 19.46 \\\\\n", "\\bottomrule\n", "\\end{tabular}\n", "\\end{table}\n", @@ -2431,7 +2431,7 @@ }, { "cell_type": "markdown", - "id": "53154549", + "id": "c3098904", "metadata": {}, "source": [ "## End" diff --git a/content/02_model_code/output/table_3.txt b/content/02_model_code/output/table_3.txt index 4333945..21d335f 100644 --- a/content/02_model_code/output/table_3.txt +++ b/content/02_model_code/output/table_3.txt @@ -11,7 +11,7 @@ Mean waiting time (mins) & base & triage+1 & exam+1 & treat+1 & triage+exa Examination & 25.34 & 24.93 & 0.16 & 24.03 & 0.14 \\ Non-trauma treatment & 134.19 & 134.80 & 148.81 & 2.10 & 150.61 \\ Trauma stabilisation & 171.44 & 182.96 & 139.42 & 166.51 & 178.34 \\ - Trauma treatment & 20.26 & 22.65 & 19.40 & 16.96 & 19.48 \\ + Trauma treatment & 20.38 & 22.61 & 19.24 & 16.89 & 19.46 \\ \bottomrule \end{tabular} \end{table} diff --git a/src/full_model.ipynb b/src/full_model.ipynb index ab28841..453d537 100644 --- a/src/full_model.ipynb +++ b/src/full_model.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "5f6bc1fb", + "id": "1e38665a", "metadata": {}, "source": [ "# SimPy: Treatment Centre\n", @@ -26,7 +26,7 @@ }, { "cell_type": "markdown", - "id": "75ac3244", + "id": "d05a6590", "metadata": {}, "source": [ "## Imports\n", @@ -39,7 +39,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "d7fe643e", + "id": "d7666c05", "metadata": {}, "outputs": [], "source": [ @@ -52,7 +52,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "a5aaf4aa", + "id": "fa57807c", "metadata": {}, "outputs": [ { @@ -74,7 +74,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "d5cfef2a", + "id": "458d9a2a", "metadata": {}, "outputs": [], "source": [ @@ -87,7 +87,7 @@ }, { "cell_type": "markdown", - "id": "83fbca98", + "id": "6eed558f", "metadata": {}, "source": [ "---\n", @@ -115,7 +115,7 @@ }, { "cell_type": "markdown", - "id": "1a9f16c7", + "id": "38e248b9", "metadata": {}, "source": [ "## Constants and defaults for modelling **as-is**" @@ -123,7 +123,7 @@ }, { "cell_type": "markdown", - "id": "e09c1788", + "id": "4a2dc494", "metadata": {}, "source": [ "### Distribution parameters" @@ -132,7 +132,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "ed8cdf44", + "id": "af9b52b0", "metadata": {}, "outputs": [], "source": [ @@ -167,7 +167,7 @@ }, { "cell_type": "markdown", - "id": "5b625648", + "id": "2ff84174", "metadata": {}, "source": [ "### Time dependent arrival rates data\n", @@ -178,7 +178,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "f47e4be1", + "id": "cb740899", "metadata": {}, "outputs": [ { @@ -205,7 +205,7 @@ }, { "cell_type": "markdown", - "id": "7babe87a", + "id": "84b59c1a", "metadata": {}, "source": [ "### Resource counts\n", @@ -216,7 +216,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "356da7d2", + "id": "35eb6883", "metadata": {}, "outputs": [], "source": [ @@ -234,7 +234,7 @@ }, { "cell_type": "markdown", - "id": "75343958", + "id": "92029642", "metadata": {}, "source": [ "### Simulation model run settings" @@ -243,7 +243,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "9a060e54", + "id": "5dfc4485", "metadata": {}, "outputs": [], "source": [ @@ -264,7 +264,7 @@ }, { "cell_type": "markdown", - "id": "d47270ec", + "id": "f40e7e85", "metadata": {}, "source": [ "## Utility functions" @@ -273,7 +273,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "a2213696", + "id": "d7cf8c8c", "metadata": {}, "outputs": [], "source": [ @@ -294,7 +294,7 @@ }, { "cell_type": "markdown", - "id": "badf738d", + "id": "967e028b", "metadata": {}, "source": [ "## Distribution classes\n", @@ -312,7 +312,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "cc39928e", + "id": "ebd41c67", "metadata": {}, "outputs": [], "source": [ @@ -438,7 +438,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "476d5c38", + "id": "e026c878", "metadata": {}, "outputs": [], "source": [ @@ -520,7 +520,7 @@ }, { "cell_type": "markdown", - "id": "0bab8888", + "id": "e4409446", "metadata": {}, "source": [ "## Model parameterisation\n", @@ -531,7 +531,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "7dd430d1", + "id": "32f5d71c", "metadata": {}, "outputs": [], "source": [ @@ -710,7 +710,7 @@ " \n", " # treatment of trauma patients\n", " self.treat_dist = Lognormal(self.trauma_treat_mean, \n", - " np.sqrt(self.non_trauma_treat_var),\n", + " np.sqrt(self.trauma_treat_var),\n", " random_seed=self.seeds[5])\n", " \n", " # probability of non-trauma patient requiring treatment\n", @@ -745,7 +745,7 @@ }, { "cell_type": "markdown", - "id": "dcfa40d2", + "id": "f12d6437", "metadata": {}, "source": [ "## Patient Pathways Process Logic\n", @@ -756,7 +756,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "eb3bbfbd", + "id": "fb7c10a8", "metadata": {}, "outputs": [], "source": [ @@ -855,7 +855,7 @@ " f'{self.env.now:.3f}')\n", " \n", " # sample treatment duration.\n", - " self.treat_duration = args.trauma_dist.sample()\n", + " self.treat_duration = args.treat_dist.sample()\n", " yield self.env.timeout(self.treat_duration)\n", " \n", " self.treatment_complete()\n", @@ -888,7 +888,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "23e9b8d7", + "id": "b0a44de1", "metadata": {}, "outputs": [], "source": [ @@ -1039,7 +1039,7 @@ }, { "cell_type": "markdown", - "id": "631df16c", + "id": "5fbfaa7d", "metadata": {}, "source": [ "## Main model class\n", @@ -1050,7 +1050,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "15d766a1", + "id": "d8aedd4b", "metadata": {}, "outputs": [], "source": [ @@ -1192,7 +1192,7 @@ }, { "cell_type": "markdown", - "id": "a99826b4", + "id": "0c02ce95", "metadata": {}, "source": [ "### Logic to process end of run results.\n", @@ -1203,7 +1203,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "aaadd8ea", + "id": "a156e0ea", "metadata": {}, "outputs": [], "source": [ @@ -1394,7 +1394,7 @@ }, { "cell_type": "markdown", - "id": "8a750b27", + "id": "67791f48", "metadata": {}, "source": [ "## Executing a model\n", @@ -1407,7 +1407,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "6f41f4f7", + "id": "31e48ba5", "metadata": {}, "outputs": [], "source": [ @@ -1455,7 +1455,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "bcf70118", + "id": "99072a5b", "metadata": {}, "outputs": [], "source": [ @@ -1493,7 +1493,7 @@ }, { "cell_type": "markdown", - "id": "e8d512aa", + "id": "4c8165b1", "metadata": {}, "source": [ "### Single run of the model\n", @@ -1509,7 +1509,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "fbf01ef1", + "id": "adf424ed", "metadata": {}, "outputs": [ { @@ -1656,7 +1656,7 @@ }, { "cell_type": "markdown", - "id": "c5b39c68", + "id": "1697b886", "metadata": {}, "source": [ "### Multiple independent replications\n", @@ -1670,7 +1670,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "9c562f1d", + "id": "c4b750a7", "metadata": {}, "outputs": [ { @@ -1861,7 +1861,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "4415bf56", + "id": "97e9a462", "metadata": {}, "outputs": [ { @@ -1898,7 +1898,7 @@ }, { "cell_type": "markdown", - "id": "0466c5fa", + "id": "0016c383", "metadata": {}, "source": [ "### Visualise replications" @@ -1907,7 +1907,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "dd4f71a8", + "id": "3bae82ea", "metadata": {}, "outputs": [ { @@ -1931,7 +1931,7 @@ }, { "cell_type": "markdown", - "id": "5e0b10e3", + "id": "9ff1142b", "metadata": {}, "source": [ "## Scenario Analysis\n", @@ -1944,7 +1944,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "04872409", + "id": "215502ef", "metadata": {}, "outputs": [], "source": [ @@ -1983,7 +1983,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "e625868c", + "id": "7b3788f7", "metadata": {}, "outputs": [], "source": [ @@ -2025,7 +2025,7 @@ }, { "cell_type": "markdown", - "id": "1d3e4611", + "id": "c0fae650", "metadata": {}, "source": [ "### Script to run scenario analysis" @@ -2034,7 +2034,7 @@ { "cell_type": "code", "execution_count": 24, - "id": "efc44373", + "id": "3bf9953e", "metadata": {}, "outputs": [ { @@ -2074,7 +2074,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "e59417c4", + "id": "002db425", "metadata": {}, "outputs": [], "source": [ @@ -2105,7 +2105,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "9bf4e8fc", + "id": "169f2723", "metadata": {}, "outputs": [ { @@ -2303,7 +2303,7 @@ }, { "cell_type": "markdown", - "id": "c9363822", + "id": "fc1bc9f4", "metadata": {}, "source": [ "## End" diff --git a/src/treat_sim/model.py b/src/treat_sim/model.py index d911574..39b9508 100644 --- a/src/treat_sim/model.py +++ b/src/treat_sim/model.py @@ -300,11 +300,13 @@ def init_sampling(self): ''' Create the distributions used by the model and initialise the random seeds of each. - ''' - # create random number streams - rng_streams = np.random.default_rng(self.random_number_set) - self.seeds = rng_streams.integers(0, 999999999, size=N_STREAMS) - + ''' + # MODIFICATION. Better method for producing n non-overlapping streams + seed_sequence = np.random.SeedSequence(self.random_number_set) + + # Generate n high quality child seeds + self.seeds = seed_sequence.spawn(N_STREAMS) + # create distributions # Triage duration @@ -332,7 +334,7 @@ def init_sampling(self): # treatment of trauma patients self.treat_dist = Lognormal(self.trauma_treat_mean, - np.sqrt(self.non_trauma_treat_var), + np.sqrt(self.trauma_treat_var), random_seed=self.seeds[5]) # probability of non-trauma patient requiring treatment @@ -430,7 +432,7 @@ def execute(self): f'{self.env.now:.3f}') # sample triage duration. - self.triage_duration = self.args.triage_dist.sample() + self.triage_duration = args.triage_dist.sample() yield self.env.timeout(self.triage_duration) self.triage_complete() @@ -445,7 +447,7 @@ def execute(self): self.wait_trauma = self.env.now - start_wait # sample stablisation duration. - self.trauma_duration = self.args.trauma_dist.sample() + self.trauma_duration = args.trauma_dist.sample() yield self.env.timeout(self.trauma_duration) self.trauma_complete() @@ -463,7 +465,7 @@ def execute(self): f'{self.env.now:.3f}') # sample treatment duration. - self.treat_duration = self.args.trauma_dist.sample() + self.treat_duration = args.treat_dist.sample() yield self.env.timeout(self.treat_duration) self.treatment_complete() pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy