{ "cells": [ { "cell_type": "markdown", "id": "28401062", "metadata": {}, "source": [ "# Analysis of alternative pathway scenarios\n", "\n", "## Aims: \n", "\n", "Analyse the performance of the following scenarios:\n", "\n", "1) Base: Uses the hospitals' recorded pathway statistics in SSNAP (same as validation notebook)\n", "\n", "2) Speed: Sets 95% of patients having a scan within 4 hours of arrival, and all patients have 15 minutes arrival to scan and 15 minutes scan to needle.\n", "\n", "3) Onset-known: Sets the proportion of patients with a known onset time of stroke to the national upper quartile if currently less than the national upper quartile (leave any greater than the upper national quartile at their current level).\n", "\n", "4) Benchmark: The benchmark thrombolysis rate takes the likelihood to give thrombolysis for patients scanned within 4 hours of onset from the majority vote of the 30 hospitals with the highest predicted thrombolysis use in a standard 10k cohort set of patients. These are from Random Forests models.\n", "\n", "5) Combine *Speed* and *Onset-known*\n", "\n", "6) Combine *Speed* and *Benchmark*\n", "\n", "7) Combine *Onset-known* and *Benchmark*\n", "\n", "8) Combine *Speed*, *Onset-known* and *Benchmark*\n", "\n", "The analysis will be at a global level (all hospitals together) as well as demonstrating analysis at a hospital level.\n" ] }, { "cell_type": "markdown", "id": "1c27f9b0", "metadata": {}, "source": [ "## Load libraries" ] }, { "cell_type": "code", "execution_count": 1, "id": "dd89ef45", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "from scipy import stats\n", "\n", "from matplotlib.ticker import (MultipleLocator, FormatStrFormatter)" ] }, { "cell_type": "markdown", "id": "d5d7ca82", "metadata": {}, "source": [ "## Load data" ] }, { "cell_type": "code", "execution_count": 2, "id": "0151cbe3", "metadata": {}, "outputs": [], "source": [ "# Scenario results\n", "results = pd.read_csv('./output/scenario_results.csv')\n", "# Pathway performance paramters used in scenarios\n", "performance_base = pd.read_csv('./output/performance_base.csv')\n", "performance_speed = pd.read_csv('./output/performance_speed.csv')\n", "performance_onset = pd.read_csv('./output/performance_onset.csv')\n", "performance_speed_onset = pd.read_csv('./output/performance_speed_onset.csv')\n", "performance_speed_benchmark = \\\n", " pd.read_csv('./output/performance_speed_benchmark.csv')\n", "performance_onset_benchmark = \\\n", " pd.read_csv('./output/performance_onset_benchmark.csv')\n", "performance_speed_onset_benchmark = \\\n", " pd.read_csv('./output/performance_speed_onset_benchmark.csv')" ] }, { "cell_type": "code", "execution_count": 3, "id": "08a1bd35", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | stroke_team | \n", "thrombolysis_rate | \n", "admissions | \n", "80_plus | \n", "onset_known | \n", "known_arrival_within_4hrs | \n", "onset_arrival_mins_mu | \n", "onset_arrival_mins_sigma | \n", "scan_within_4_hrs | \n", "arrival_scan_arrival_mins_mu | \n", "arrival_scan_arrival_mins_sigma | \n", "onset_scan_4_hrs | \n", "eligable | \n", "scan_needle_mins_mu | \n", "scan_needle_mins_sigma | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "AGNOF1041H | \n", "0.154839 | \n", "671.666667 | \n", "0.425459 | \n", "0.635236 | \n", "0.681250 | \n", "4.576874 | \n", "0.557598 | \n", "0.965596 | \n", "1.665700 | \n", "1.497966 | \n", "0.935867 | \n", "0.388325 | \n", "3.669602 | \n", "0.664462 | \n", "
1 | \n", "AKCGO9726K | \n", "0.158892 | \n", "1143.333333 | \n", "0.395658 | \n", "0.970845 | \n", "0.428829 | \n", "4.625486 | \n", "0.597451 | \n", "0.955882 | \n", "2.834183 | \n", "0.999719 | \n", "0.908425 | \n", "0.419355 | \n", "2.904479 | \n", "0.874818 | \n", "
2 | \n", "AOBTM3098N | \n", "0.085885 | \n", "500.666667 | \n", "0.485470 | \n", "0.619174 | \n", "0.629032 | \n", "4.603918 | \n", "0.584882 | \n", "0.935043 | \n", "3.471419 | \n", "1.254744 | \n", "0.846435 | \n", "0.267819 | \n", "3.694918 | \n", "0.518929 | \n", "
3 | \n", "APXEE8191H | \n", "0.098634 | \n", "439.333333 | \n", "0.515679 | \n", "0.716237 | \n", "0.608051 | \n", "4.590357 | \n", "0.496452 | \n", "0.966899 | \n", "3.312930 | \n", "0.714465 | \n", "0.904505 | \n", "0.258964 | \n", "3.585094 | \n", "0.751204 | \n", "
4 | \n", "ATDID5461S | \n", "0.090689 | \n", "275.666667 | \n", "0.533546 | \n", "0.573156 | \n", "0.660338 | \n", "4.427826 | \n", "0.591373 | \n", "0.878594 | \n", "4.125690 | \n", "0.549301 | \n", "0.865455 | \n", "0.315126 | \n", "3.497262 | \n", "0.608126 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
127 | \n", "YPKYH1768F | \n", "0.105193 | \n", "250.333333 | \n", "0.321767 | \n", "0.585885 | \n", "0.720455 | \n", "4.436404 | \n", "0.569248 | \n", "0.952681 | \n", "3.779215 | \n", "0.872809 | \n", "0.844371 | \n", "0.305882 | \n", "3.982100 | \n", "0.683223 | \n", "
128 | \n", "YQMZV4284N | \n", "0.104186 | \n", "358.333333 | \n", "0.508511 | \n", "0.945116 | \n", "0.462598 | \n", "4.664536 | \n", "0.494740 | \n", "0.948936 | \n", "3.574735 | \n", "0.912298 | \n", "0.798206 | \n", "0.308989 | \n", "3.285165 | \n", "0.463749 | \n", "
129 | \n", "ZBVSO0975W | \n", "0.081602 | \n", "449.333333 | \n", "0.442130 | \n", "0.465134 | \n", "0.688995 | \n", "4.562051 | \n", "0.510524 | \n", "0.972222 | \n", "2.860226 | \n", "0.990966 | \n", "0.930952 | \n", "0.273657 | \n", "3.606046 | \n", "0.575788 | \n", "
130 | \n", "ZHCLE1578P | \n", "0.112647 | \n", "796.000000 | \n", "0.484694 | \n", "0.733668 | \n", "0.671233 | \n", "4.606557 | \n", "0.546648 | \n", "0.949830 | \n", "3.306916 | \n", "0.842940 | \n", "0.892569 | \n", "0.262788 | \n", "3.276043 | \n", "0.795401 | \n", "
131 | \n", "ZRRCV7012C | \n", "0.063058 | \n", "597.333333 | \n", "0.469504 | \n", "0.779576 | \n", "0.504653 | \n", "4.636283 | \n", "0.485394 | \n", "0.977305 | \n", "3.743456 | \n", "0.662710 | \n", "0.851959 | \n", "0.189097 | \n", "3.261270 | \n", "0.803624 | \n", "
132 rows × 15 columns
\n", "\n", " | stroke_team | \n", "scenario | \n", "admissions | \n", "thrombolysis_rate | \n", "additional_good_outcomes_per_1000_patients | \n", "patients_receiving_thrombolysis | \n", "add_good_outcomes | \n", "
---|---|---|---|---|---|---|---|
0 | \n", "AGNOF1041H | \n", "base | \n", "671.666667 | \n", "15.20 | \n", "12.76 | \n", "102.093333 | \n", "8.570467 | \n", "
1 | \n", "AKCGO9726K | \n", "base | \n", "1143.333333 | \n", "14.91 | \n", "13.21 | \n", "170.471000 | \n", "15.103433 | \n", "
2 | \n", "AOBTM3098N | \n", "base | \n", "500.666667 | \n", "7.80 | \n", "5.67 | \n", "39.052000 | \n", "2.838780 | \n", "
3 | \n", "APXEE8191H | \n", "base | \n", "439.333333 | \n", "10.40 | \n", "7.59 | \n", "45.690667 | \n", "3.334540 | \n", "
4 | \n", "ATDID5461S | \n", "base | \n", "275.666667 | \n", "9.17 | \n", "6.28 | \n", "25.278633 | \n", "1.731187 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
1051 | \n", "YPKYH1768F | \n", "speed_onset_benchmark | \n", "250.333333 | \n", "22.20 | \n", "23.54 | \n", "55.574000 | \n", "5.892847 | \n", "
1052 | \n", "YQMZV4284N | \n", "speed_onset_benchmark | \n", "358.333333 | \n", "13.51 | \n", "12.02 | \n", "48.410833 | \n", "4.307167 | \n", "
1053 | \n", "ZBVSO0975W | \n", "speed_onset_benchmark | \n", "449.333333 | \n", "21.12 | \n", "20.10 | \n", "94.899200 | \n", "9.031600 | \n", "
1054 | \n", "ZHCLE1578P | \n", "speed_onset_benchmark | \n", "796.000000 | \n", "13.89 | \n", "12.82 | \n", "110.564400 | \n", "10.204720 | \n", "
1055 | \n", "ZRRCV7012C | \n", "speed_onset_benchmark | \n", "597.333333 | \n", "12.25 | \n", "11.22 | \n", "73.173333 | \n", "6.702080 | \n", "
1056 rows × 7 columns
\n", "\n", " | percent_thrombolysis | \n", "add_good_outcomes_per_1000 | \n", "Percent increase thrombolysis | \n", "Percent increase good_outcomes | \n", "
---|---|---|---|---|
scenario | \n", "\n", " | \n", " | \n", " | \n", " |
base | \n", "11.60 | \n", "9.40 | \n", "0.00 | \n", "0.00 | \n", "
speed | \n", "12.34 | \n", "11.86 | \n", "6.37 | \n", "26.13 | \n", "
onset | \n", "13.67 | \n", "11.09 | \n", "17.86 | \n", "17.87 | \n", "
benchmark | \n", "14.51 | \n", "11.70 | \n", "25.05 | \n", "24.36 | \n", "
speed_onset | \n", "14.52 | \n", "13.98 | \n", "25.16 | \n", "48.63 | \n", "
speed_benchmark | \n", "15.43 | \n", "14.82 | \n", "33.01 | \n", "57.59 | \n", "
onset_benchmark | \n", "17.20 | \n", "13.87 | \n", "48.32 | \n", "47.53 | \n", "
speed_onset_benchmark | \n", "18.27 | \n", "17.57 | \n", "57.54 | \n", "86.82 | \n", "