{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Python demo for the 2018 BHI & BSN Data Challenge\n", "\n", "This notebook provides a simple introduction to analysing the MIMIC-III database. It was created as a demonstrator for the [2018 BHI & BSN Data Challenge](https://mimic.physionet.org/events/bhibsn-challenge/), which explores the following question:\n", "\n", "> Are patients admitted to the intensive care unit (ICU) on a weekend more likely to die in the hospital than those admitted on a weekday?\n", "\n", "We have provided an example slide template for final presentations (`slide-template.pptx`) at: https://github.com/MIT-LCP/bhi-bsn-challenge. There is no obligation to use it!\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Background on MIMIC-III\n", "\n", "MIMIC-III (‘Medical Information Mart for Intensive Care’) is a large, single-center database comprising information relating to patients admitted to critical care units at a large tertiary care hospital. \n", "\n", "Data includes vital signs, medications, laboratory measurements, observations and notes charted by care providers, fluid balance, procedure codes, diagnostic codes, imaging reports, hospital length of stay, survival data, and more. \n", "\n", "For details, see: https://mimic.physionet.org/. The data is downloaded as 26 CSV files, which can then be loaded into a database system. Scripts for loading the data into Postgres are provided in the [MIMIC Code Repository](https://mimic.physionet.org/gettingstarted/dbsetup/). A demo dataset is also available: https://mimic.physionet.org/gettingstarted/demo/\n", "\n", "Points to note:\n", "\n", "- A patient-level shift has been applied to dates. Day of week is retained. \n", "- Patients aged >89 years on first admission have been reassigned an age of ~300 years.\n", "- Patients may have multiple hospital admissions. Each hospital admission may comprise multiple ICU stays (e.g. a patient may visit the ICU, leave for surgery, and then return to the ICU for recovery, all within a single hospital admission).\n", "\n", "If you need help getting set up with access to MIMIC-III, please contact `data-challenge@physionet.org`.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Import libraries" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python2.7/site-packages/statsmodels/compat/pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.\n", " from pandas.core import datetools\n" ] } ], "source": [ "# Data processing libraries\n", "import pandas as pd\n", "import numpy as np\n", "import itertools\n", "\n", "# Database libraries\n", "import psycopg2\n", "\n", "# Stats libraries\n", "from tableone import TableOne\n", "import statsmodels.api as sm\n", "import statsmodels.formula.api as smf\n", "import scipy.stats\n", "\n", "# Image libraries\n", "# https://jakevdp.github.io/pdvega/\n", "# jupyter nbextension enable vega3 --py --sys-prefix\n", "import matplotlib.pyplot as plt\n", "import pdvega \n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Connect to the MIMIC-III database\n", "\n", "If you have created an instance of the MIMIC-III database, then you should be able to connect with the following settings (or similar). If you need help getting set up with access to MIMIC-III, please contact `data-challenge@physionet.org`." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Create a database connection\n", "user = 'XXX'\n", "password = 'XXX'\n", "host = 'localhost'\n", "dbname = 'mimic'\n", "schema = 'public, mimiciii_demo'" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Password:········\n" ] } ], "source": [ "# Connect to the database\n", "con = psycopg2.connect(dbname=dbname, user=user, host=host, \n", " password=password)\n", "cur = con.cursor()\n", "cur.execute('SET search_path to {}'.format(schema))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Extract data from MIMIC-III and assign to a Pandas DataFrame\n", "\n", "The following query extracts a simple dataset from the MIMIC-III database, comprising demographics, hospital and ICU admission times, and a severity of illness score ([OASIS](https://www.ncbi.nlm.nih.gov/pubmed/23660729)).\n", "\n", "Before running this query, you must first build the `icustay_detail` and `oasis` materialized views. Code for building these views is available in the MIMIC Code Repository:\n", "- `icustay_detail`: https://github.com/MIT-LCP/mimic-code/tree/master/concepts/demographics\n", "- `oasis`: https://github.com/MIT-LCP/mimic-code/tree/master/concepts/severityscores\n", "\n", "You will notice that our example restricts the analysis to:\n", "\n", "- first hospital admissions \n", "- patients who were `>= 16` years at time of hospital admission.\n", "- the first ICU stay (patients may move to the ICU multiple times within a hospital stay)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# Run query and assign the results to a Pandas DataFrame\n", "# Requires the icustay_detail view from:\n", "# https://github.com/MIT-LCP/mimic-code/tree/master/concepts/demographics\n", "# And the OASIS score from:\n", "# https://github.com/MIT-LCP/mimic-code/tree/master/concepts/severityscores\n", "query = \\\n", "\"\"\"\n", "WITH first_icu AS (\n", " SELECT i.subject_id, i.hadm_id, i.icustay_id, i.gender, i.admittime admittime_hospital, \n", " i.dischtime dischtime_hospital, i.los_hospital, i.age, i.admission_type, \n", " i.hospital_expire_flag, i.intime intime_icu, i.outtime outtime_icu, i.los_icu, \n", " s.first_careunit\n", " FROM icustay_detail i\n", " LEFT JOIN icustays s\n", " ON i.icustay_id = s.icustay_id\n", " WHERE i.hospstay_seq = 1\n", " AND i.icustay_seq = 1\n", " AND i.age >= 16\n", ")\n", "SELECT f.*, o.icustay_expire_flag, o.oasis, o.oasis_prob\n", "FROM first_icu f\n", "LEFT JOIN oasis o\n", "ON f.icustay_id = o.icustay_id;\n", "\"\"\"\n", "\n", "data = pd.read_sql_query(query,con)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Check the extracted data\n", "\n", "It is always a good idea to inspect the data after you have extracted it. We will look at the first six patients (rows), and then check the number of rows, and get some summary statistics of the dataset." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index([u'subject_id', u'hadm_id', u'icustay_id', u'gender',\n", " u'admittime_hospital', u'dischtime_hospital', u'los_hospital', u'age',\n", " u'admission_type', u'hospital_expire_flag', u'intime_icu',\n", " u'outtime_icu', u'los_icu', u'first_careunit', u'icustay_expire_flag',\n", " u'oasis', u'oasis_prob'],\n", " dtype='object')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.columns" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
subject_idhadm_idicustay_idgenderadmittime_hospitaldischtime_hospitallos_hospitalageadmission_typehospital_expire_flagintime_icuouttime_iculos_icufirst_careuniticustay_expire_flagoasisoasis_prob
010076198503201006M2107-03-21 21:16:002107-03-30 12:00:008.613968.8636EMERGENCY12107-03-24 04:06:142107-03-31 06:55:097.1173MICU1420.305849
142321114648201204F2121-12-07 20:49:002121-12-12 16:40:004.827180.5627EMERGENCY02121-12-07 20:50:362121-12-09 18:43:581.9121CSRU0370.188911
210045126949203766F2129-11-24 00:31:002129-12-01 01:45:007.051468.6669EMERGENCY12129-11-24 22:46:572129-12-01 06:03:556.3034MICU1480.486353
310104177678204201F2120-08-24 17:39:002120-08-31 13:12:006.814670.5196EMERGENCY02120-08-24 23:47:232120-08-25 15:41:490.6628MICU0290.077479
410017199207204881F2149-05-26 17:19:002149-06-03 18:42:008.057673.6792EMERGENCY02149-05-29 18:52:292149-05-31 22:19:172.1436CCU0300.087098
\n", "
" ], "text/plain": [ " subject_id hadm_id icustay_id gender admittime_hospital \\\n", "0 10076 198503 201006 M 2107-03-21 21:16:00 \n", "1 42321 114648 201204 F 2121-12-07 20:49:00 \n", "2 10045 126949 203766 F 2129-11-24 00:31:00 \n", "3 10104 177678 204201 F 2120-08-24 17:39:00 \n", "4 10017 199207 204881 F 2149-05-26 17:19:00 \n", "\n", " dischtime_hospital los_hospital age admission_type \\\n", "0 2107-03-30 12:00:00 8.6139 68.8636 EMERGENCY \n", "1 2121-12-12 16:40:00 4.8271 80.5627 EMERGENCY \n", "2 2129-12-01 01:45:00 7.0514 68.6669 EMERGENCY \n", "3 2120-08-31 13:12:00 6.8146 70.5196 EMERGENCY \n", "4 2149-06-03 18:42:00 8.0576 73.6792 EMERGENCY \n", "\n", " hospital_expire_flag intime_icu outtime_icu los_icu \\\n", "0 1 2107-03-24 04:06:14 2107-03-31 06:55:09 7.1173 \n", "1 0 2121-12-07 20:50:36 2121-12-09 18:43:58 1.9121 \n", "2 1 2129-11-24 22:46:57 2129-12-01 06:03:55 6.3034 \n", "3 0 2120-08-24 23:47:23 2120-08-25 15:41:49 0.6628 \n", "4 0 2149-05-29 18:52:29 2149-05-31 22:19:17 2.1436 \n", "\n", " first_careunit icustay_expire_flag oasis oasis_prob \n", "0 MICU 1 42 0.305849 \n", "1 CSRU 0 37 0.188911 \n", "2 MICU 1 48 0.486353 \n", "3 MICU 0 29 0.077479 \n", "4 CCU 0 30 0.087098 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countmeanstdmin25%50%75%max
subject_id99.026324.37373716202.63565810006.00000010068.00000040124.00000042278.00000044228.000000
hadm_id99.0151749.45454528975.138680100375.000000127326.000000157466.000000174868.000000199395.000000
icustay_id99.0249167.94949527983.121905201006.000000224042.000000246080.000000271795.500000298685.000000
los_hospital99.010.00678514.1035710.0382003.5430506.83060011.922250123.984700
age99.089.07701564.85591917.19200065.70925076.93190085.233050300.003400
hospital_expire_flag99.00.3232320.4700910.0000000.0000000.0000001.0000001.000000
los_icu99.04.5863556.6774010.1059001.1237002.0141004.59700035.406500
icustay_expire_flag99.00.2222220.4178550.0000000.0000000.0000000.0000001.000000
oasis99.034.7474758.65712312.00000029.00000034.00000039.00000056.000000
oasis_prob99.00.1940930.1627870.0095220.0774790.1370990.2311020.724202
\n", "
" ], "text/plain": [ " count mean std min \\\n", "subject_id 99.0 26324.373737 16202.635658 10006.000000 \n", "hadm_id 99.0 151749.454545 28975.138680 100375.000000 \n", "icustay_id 99.0 249167.949495 27983.121905 201006.000000 \n", "los_hospital 99.0 10.006785 14.103571 0.038200 \n", "age 99.0 89.077015 64.855919 17.192000 \n", "hospital_expire_flag 99.0 0.323232 0.470091 0.000000 \n", "los_icu 99.0 4.586355 6.677401 0.105900 \n", "icustay_expire_flag 99.0 0.222222 0.417855 0.000000 \n", "oasis 99.0 34.747475 8.657123 12.000000 \n", "oasis_prob 99.0 0.194093 0.162787 0.009522 \n", "\n", " 25% 50% 75% \\\n", "subject_id 10068.000000 40124.000000 42278.000000 \n", "hadm_id 127326.000000 157466.000000 174868.000000 \n", "icustay_id 224042.000000 246080.000000 271795.500000 \n", "los_hospital 3.543050 6.830600 11.922250 \n", "age 65.709250 76.931900 85.233050 \n", "hospital_expire_flag 0.000000 0.000000 1.000000 \n", "los_icu 1.123700 2.014100 4.597000 \n", "icustay_expire_flag 0.000000 0.000000 0.000000 \n", "oasis 29.000000 34.000000 39.000000 \n", "oasis_prob 0.077479 0.137099 0.231102 \n", "\n", " max \n", "subject_id 44228.000000 \n", "hadm_id 199395.000000 \n", "icustay_id 298685.000000 \n", "los_hospital 123.984700 \n", "age 300.003400 \n", "hospital_expire_flag 1.000000 \n", "los_icu 35.406500 \n", "icustay_expire_flag 1.000000 \n", "oasis 56.000000 \n", "oasis_prob 0.724202 " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.describe().T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Add day of week to DataFrame\n", "\n", "If we are going to examine the weekend effect, we need to pull this out of the dataset, as you can see, all we have above are dates. We will define a weekend, as anytime between Saturday (00:00:00) until Sunday (23:59:59). The dates above are shifted, and that's why they look odd, but they are matched on the day of week, so this aspect is preserved." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
subject_idhadm_idicustay_idgenderadmittime_hospitaldischtime_hospitallos_hospitalageadmission_typehospital_expire_flag...los_icufirst_careuniticustay_expire_flagoasisoasis_probadmitday_hospitaldischday_hospitalinday_icuinday_icu_seqoutday_icu
027513163557200003M2199-08-02 17:02:002199-08-22 19:00:0020.081948.2960EMERGENCY0...5.8884SICU0350.152892FridayThursdayFriday4Thursday
120707129310200007M2109-02-17 10:02:002109-02-20 15:47:003.239643.3450EMERGENCY0...1.2914CCU0260.054187SundayWednesdaySunday6Monday
29514127229200014M2105-02-16 23:15:002105-02-21 13:46:004.604984.7300EMERGENCY0...1.7338SICU0560.724202MondaySaturdayMonday0Wednesday
321789112486200019F2178-07-08 09:02:002178-07-11 06:45:002.904982.8831EMERGENCY1...3.0594CCU1470.454600WednesdaySaturdayWednesday2Saturday
441710181955200028M2133-10-29 10:00:002133-11-01 14:54:003.204264.8677ELECTIVE0...2.9038CCU0350.152892ThursdaySundayThursday3Sunday
\n", "

5 rows × 22 columns

\n", "
" ], "text/plain": [ " subject_id hadm_id icustay_id gender admittime_hospital \\\n", "0 27513 163557 200003 M 2199-08-02 17:02:00 \n", "1 20707 129310 200007 M 2109-02-17 10:02:00 \n", "2 9514 127229 200014 M 2105-02-16 23:15:00 \n", "3 21789 112486 200019 F 2178-07-08 09:02:00 \n", "4 41710 181955 200028 M 2133-10-29 10:00:00 \n", "\n", " dischtime_hospital los_hospital age admission_type \\\n", "0 2199-08-22 19:00:00 20.0819 48.2960 EMERGENCY \n", "1 2109-02-20 15:47:00 3.2396 43.3450 EMERGENCY \n", "2 2105-02-21 13:46:00 4.6049 84.7300 EMERGENCY \n", "3 2178-07-11 06:45:00 2.9049 82.8831 EMERGENCY \n", "4 2133-11-01 14:54:00 3.2042 64.8677 ELECTIVE \n", "\n", " hospital_expire_flag ... los_icu first_careunit \\\n", "0 0 ... 5.8884 SICU \n", "1 0 ... 1.2914 CCU \n", "2 0 ... 1.7338 SICU \n", "3 1 ... 3.0594 CCU \n", "4 0 ... 2.9038 CCU \n", "\n", " icustay_expire_flag oasis oasis_prob admitday_hospital \\\n", "0 0 35 0.152892 Friday \n", "1 0 26 0.054187 Sunday \n", "2 0 56 0.724202 Monday \n", "3 1 47 0.454600 Wednesday \n", "4 0 35 0.152892 Thursday \n", "\n", " dischday_hospital inday_icu inday_icu_seq outday_icu \n", "0 Thursday Friday 4 Thursday \n", "1 Wednesday Sunday 6 Monday \n", "2 Saturday Monday 0 Wednesday \n", "3 Saturday Wednesday 2 Saturday \n", "4 Sunday Thursday 3 Sunday \n", "\n", "[5 rows x 22 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data['admitday_hospital'] = data.admittime_hospital.dt.weekday_name\n", "data['dischday_hospital'] = data.dischtime_hospital.dt.weekday_name\n", "data['inday_icu'] = data.intime_icu.dt.weekday_name\n", "data['inday_icu_seq'] = data.intime_icu.dt.weekday\n", "data['outday_icu'] = data.outtime_icu.dt.weekday_name\n", "data.head()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Friday 6263\n", "Tuesday 6141\n", "Monday 6097\n", "Wednesday 5985\n", "Thursday 5876\n", "Saturday 4235\n", "Sunday 3960\n", "Name: inday_icu, dtype: int64" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data['inday_icu'].value_counts()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "weekday 30362\n", "weekend 8195\n", "Name: inday_icu_wkd, dtype: int64" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# create weekday vs weekend column for icu_intime \n", "data['inday_icu_wkd'] = np.where(data.intime_icu.dt.weekday <= 4, \n", " 'weekday','weekend')\n", "data['inday_icu_wkd'].value_counts()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Produce some Summary Statistics by DOW and Weekday vs. Weekend\n", "\n", "Next, it's good to look at some basic summaries of the data. We will compute simple averages and percentages/counts for each of the variables we have extracted, and look at it by day of week and weekend." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index([u'subject_id', u'hadm_id', u'icustay_id', u'gender',\n", " u'admittime_hospital', u'dischtime_hospital', u'los_hospital', u'age',\n", " u'admission_type', u'hospital_expire_flag', u'intime_icu',\n", " u'outtime_icu', u'los_icu', u'first_careunit', u'icustay_expire_flag',\n", " u'oasis', u'oasis_prob', u'admitday_hospital', u'dischday_hospital',\n", " u'inday_icu', u'inday_icu_seq', u'outday_icu', u'inday_icu_wkd'],\n", " dtype='object')" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.columns" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Grouped by inday_icu
FridayMondaySaturdaySundayThursdayTuesdayWednesdayisnull
variablelevel
n6263609742353960587661415985
admission_typeELECTIVE1016 (16.22)1265 (20.75)162 (3.83)101 (2.55)999 (17.0)1292 (21.04)1243 (20.77)0
EMERGENCY5118 (81.72)4687 (76.87)3852 (90.96)3681 (92.95)4746 (80.77)4704 (76.6)4600 (76.86)
URGENT129 (2.06)145 (2.38)221 (5.22)178 (4.49)131 (2.23)145 (2.36)142 (2.37)
age74.56 (53.22)73.13 (51.37)73.92 (58.58)75.26 (60.66)75.51 (55.46)75.48 (55.22)74.16 (53.88)0
first_careunitCCU838 (13.38)918 (15.06)695 (16.41)621 (15.68)850 (14.47)919 (14.96)851 (14.22)0
CSRU1416 (22.61)1632 (26.77)237 (5.6)194 (4.9)1282 (21.82)1575 (25.65)1268 (21.19)
MICU2139 (34.15)1940 (31.82)1765 (41.68)1706 (43.08)2020 (34.38)2019 (32.88)2020 (33.75)
SICU1044 (16.67)865 (14.19)743 (17.54)743 (18.76)996 (16.95)933 (15.19)1038 (17.34)
TSICU826 (13.19)742 (12.17)795 (18.77)696 (17.58)728 (12.39)695 (11.32)808 (13.5)
genderF2662 (42.5)2559 (41.97)1857 (43.85)1736 (43.84)2603 (44.3)2671 (43.49)2636 (44.04)0
M3601 (57.5)3538 (58.03)2378 (56.15)2224 (56.16)3273 (55.7)3470 (56.51)3349 (55.96)
hospital_expire_flag05576 (89.03)5468 (89.68)3658 (86.38)3388 (85.56)5202 (88.53)5491 (89.42)5350 (89.39)0
1687 (10.97)629 (10.32)577 (13.62)572 (14.44)674 (11.47)650 (10.58)635 (10.61)
icustay_expire_flag05768 (92.1)5650 (92.67)3811 (89.99)3548 (89.6)5399 (91.88)5673 (92.38)5514 (92.13)0
1495 (7.9)447 (7.33)424 (10.01)412 (10.4)477 (8.12)468 (7.62)471 (7.87)
inday_icu_wkdweekday6263 (100.0)6097 (100.0)5876 (100.0)6141 (100.0)5985 (100.0)0
weekend4235 (100.0)3960 (100.0)
los_hospital10.23 (11.61)9.71 (9.92)10.00 (10.84)9.82 (10.70)9.88 (10.90)9.86 (10.58)9.77 (10.22)0
los_icu4.15 (6.19)3.83 (5.52)4.42 (6.58)4.44 (6.29)3.96 (6.12)3.80 (5.65)4.04 (5.94)2
oasis31.17 (9.02)31.21 (8.77)31.49 (9.27)32.07 (9.02)31.10 (8.82)30.90 (8.77)30.58 (9.11)0
oasis_prob0.14 (0.14)0.14 (0.14)0.15 (0.15)0.16 (0.15)0.14 (0.14)0.14 (0.14)0.14 (0.14)0
\n", "
" ], "text/plain": [ " Grouped by inday_icu \\\n", " Friday Monday \n", "variable level \n", "n 6263 6097 \n", "admission_type ELECTIVE 1016 (16.22) 1265 (20.75) \n", " EMERGENCY 5118 (81.72) 4687 (76.87) \n", " URGENT 129 (2.06) 145 (2.38) \n", "age 74.56 (53.22) 73.13 (51.37) \n", "first_careunit CCU 838 (13.38) 918 (15.06) \n", " CSRU 1416 (22.61) 1632 (26.77) \n", " MICU 2139 (34.15) 1940 (31.82) \n", " SICU 1044 (16.67) 865 (14.19) \n", " TSICU 826 (13.19) 742 (12.17) \n", "gender F 2662 (42.5) 2559 (41.97) \n", " M 3601 (57.5) 3538 (58.03) \n", "hospital_expire_flag 0 5576 (89.03) 5468 (89.68) \n", " 1 687 (10.97) 629 (10.32) \n", "icustay_expire_flag 0 5768 (92.1) 5650 (92.67) \n", " 1 495 (7.9) 447 (7.33) \n", "inday_icu_wkd weekday 6263 (100.0) 6097 (100.0) \n", " weekend \n", "los_hospital 10.23 (11.61) 9.71 (9.92) \n", "los_icu 4.15 (6.19) 3.83 (5.52) \n", "oasis 31.17 (9.02) 31.21 (8.77) \n", "oasis_prob 0.14 (0.14) 0.14 (0.14) \n", "\n", " \\\n", " Saturday Sunday Thursday \n", "variable level \n", "n 4235 3960 5876 \n", "admission_type ELECTIVE 162 (3.83) 101 (2.55) 999 (17.0) \n", " EMERGENCY 3852 (90.96) 3681 (92.95) 4746 (80.77) \n", " URGENT 221 (5.22) 178 (4.49) 131 (2.23) \n", "age 73.92 (58.58) 75.26 (60.66) 75.51 (55.46) \n", "first_careunit CCU 695 (16.41) 621 (15.68) 850 (14.47) \n", " CSRU 237 (5.6) 194 (4.9) 1282 (21.82) \n", " MICU 1765 (41.68) 1706 (43.08) 2020 (34.38) \n", " SICU 743 (17.54) 743 (18.76) 996 (16.95) \n", " TSICU 795 (18.77) 696 (17.58) 728 (12.39) \n", "gender F 1857 (43.85) 1736 (43.84) 2603 (44.3) \n", " M 2378 (56.15) 2224 (56.16) 3273 (55.7) \n", "hospital_expire_flag 0 3658 (86.38) 3388 (85.56) 5202 (88.53) \n", " 1 577 (13.62) 572 (14.44) 674 (11.47) \n", "icustay_expire_flag 0 3811 (89.99) 3548 (89.6) 5399 (91.88) \n", " 1 424 (10.01) 412 (10.4) 477 (8.12) \n", "inday_icu_wkd weekday 5876 (100.0) \n", " weekend 4235 (100.0) 3960 (100.0) \n", "los_hospital 10.00 (10.84) 9.82 (10.70) 9.88 (10.90) \n", "los_icu 4.42 (6.58) 4.44 (6.29) 3.96 (6.12) \n", "oasis 31.49 (9.27) 32.07 (9.02) 31.10 (8.82) \n", "oasis_prob 0.15 (0.15) 0.16 (0.15) 0.14 (0.14) \n", "\n", " \n", " Tuesday Wednesday isnull \n", "variable level \n", "n 6141 5985 \n", "admission_type ELECTIVE 1292 (21.04) 1243 (20.77) 0 \n", " EMERGENCY 4704 (76.6) 4600 (76.86) \n", " URGENT 145 (2.36) 142 (2.37) \n", "age 75.48 (55.22) 74.16 (53.88) 0 \n", "first_careunit CCU 919 (14.96) 851 (14.22) 0 \n", " CSRU 1575 (25.65) 1268 (21.19) \n", " MICU 2019 (32.88) 2020 (33.75) \n", " SICU 933 (15.19) 1038 (17.34) \n", " TSICU 695 (11.32) 808 (13.5) \n", "gender F 2671 (43.49) 2636 (44.04) 0 \n", " M 3470 (56.51) 3349 (55.96) \n", "hospital_expire_flag 0 5491 (89.42) 5350 (89.39) 0 \n", " 1 650 (10.58) 635 (10.61) \n", "icustay_expire_flag 0 5673 (92.38) 5514 (92.13) 0 \n", " 1 468 (7.62) 471 (7.87) \n", "inday_icu_wkd weekday 6141 (100.0) 5985 (100.0) 0 \n", " weekend \n", "los_hospital 9.86 (10.58) 9.77 (10.22) 0 \n", "los_icu 3.80 (5.65) 4.04 (5.94) 2 \n", "oasis 30.90 (8.77) 30.58 (9.11) 0 \n", "oasis_prob 0.14 (0.14) 0.14 (0.14) 0 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "columns = ['gender', 'los_hospital', 'age', 'admission_type', 'hospital_expire_flag', \n", " 'los_icu','icustay_expire_flag', 'oasis', 'oasis_prob', 'first_careunit',\n", " 'inday_icu_wkd']\n", "\n", "groupby = 'inday_icu'\n", "\n", "pval = False\n", "\n", "categorical = ['gender','admission_type','hospital_expire_flag','icustay_expire_flag',\n", " 'first_careunit','inday_icu_wkd']\n", "\n", "t = TableOne(data, columns=columns, categorical=categorical, groupby=groupby, pval=pval)\n", "t.tableone" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Grouped by inday_icu_wkd
isnullweekdayweekend
variablelevel
n303628195
admission_typeELECTIVE05815 (19.15)263 (3.21)
EMERGENCY23855 (78.57)7533 (91.92)
URGENT692 (2.28)399 (4.87)
age074.56 (53.84)74.57 (59.59)
first_careunitCCU04376 (14.41)1316 (16.06)
CSRU7173 (23.62)431 (5.26)
MICU10138 (33.39)3471 (42.36)
SICU4876 (16.06)1486 (18.13)
TSICU3799 (12.51)1491 (18.19)
genderF013131 (43.25)3593 (43.84)
M17231 (56.75)4602 (56.16)
hospital_expire_flag0027087 (89.21)7046 (85.98)
13275 (10.79)1149 (14.02)
icustay_expire_flag0028004 (92.23)7359 (89.8)
12358 (7.77)836 (10.2)
los_hospital09.89 (10.67)9.91 (10.77)
los_icu23.96 (5.89)4.43 (6.44)
oasis030.99 (8.90)31.77 (9.15)
oasis_prob00.14 (0.14)0.15 (0.15)
\n", "
" ], "text/plain": [ " Grouped by inday_icu_wkd \\\n", " isnull weekday \n", "variable level \n", "n 30362 \n", "admission_type ELECTIVE 0 5815 (19.15) \n", " EMERGENCY 23855 (78.57) \n", " URGENT 692 (2.28) \n", "age 0 74.56 (53.84) \n", "first_careunit CCU 0 4376 (14.41) \n", " CSRU 7173 (23.62) \n", " MICU 10138 (33.39) \n", " SICU 4876 (16.06) \n", " TSICU 3799 (12.51) \n", "gender F 0 13131 (43.25) \n", " M 17231 (56.75) \n", "hospital_expire_flag 0 0 27087 (89.21) \n", " 1 3275 (10.79) \n", "icustay_expire_flag 0 0 28004 (92.23) \n", " 1 2358 (7.77) \n", "los_hospital 0 9.89 (10.67) \n", "los_icu 2 3.96 (5.89) \n", "oasis 0 30.99 (8.90) \n", "oasis_prob 0 0.14 (0.14) \n", "\n", " \n", " weekend \n", "variable level \n", "n 8195 \n", "admission_type ELECTIVE 263 (3.21) \n", " EMERGENCY 7533 (91.92) \n", " URGENT 399 (4.87) \n", "age 74.57 (59.59) \n", "first_careunit CCU 1316 (16.06) \n", " CSRU 431 (5.26) \n", " MICU 3471 (42.36) \n", " SICU 1486 (18.13) \n", " TSICU 1491 (18.19) \n", "gender F 3593 (43.84) \n", " M 4602 (56.16) \n", "hospital_expire_flag 0 7046 (85.98) \n", " 1 1149 (14.02) \n", "icustay_expire_flag 0 7359 (89.8) \n", " 1 836 (10.2) \n", "los_hospital 9.91 (10.77) \n", "los_icu 4.43 (6.44) \n", "oasis 31.77 (9.15) \n", "oasis_prob 0.15 (0.15) " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "columns = ['gender', 'los_hospital', 'age', 'admission_type', 'hospital_expire_flag', \n", " 'los_icu','icustay_expire_flag', 'oasis', 'oasis_prob', 'first_careunit']\n", "\n", "groupby = 'inday_icu_wkd'\n", "\n", "pval = False\n", "\n", "categorical = ['gender','admission_type','hospital_expire_flag','icustay_expire_flag',\n", " 'first_careunit']\n", "\n", "t = TableOne(data, columns=columns, categorical=categorical, groupby=groupby, pval=pval)\n", "t.tableone" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It looks like there's a higher rate of hospital mortality (14.0% vs 10.8%) and ICU mortality (10.2% vs 7.8%) on weekends when compared to weekdays. There are also statistically significant differences between several other important variables, including: admission type, disease severity (OASIS), and the patient's first care unit, suggesting that these groups may be fundamentally different in some way. Let's explore this a little further." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Plot the data\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
admission_typeELECTIVEEMERGENCYURGENT
inday_icu_seq
00.0205530.1243870.137931
10.0193500.1303150.082759
20.0265490.1273910.112676
30.0270270.1331650.114504
40.0265750.1266120.093023
50.0802470.1370720.162896
60.0891090.1469710.123596
\n", "
" ], "text/plain": [ "admission_type ELECTIVE EMERGENCY URGENT\n", "inday_icu_seq \n", "0 0.020553 0.124387 0.137931\n", "1 0.019350 0.130315 0.082759\n", "2 0.026549 0.127391 0.112676\n", "3 0.027027 0.133165 0.114504\n", "4 0.026575 0.126612 0.093023\n", "5 0.080247 0.137072 0.162896\n", "6 0.089109 0.146971 0.123596" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Pivot data to summarise by day\n", "dat_dow = data.groupby(['admission_type',\n", " 'inday_icu_seq'])['hospital_expire_flag'].mean().reset_index()\n", "\n", "dat_dow = dat_dow.pivot(index='inday_icu_seq', \n", " columns='admission_type', values='hospital_expire_flag')\n", "\n", "dat_dow" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n" ] }, "metadata": { "jupyter-vega3": "#947caf96-c17f-4466-ad0c-6634cc666d2a" }, "output_type": "display_data" }, { "data": { "application/javascript": [ "var spec = {\"selection\": {\"grid\": {\"bind\": \"scales\", \"type\": \"interval\"}}, \"encoding\": {\"y\": {\"field\": \"Hospital mortality rate\", \"type\": \"quantitative\"}, \"x\": {\"field\": \"inday_icu_seq\", \"type\": \"quantitative\"}, \"color\": {\"field\": \"variable\", \"type\": \"nominal\"}}, \"height\": 300, \"width\": 450, \"$schema\": \"https://vega.github.io/schema/vega-lite/v2.json\", \"mark\": \"line\", \"data\": {\"values\": [{\"variable\": \"ELECTIVE\", \"inday_icu_seq\": 0, \"Hospital mortality rate\": 0.020553359683794466}, {\"variable\": \"ELECTIVE\", \"inday_icu_seq\": 1, \"Hospital mortality rate\": 0.01934984520123839}, {\"variable\": \"ELECTIVE\", \"inday_icu_seq\": 2, \"Hospital mortality rate\": 0.02654867256637168}, {\"variable\": \"ELECTIVE\", \"inday_icu_seq\": 3, \"Hospital mortality rate\": 0.02702702702702703}, {\"variable\": \"ELECTIVE\", \"inday_icu_seq\": 4, \"Hospital mortality rate\": 0.0265748031496063}, {\"variable\": \"ELECTIVE\", \"inday_icu_seq\": 5, \"Hospital mortality rate\": 0.08024691358024691}, {\"variable\": \"ELECTIVE\", \"inday_icu_seq\": 6, \"Hospital mortality rate\": 0.0891089108910891}, {\"variable\": \"EMERGENCY\", \"inday_icu_seq\": 0, \"Hospital mortality rate\": 0.12438660123746532}, {\"variable\": \"EMERGENCY\", \"inday_icu_seq\": 1, \"Hospital mortality rate\": 0.13031462585034015}, {\"variable\": \"EMERGENCY\", \"inday_icu_seq\": 2, \"Hospital mortality rate\": 0.12739130434782608}, {\"variable\": \"EMERGENCY\", \"inday_icu_seq\": 3, \"Hospital mortality rate\": 0.13316477033291194}, {\"variable\": \"EMERGENCY\", \"inday_icu_seq\": 4, \"Hospital mortality rate\": 0.12661195779601406}, {\"variable\": \"EMERGENCY\", \"inday_icu_seq\": 5, \"Hospital mortality rate\": 0.13707165109034267}, {\"variable\": \"EMERGENCY\", \"inday_icu_seq\": 6, \"Hospital mortality rate\": 0.1469709318120076}, {\"variable\": \"URGENT\", \"inday_icu_seq\": 0, \"Hospital mortality rate\": 0.13793103448275862}, {\"variable\": \"URGENT\", \"inday_icu_seq\": 1, \"Hospital mortality rate\": 0.08275862068965517}, {\"variable\": \"URGENT\", \"inday_icu_seq\": 2, \"Hospital mortality rate\": 0.11267605633802817}, {\"variable\": \"URGENT\", \"inday_icu_seq\": 3, \"Hospital mortality rate\": 0.11450381679389313}, {\"variable\": \"URGENT\", \"inday_icu_seq\": 4, \"Hospital mortality rate\": 0.09302325581395349}, {\"variable\": \"URGENT\", \"inday_icu_seq\": 5, \"Hospital mortality rate\": 0.16289592760180996}, {\"variable\": \"URGENT\", \"inday_icu_seq\": 6, \"Hospital mortality rate\": 0.12359550561797752}]}};\n", "var selector = \"#947caf96-c17f-4466-ad0c-6634cc666d2a\";\n", "var type = \"vega-lite\";\n", "\n", "var output_area = this;\n", "require(['nbextensions/jupyter-vega3/index'], function(vega) {\n", " vega.render(selector, spec, type, output_area);\n", "}, function (err) {\n", " if (err.requireType !== 'scripterror') {\n", " throw(err);\n", " }\n", "});\n" ] }, "metadata": { "jupyter-vega3": "#947caf96-c17f-4466-ad0c-6634cc666d2a" }, "output_type": "display_data" }, { "data": { "image/png": "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" }, "metadata": { "jupyter-vega3": "#947caf96-c17f-4466-ad0c-6634cc666d2a" }, "output_type": "display_data" } ], "source": [ "# day_map = {0:'Mon', 1:'Tue', 2:'Wed', 3:'Thu', 4:'Fri', 5:'Sat', 6:'Sun'}\n", "dat_dow.vgplot.line(value_name='Hospital mortality rate')" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
admission_typeELECTIVEEMERGENCYURGENT
inday_icu_wkd
weekday0.0237320.1283590.108382
weekend0.0836500.1419090.145363
\n", "
" ], "text/plain": [ "admission_type ELECTIVE EMERGENCY URGENT\n", "inday_icu_wkd \n", "weekday 0.023732 0.128359 0.108382\n", "weekend 0.083650 0.141909 0.145363" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dat_wkd = data.groupby(['admission_type','inday_icu_wkd'])['hospital_expire_flag'].mean().reset_index()\n", "dat_wkd = dat_wkd.pivot(index='inday_icu_wkd', columns='admission_type', values='hospital_expire_flag')\n", "dat_wkd.head()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n" ] }, "metadata": { "jupyter-vega3": "#5ee9966a-ba11-4902-afdb-475556325e20" }, "output_type": "display_data" }, { "data": { "application/javascript": [ "var spec = {\"selection\": {\"grid\": {\"bind\": \"scales\", \"type\": \"interval\"}}, \"encoding\": {\"y\": {\"field\": \"Hospital mortality rate\", \"type\": \"quantitative\"}, \"x\": {\"field\": \"inday_icu_wkd\", \"type\": \"nominal\"}, \"color\": {\"field\": \"variable\", \"type\": \"nominal\"}}, \"height\": 300, \"width\": 450, \"$schema\": \"https://vega.github.io/schema/vega-lite/v2.json\", \"mark\": \"line\", \"data\": {\"values\": [{\"variable\": \"ELECTIVE\", \"Hospital mortality rate\": 0.023731728288907995, \"inday_icu_wkd\": \"weekday\"}, {\"variable\": \"ELECTIVE\", \"Hospital mortality rate\": 0.08365019011406843, \"inday_icu_wkd\": \"weekend\"}, {\"variable\": \"EMERGENCY\", \"Hospital mortality rate\": 0.1283588346258646, \"inday_icu_wkd\": \"weekday\"}, {\"variable\": \"EMERGENCY\", \"Hospital mortality rate\": 0.14190893402362936, \"inday_icu_wkd\": \"weekend\"}, {\"variable\": \"URGENT\", \"Hospital mortality rate\": 0.10838150289017341, \"inday_icu_wkd\": \"weekday\"}, {\"variable\": \"URGENT\", \"Hospital mortality rate\": 0.14536340852130325, \"inday_icu_wkd\": \"weekend\"}]}};\n", "var selector = \"#5ee9966a-ba11-4902-afdb-475556325e20\";\n", "var type = \"vega-lite\";\n", "\n", "var output_area = this;\n", "require(['nbextensions/jupyter-vega3/index'], function(vega) {\n", " vega.render(selector, spec, type, output_area);\n", "}, function (err) {\n", " if (err.requireType !== 'scripterror') {\n", " throw(err);\n", " }\n", "});\n" ] }, "metadata": { "jupyter-vega3": "#5ee9966a-ba11-4902-afdb-475556325e20" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAF+CAYAAADKnc2YAAAgAElEQVR4Xu2dCZhcVZn+f7e6s5CwCoTFZEAjiIiA4gLqjDAuCCqLGAzIKOiA4owi6h+COiQZVBJcxt1hVIRxZAkubErADTdEEQUUR3BksSOYsIUle7ru/3k7p6BS6eq+1X3r1j1V73keHtJd957znd93k377O9/9vgQPEzABEzABEzABEzCBwgkkha/oBU3ABEzABEzABEzABLAI80NgAiZgAiZgAiZgAh0gYBHWAehe0gRMwARMwARMwAQswvwMmIAJmIAJmIAJmEAHCFiEdQC6lzQBEzABEzABEzABizA/AyZgAiZgAiZgAibQAQJFi7B+YBfgcWDpCPvdHngQqNZdszuwFri7A5y8pAmYgAmYgAmYgAnkSqBIETYFuBa4BTgQOAu4uGE3E4EZwHeBA4CHYOgNzgvCdZsDEnJHAoO5kvBkJmACJmACJmACJlAggSJF2LHAHsCZwFTgTmA34NG6/b4iiLOnh2sfBmYBzwn3yd6DgZ8AKwvk5KVMwARMwARMwARMIFcCRYqws4ErgetDdOv7wHHAfQ07mgD8HtgfkAh7A3AesEW47h+BH+VKwZOZgAmYgAmYgAmYQMEEihRhVwHzgRuDCNNR5BkhIla/7cnhyLImwhQJOwU4HJgG/BKYCdy/cOHCuWmazqu/ebvttlt90EEHaQ4PEzABEzABE+hFAnfPnDnzab248dj2XKQIOxG4C1AErFFojSTCjgeUC/a5cNFFwCeDmNuE94IFC9I5c+YUua/YfG57TcAETMAEupjAn//853TmzJll+Tn4ZUAv1h00Qi63Trz+A9g7nIDVe+czwA7AMQ0v63WFB4t00lEhoiVHKOdrMbAXMD28CakkfI1GgfZK4K3h6HJL4J7whqWOKi3CuuIx9CZMwARMwATyIlAyEfYWQD+7Pz+CiJII0+eK3jXme0uE7QocYRE2vidEgk+5XYpsaewD3AromPKjIVesJsJ05Kg3KCW0dN8XgHeE+94MfK2ZKY6Ejc9JvtsETMAETCBuAjmKsPcC+wFvD6Wl9LVesFOKkHK6/wt4DPg48ClgDfBZ4K/hhTr9bH9eeBlP31cq0cJQ4eDq8Ocfh9zvS8PXJwDXAaeFoEu9CFNETPnlEna6//8Bt8XsrSIjYTVOyuuS0lWtsFaGlLTKUqwY6SaLsFaQ+loTMAETMIFuI5CjCFNO9iLgBcCfgDuC8Po1cBnwr8By4H/Cn78C3ATsCSwLwZT3hXxuzfWr8PNf+eASWRJ4EnUvByTCrgmBGQk2rfXskH6kSNgbgRuC0PsI8CbgZeFE7f5YfdgJEdZWVhZhbcXryU3ABEzABEpOIEcRtg3wx1A6Si/VSQTpFGsgHA+qmoG+fmeDCPsGMDdgqo9kScy9OBReV1RN+d41EabjSKUoSVCdDOilO32mF/okwk4H/hDywc8BXhNO1lRTVHZFOSzConSbjTYBEzABEzCB4QnkKMK0wAJAudkSY+p4o1Qh5WfVjg8V3fpmgwhTkr0S8jVqIky1Qn8O7BiufSkwu0GE1XLClLakY8vhRJjSmr4HqLi7/tOflSse5bAIi9JtNtoETMAETMAEChFhil5JaGlISKlCgYSVhJJKSUk4KbdbFRB0LKnjSOVxK7JVL8LeD9wOKIr1MeC/Q96YjhxfFUTdB0JUqybgJMI+ESJhWu9/Q0cdRcleB/xb6K6j4u9RDouwKN1mo03ABEzABEygEBE2CfhpiILp6PFv4UhRUS2NH4ZjROWOKVFeL9Ypp6s+EqaEeiXyK2fsn8J93wlHihJhyiFTZK02lOyviNtvguCrlaiQILwi5JjpWs0l4RftsAiL1nU23ARMwARMwAQ2JZDzcWQzxOoHrZywR1r0gfLMJLLWN7lPL+Hp5b1mn/cBW4UE/RFf1GvRro5cbhHWEexe1ARMwARMwATaQ6AgEdYe43tsVouwHnO4t2sCJmACJtDdBCzC4vGvRVg8vrKlJmACJmACJjAqAYuwURGV5gKLsNK4woaYgAmYgAmYwPgJWISNn2FRM1iEFUXa65iACZiACZhAAQQswgqAnNMSFmE5gfQ0JmACJmACJlAGAnmLsFfPuWjXfipvIU33Hdpfkty8nuoFixccc3cZ9huzDRZhMXvPtpuACZiACZhAA4E8RdhrTrv4PUkFVcCHlFs2iDD2IR3qGTnvqoWzP53BASpn8cKhO58c/YCad+8cKt+rV2Rt6LoXAZvVfU/lMG4OPSn17YNCodbVoY+lCrbqnqmhLVIa5q2to5ZIEo27AfcBf6mb+1nBtodDlf76La0DfpZhj2O6xCJsTNh8kwmYgAmYgAmUk0BeIqwmwNKUyyesmXT8ZZ86UsKLI97z7a3XTVpzfpJweFrl1O+cM/tTo5CQyFER1w8OSbkNQ6LqvwA19n4qoKbctSEhJVElgac6ZNIqKhr77SCeVAxWLZRUTf8pocn4IcDkUMj1DcDWwJeCEDs/tFb6d+CZwCtCA3CtVwlV+lVoVtX/VYVfVf1ln4bWV0HYmt25Ot0iLFecnswETMAETMAEOksgDxG24QgyuUsC7DsLZ6tX5CbjNadffFkCL1ufpM8d5WhS7Ye+GKJXjfO8KfSTlKCqDYkpRd32DkVZ6+9RtEvi7blANXzwDEAi7HNBLB0F7BS+rt17CfDxEA37fYh4KfKle68JVf9fD6iYrOYpZFiEFYLZi5iACZiACZhAMQTyEGGvnXPRPEjm9q+etE0tAtZovSJi6yeveRjS+VctOEb9HJsNHQGqp+RZdRGlR0OkSv0o1dS7UYTp+m+E6vqaV8JMx6KKnG0RWiM1W284YVcTYb8GLgYUHbsaeAewbYjEKYJ2WoisaW5F3xTB+367PGcR1i6yntcETMAETMAEOkAgDxEWoly7XrVw9oZk/CbjtadffHMKdzeLloXbJMKUV/Uv4fhPR4CPA+ofOZII+2QQYbpex4FXAkeGI0gdSdYPCaY14RsjibAbw3HkCaGfpUSWelCqubhE2GzgwnCMqen+D5Bwa8uwCGsLVk9qAiZgAiZgAp0hkJcIU97VdxbO1rFfHiJMR4hKpm8cIx1Ham31kawfioS9Ejip7pvPCXlbtSPK0USYcs5uBd4OfB5QE3H1qtR9Po4cz2O7YMGCdM6cOV0nLsfDxPeagAmYgAn0DoE8RFjOx5HKCbsceEHDG5JqwC1RpcT9s+uiT4poKSdMeV4P1N2j7+uNyYfCZ4sBNfz+bjjavCB4eTQRpst0fDo3ROIuqrtPyfk6Gp1Y98S02qQ888PWdWLFIiyz732hCZiACZhAFxLIQ4TVEvNJueyqhbN1BLjJ0JElcOBgku47SmL+zHCs1ziHRNmuwKV1HywD9gGuCKKt/p5/DZErJeffUPeB3rpcCAyG70nY/V1DnpmElo43dRypoWPWnwC7A38L3zs8lLuoX1P2SEQqiT/3YRGWO1JPaAImYAImYAKdI5CHCJP1T9QIS7msf82kE+pLVKyftOarJByRsURFO2D0hSiY6ngpvyzKYREWpdtstAmYgAmYgAkMTyAvEbaREFNmfDpULJUkYd805RFS5mWoEWY3jUDAIsyPhwmYgAmYwBCBgaOPPnRikty+wyWX/NlI4iWQpwgThQ1HkxyfpsnQm5JJkt68Hs5326LxPyMWYeNn6BlMwARMIEoCy489dpvH1617LUlyOKQHkySbpynzZyxaNFLNpyj32ktG5y3Ceold0Xu1CCuauNczARMwgQ4SuPf1r9+lOqHvqDTlsCRJXraRKWm6DNJzpi/6Rn3hzA5a66XHQsAibCzUOnOPRVhnuHtVEzABEyiEQArJklmzXpBUOCwlOTwBNTJ+YqTw+4T08rTKFdMvvfTGpE098grZrBcZImARFs+DYBEWj69sqQmYgAlkIpDOmjVxSSV9eZJWDk8TXpfAzk+qrnSQhJ+SJldU1q//1s7f+tY9mSb1RdEQyFuErTp7x12rVd4Caaien9xcqXDBZmf87e5ooJTUUIuwkjrGZpmACZhAKwSGy++qE16PQ3INaXr55hMmXLX1hRe2peZRK/b62vYRyFOErfzwDu9Jk0Q9G/V6pAqoKjN/nzRNl1cS5k354NJPZ9jJFOCFDYVa+4Efs+EXBNUK+zmgchMa+uwlwG2hYn6ze9VP8nl18+r+P4YCrzWz9LmKvqrg6k9DEVh9pgbfqv9VP3S/6o8dEOa5P3yogrC69lfh6+1DkVntS+2O1H5JrZX+AfhtQ02xlwJ3AKo3tsmwCMvw9PgSEzABEygjgaH8rv7+15Okh5Hy9ySJaidt+HkJ9yYpV6ZJ9fLp1eQHyaWXri3jHmxT/gTyEmFPCLA0vXzK+jXHJ/OWLx96tuZtvfXK/knn64WOJE1PnfKhpZ8aZReqiK8ejSqqqh6QGhMAtTI6IrQc0jG5RJeGirhK8Eh8qQZYs3tVkPUqYH6ocL81cGZoQ7QkfF/V81XkVb0lPwJ8IRR8PR74N+CcYIvWlVD7Vmhp9NfQZkkFYGW/monvHUSfbDsxFKBVIdtXs+GY/wzgmaEnpfZ5IKDG4freELvGUbQIk7rdJUBdOoLTpDIfBKoN10i5aiOrmt3rivn5/4X2jCZgAuUgMN78rnQRfavueMrO0D8Dkhkk6fQqyYxEf4YZkE5PUhZM+dDSz5Rjx7ZiLATyEGHhCPIuRU+nfmiphNImY8WHd7gshZf19SXPHeVoUlGkLzbpHam5vw28v67CvdoJ6Q1diTGJsGb3qufjK4D6aNzXwvVqbaRWSbW+kLJfEa2TgY+HRt3D9YlUdO0mYM/Q0PubIQomMaXelD8ATqurvK95Tw3NxXW0r2bf+vp6QF+/ZqQG4EWKMIXtrg2hQKnDs4CLG7yqXk36x0B9oBQOFMTa2BG4L3y/vl3BRlNYhI3lr6zvMQETKCuBrPld/emqy7Z4/i/WJOv6p0N1SGRJYEloJUP/rkpopTvBk9Gy4fackn568w8ufU9Zediu0QnkIcJWfGTHod6KU9at3qYWAWtceSgiNmGyjrbnT/3g30Yqa7JbEDb6uV+LhD0a+j3ODsd4inrp574iZGon9D/AL0JARqJouHsVYXov8DlAUWAFec4Fnh/mlG7Qm74KAKk9kdZWRFjiSOJPYmpR2JciZYq4/Sz8/5hwNKmjUok1Rch0RPq/QdjJ/uGGmol/P/x3Z4i2NXVakSLs2KAmFSpUB3MZJ8fUb0SKVqCf3tCrSWetUp8Sb1LGUprDDouw0f+C+goTMIFyExgxv4vq6srEVbdP2OqBeydve+/qysS104YEVpruTJLoh80II01TWJakyQBJquOagZRkoJKmSxKqA9A/MHn9fX9N5rG+3IRs3UgEchFhH95BfSF3nfqhpSEZf/gVV3x4B1XRv7tZtCzcpZ/1Ejf/EnKn9DNdES7lUkkbSBPo5/7XAUWiXgn8CdCRoPKymt37jCDuagEdCaBpQT8cDdREmOaUiJKYUmRMYu3lIRp2YV2z7v8Dfh+CRcolOwzYH1BkWPfrz9qvdEi9dlEAqf64X5EwHYGqB+aILZWKFGHqkH5lCNFpXSnF40J0q967UsGCoM3Wkkcl3NR0U8l1CjXWGnBu8lRYhPkfJxMwgdgIpHN3mPbwYzu+cO3y7V9fXTvlpdW1E59BUnni3+ekf006ccuHkglbPcCEzZdDUgsmbLzTFB5MSAdIGSBJlqSkA336OqkMJIPVJZOmLftL8vYnkp9jw2R7MxLITYQl7DL1g0t1BNd0tCDClP910DATKWdLJ2W3Aq8FNgMuCGLpL0GENbtXuVrKx9rw4sCG5HhF0RTJfSpwAqCcrfo8tJq+ODSIMkXR6ocEm15AkAZRjpjm+2Fo+P3GoE9epUog4aaanplTp00kDs8LgaPGtKqNFitShNWS5ySgtK6Uq5LYFBFrBkAiTMUE5aSTgI26oC9cuHBumqabhEBnzVIDdQ8TMAET6DyBvrWPkKxYRt+qZfStXEplxTIqK5fRt2IZ3L+cwWUJ6x7ZhupqBQOeHJXJK5i45YNM2PJB+jd7jOqkLRicMo3qlGkMbrYD1anTwtc7DP1f/6UV/ULuYQIwc+bMcf18z/k4Ujlhys9SBKnerhWAhM0OwGfDG4lyn67XMaWETi23a7h7FWFTtGphnc9rOkFvJOq/t4aIm6LE7wZOD/NLhD0tHFfW/8VZUyfCpEGUcP+7EETSEea7QqTuzcE25XxJcEl4PRbskF1K5JeALY0I05sEd4UIWL3SbHxVuv4zJeEreqZN6vVOhRk19gN+M9xfNEfC/M+PCZhAUQTSs7faZu26ydPXJ8kM+qozSHUsmExPSYcS3ZMkmR5+s99gUpqw7vGtWffIdqx97Cmk65SGEkZaTfumrHh4wtRHb5+4xdLrK1s8/ntFsZJkcGDS5AcGkvc2fyGpqP16nTgI5BEJeyIxn/SyqR9cqmjSJmMoMT/hwL5Ksu8oifkzw5uEjXNIWEmwPCW8sbggHPN9FFSXbKj8g44jdUw43L0Sca8LbzjWPldO2HUhaCMRtLhOO3ws5J2/M+SM6ci1fkhn6AhR6U8qLVHTJx8I31eemKJtEn3KRdPQPUqlklCrDe1J0TsdeZZGhB0FnBLCkTr7FRgpTP0jpTcha0n4jQJNZ7g6otRrokqg06uwiqoNG4+3CIvjHwlbaQJlJ5DO237ztRP7/m5dWp2RVJPpVIYS22eQMj0deqMwnaFei6PuY7B/xZrl2z+ybvn2fetWbvkU0or+Pdsw0urKJEmuTat8y/W7RiXpCzISyEOEaakna4Sll01Zt+aEjUpUTJj0VUiOyFiiIqPlbblMCft6K1I1wEbMz2pxdR2hSq9IqA2fH5BhwnGFKzPMX3+J1lLITrU5NKQ2dQYsQSXVq9c5NbQpvaGgJPzGKJkUrl5VVWLcsMMirEWv+HIT6EEC6SfZbO3qbXdZl/ZtKM+QptNRNItkRqo/b4hi6R/ukUfKyhQGGIpYJUOJ7lTTgfWPPmXNyqVP26u6dsoBaTU5wPW7RgPpz/MkkJcI21iI6as0/OxN9k1JH6mkzMtQIyzPrXXdXEWKsBo8HSmuzFmRPuEYi7Cue0a9IRNoiUD6GSatWbH9jLTaN2OQahBZyXSSdEYaSjUkG96SGk1grYb0r3p7UOJqKOG9ojcKk4F0fTowtX/VkuQDjymKr1+D3Z9xNJ7+vDACeYowGR2OJo8nDW2LkqG2Ree7bdH4XdoJETZ+q0eYwSKsrXg9uQl0lEA6j4lr+qbNSPsq00mrMwZrhUaHIlnM2HBMyLajGpmyViUa0lTRq3SgEko1DIms9dWBKdXVA8m8xx4YaZ6s9bvcn3FUb/iCnAnkLcJyNs/T1RGwCPPjYAImUAoC6Tz6V/ftMIOkOiNNKqGS+4aio6BkdySw1E1jlAhWup4kuVfiKk0ZilxVFMXS132VJemawYGpc+9fmiSt53E8+KY3bblq7drD1a4F0oM3yglLU/dnHM03/rwQAhZhhWDOZRGLsFwwehITMIERo0YZ2uWQsgNJojePRhjpICT3DQkq5V+lyZKawILKQDph/ZIpqx74WzJv5DeSWvHWwKxZT61UODJNk8PThJclG14UGhruz9gKSV9bFAGLsKJIj38di7DxM/QMJtDTBNJ5VFb1b7vTE/0Iqc6oJsn0Df0IN5RqIGXHUQVWmlZJ+NtQcrvyrnRMmCoHqzIUxYL1A5vt/uDfkqOH3pRu6/jrUUc9l76+w9IkPRySjYpVpvD7hPTytMoV0y+99MZkHG9GtXUTnrxnCeQtwu6bPXvXarX6lioMVc+vwM2VSuWCnS6++O6ehZzTxi3CcgLpaUygGwmkKcmK+dvvkEzqm5EMVqc/0Y+QdEaSqLxMju1ydr9vSRECazg/pSedNOHe5ctfVk3Sw5OUw0iSv3viujQdJOGnpMkVzu/qxqe8+/aUpwhb8sY3vAcqtYr0qiSvsU+apstJmDfjkkvrm2c3g6k3jVWA9Vd1F6hQqqLKKqi6N0/mcqqkxNJQmb5W+mELQGWu9ObyH0K9UbUNkoZ50Ua1+DbMqbc4VwPqR6mK97WWQuoDqc9Vl0zVkfV9raFirSrm+uOG9kNtfzgswtqO2AuYQHkJqF3OysmDM0grM5JqZajx84amz4pkqelz+lRInqxr1WQrKdyfbCjVMJTonlIZysNK0uoS0srA5GlLl5StXY7yu1avX3NoSuXwNE0PSZJkqzrh5fyu8j62tmwUAnmJsJoAS0kv33zNuuO3uewyFVDn4SOO2PrxSRPOT1BuZPXU6Zd8Q/U7RxpqL6QK8hJbtUi2ylWptZBKVKmDjrrpaH7pErW9UamqfwvFXCXUVBxV4kpNvlVzVKJOIkpddyQE1WJI96oC8reDsFKzbVW4r7Umqq15Wyjg+gZg69BIXELsfEAFYAsbFmGFofZCJlAsgfSjW2y7Yv1m05P+cCxYVXK7/qwEdx0TJk8lGarLN+JIh+r1pQNDIis0ft7Qk7AykFQGByatuf8vybyNmteONmXHPnd+V8fQe+ECCeQhwnQEOZhW75IAm3HJpWrXs8kYeOOsy0h5WX+l77mjHE0O18ZH7QjVYPuTQQSp4bWiVxoSZ9cG0aYG26o+ryr2tSHxJPGlqJiicxJ3ajdUP7SmxJvG7qEheG3NT4TvK7q2U51IK9BLG5ayCCscuRc0gfETaLldTpMlw5HCkmSoFtaGxs9pkizppnY5zu8a//PmGeIikIcIGzj66HlJwtypa9ZuU4uANVJQRGzFpIkPpynzZyxatEkf57rrRxJhEkQSWd8MLYAUef9n4L7QjkgtCtXeSMePEm16Q3pV6NOo6NdNIcpW69uoXyx1fKpfONUGSa2KNP9zQp/KnUO/SJnXKMoKd7RFWOHIvaAJjExgqF3OhMqu66rV6QmVGRva5RAquQ/VwZpBglpmjDJR+rgKjQ4VGU02lGpQNfe0ki6ZkFQGJq6t3J3Mu1eFk7tqOL+rq9zpzYyBQC4i7I2zLktIdp1+yaKhZPxmY8kbj745Jb27WbQs3KfjSHW8USecWi9F9WGsCaLPh4iUavMpV+vYkAP23YZm2ocA84MoOy00/ZYIUzRNIkxvVyvHSz2nFU2rNdH+ejjylDlqtF2LhFmEjeH5GvEWF2vNm6jny5NAOm/nKWsnrvm7drXLSakOTKhUlkzsWzuQzHlYvyX2xHB+V0+42ZvMSCA3EZayy/RFl270dnCjCRlFmBLzlfOlaFQtSV4CSAnyytf6EvC+kNelJf4hiK1DgV8DRwPK46oNiTQdI0q86ThSNjb+Qlkffdsh5JOpYbfaJeo+DYuwjM9U5ssswjKj8oU5Exhql/P4drukqdrlJDOSUMV9qB9haPycJImSQEcbq9Kh0gxqlZMMqLI7STrAYGWgP00HJk5YvSQ545HGvqqjzdl1nzu/q+tc6g3lRCAXEZbvcaSOCBWxOgO4IggoJdkfHESURJgiWw8FBIpWqde0ImcnAccBrw2J+3qr8gbg34GvhPsVIVMUrXa6p/wwnSDUImGKvmmOrwEnAl+2CMvpYWucxiKsTWB7fNoytcvpZVc4v6uXve+9ZyWQhwh7IjE/5bIZixYdOdzaITH/wP5K374ZaobpbUa9rVgbSsRXRErCqVGEKYq1WKUwQrK+jiA/EG5cBnwEWAd8NZSgUM5Y/dDcSuxXLtjLwxGocs1+FN6ArIkwvYWpcjS148msiHO7zjlhuaH0RLESyK1dDuk6SP66oZJ7Giq5VwbSSnUJSXVgyuq+AeYtvX8s7XJiZTteu53fNV6Cvr8XCeQhwsTtiRIVKZdtvnbtCRuVqJg48atJwhEZS1TU3KAyENuEI8lWo/nKg1VETffV6odF716LsOhd6A2MRCAtsl3OaQ/cZ4E1/ufR+V3jZ+gZeptAXiKsJsTSNJk3VEcvTXWECEmyb5qmjyRJOi9DjbDedsYou7cI8+MRLYENAmvbHbupXU60zhin4c7vGidA324CdQTyFGGaVkeT66vV40nSDW9KpsnN/ZXK+RmOIO0XizA/AzESULucledst1Oyrn+oivsT7XKSNFRyHypAuhMkanExwkjTFJYlociokt1VtkE9CROqA9A/MLmD7XJi9E1eNju/Ky+SnscENiaQtwgz3/YRcCSsfWw98xgIrPzIDqekJO8B1ONr1DFSu5ykr7Jk8hlLVVXZowQEnN9VAifYhJ4gYBEWj5stwuLxVU9Y+viHd5iTJMnZ2mwKDw4VGk0ZIEmWbGiVo8KjlYFksLpk0uCygVja5fSE84bZpPO7etXz3ncnCViEdZJ+a2tbhLXGy1e3mcDj87bfsb8v3Wryvz1we5uX8vRtIuD8rjaB9bQmkJGARVhGUCW4zCKsBE6wCSYQOwHnd8XuQdvfTQQswuLxpkVYPL6ypSZQGgLO7yqNK2yICWxCwCIsnofCIiweX9lSE+goAed3dRS/FzeBzAQswjKj6viFFmEdd4ENMIHyEnB+V3l9Y8tMoBkBi7B4ng2LsHh8ZUtNoBACzu8qBLMXMYG2EbAIaxva3Ce2CMsdqSc0gbgIOL8rLn/ZWhMYjYBF2GiEyvO5RVh5fGFLTKAwAs7vKgy1FzKBwglYhBWOfMwLWoSNGZ1vNIG4CDi/Ky5/2VoTGCsBi7Cxkiv+Pouw4pl7RRMojIDzuwpD7YVMoDQELMJK44pRDbEIGxWRLzCBeAg4vyseX9lSE2gXAYuwdpHNf96iRVg/sAvwOLB0hO1sDzwIVMM1um8msBq4ZyQMCxYsSOfMmVP0vvL3jGc0gYwEnN+VEZQvM4EeIWARFo+jixQrU4BrgVuAA4GzgIsbUE0EZgDfBQ4AHgK2Aa4DfgY8NYizk4DB4TBbhMXz8NnSsRNwftfY2flOE+h2AhZh8Xi4SBF2LLAHcCYwFbgT2A14tA7XK4I4e3q49mHgxCDMdF8F+A0XKi8AACAASURBVC0wC7jDIiyeB82Wjp+A87vGz9AzmEAvELAIi8fLRYqws4ErgesBrft94DjgvgZcE4DfA/sDEmFbBvG1PIi2m8KRpj7bZDgSFs/DZ0tHJuD8Lj8hJmACYyFgETYWap25p0gRdhUwH7gxiDAdRZ4RImL1u58cjixrIkyfyc63AV8CXg1co28uXLhwbpqm8xrRzZqlQJmHCcRHIFmzhsrtfyT5wx+o3H47+ro20gkTSHd/JtU996S6xx6km20W3wZtsQmYQCEEZs6cWeTP90L21I2LFOkkHSveFSJgwwmtGt/GzyYBPwDuBU4OOWFNfeFIWDc+pt29J+d3dbd/vTsTKJqAI2FFEx/7ekWKsKOAU4CDAOV8LQb2AqYHYaUkfI1GEab73gLMDp/ruPKRZlu2CBv7w+A7iyPg/K7iWHslE+g1AhZh8Xi8SBGmtc4Djg949gFuBXRM+dGQK1YTYb8Mb1Aq72sOoHyy2lhWl7S/CWmLsHgevl6y1PldveRt79UEOkvAIqyz/FtZvUgRVrNrGrAy1AprxdZM11qEZcLkiwog4PpdBUD2EiZgApsQsAiL56HohAhrKx2LsLbi9eSjEHB+lx8REzCBThOwCOu0B7KvbxGWnZWvNIFhCTi/yw+GCZhAmQhYhJXJGyPbYhEWj69saUkIOL+rJI6wGSZgAsMSsAiL58GwCIvHV7a0gwRGyu9K03RVAt9LSC6f2t//7a0vvHDYQsIdNN9Lm4AJ9BABi7B4nG0RFo+vbGnBBEbK7yJNl6UkV1XS9PIqfG/GpZeuKtg8L2cCJmACjoRF/gxYhEXuQJufL4GR8rtI09tTkssrcMXOe+75i2TevGq+q3s2EzABExg/AUfCxs+wqBkswooi7XVKSWDE/C6okvKLlOoVpMm3Zlx66f+VchM2ygRMwATqCFiExfM4WITF4ytbmhOBrPldSV/fFTtfdNEDOS3raUzABEygEAIWYYVgzmURi7BcMHqSshNwflfZPWT7TMAE8iJgEZYXyfbPYxHWfsZeoUMEnN/VIfBe1gRMoKMELMI6ir+lxS3CWsLli8tMwPldZfaObTMBEyiKgEVYUaTHv45F2PgZeoYOEnB+Vwfhe2kTMIFSErAIK6VbhjVqLCJsN+BFwJ2hCfftwJqybNm9I8viifbZ4fyu9rH1zCZgAvETsAiLx4etirBZwKKwvZOAFwPbAkcCg2XYtkVYGbyQvw3O78qfqWc0ARPoTgIWYfH4tRURNhm4CVgMPArcC9wDXAM8G/hDGbZtEVYGL4zfBud3jZ+hZzABE+hNAhZh8fi9FRE2FbgVmA1sB8wALgQeA/YFbinDti3CyuCFsdsw8MY3HJJQeXOapockSbJVbSb1ZyTh2kqaXOH6XWPn6ztNwAS6n4BFWDw+bkWEVYAfAPsBtwXxNQHYE1CemKJjHR8WYR13wbgMWHL00f9JwtuHJnF/xnGx9M0mYAK9ScAiLB6/tyLCtKvpwHeAveu2eDBwbVm2bBFWFk+MzY6/Hn30S6pwmPozPnXRop+PbRbfZQImYAK9S8AiLB7ftyrC9Fbkn4B+QFGwB0Ny/s+AtWXYtkVYGbxgG0zABEzABDpFwCKsU+RbXzerCNsVeCZwDnAJcCOge6cBXwB2AR5uffn877AIy5+pZzQBEzABE4iHgEVYPL7KKsJOAM5rsq1lwB4WYfE43ZaagAmYgAl0LwGLsHh8m1WEbQM8BbgA+DxwfTiO1E71duTSsmzZkbCyeMJ2mIAJmIAJdIKARVgnqI9tzawirDa7CrO+FOgL31Ae2F7AuY6Ejc0BvssETMAETMAE8iRgEZYnzfbO1aoI+wzwrgaTfBzZXh95dhMwARMwARPITMAiLDOqjl/YighTsdZfAQuBVwC/A+4APhlywtZ1fDeAjyPL4AXbYAImYAIm0CkCFmGdIt/6uq2KMFXMf2t4K1JFWz8QSla83hXzW4fvO0zABEzABEwgbwIWYXkTbd98rYgwXXsp8PfAqcDX68x6BvDn9pmZfWZHwrKz8pUmYAImYALdR8AiLB6ftiLCtCu9JfnPwJeAdwBnA+8FPg1Uy7Bti7AyeME2mIAJmIAJdIqARVinyLe+bisibDLwS+ATwH+3vtTQHaq0r8Kuj49S1mL7UI2/Juyy3uecsDE6xreZgAmYgAl0BwGLsHj82IoI07WfA14NvBB4pG6b6zNseUroMXkLcCBwFnBxw30TgRnAd4EDgIeALPc9MY0jYRk84UtMwARMwAS6loBFWDyubUWEaVeqB3ZSw/aylqg4NrxFeSagNy3vBHYDHq2bT29dSpw9va4Kf5b7LMLieeZsqQmYgAmYQBsJWIS1EW7OU7cqwt4J7AOsrLNDkar3h8r5I5mn/LErQ7V9rft94Djgvoab1Bj898D+oQBs1vuGpnEkLOcnxNOZgAmYgAlERcAiLB53tSrCxrOzq4D5dc2/dRR5RoiI1c+r3DMdWdZEWNb7LMLG4x3fawImYAIm0BUELMLicWORIuxE4K4QAWsUWiOJsKb3LVy4cG6apvMacc+aNSseD9hSEzABEzABE8iZwMyZM4v8+Z6z9b0zXZFOOgo4BTgo5HwtDn0np4c3IZWEr9Eo0Jrdt2o4N/k4snceXu/UBEzABExgUwKOhMXzVLQqwp4F3A0MK4BG2bbWOg84Plyn3DJV4Ndx40dDrlhNhKkUht6gfBhodt+wy1mExfPw2VITMAETMIH8CViE5c+0XTO2IsJ07dXAwSG361vAH4As5Snq7Z8WEvtVK6yVkek+i7BWkPpaEzABEzCBbiNgERaPR1sRYdrVq4ATgNlhi48BHwYuB24vw7YtwsrgBdtgAiZgAibQKQIWYZ0i3/q6rYqw2gqqaK/m3e+pW/JG4Ejgr62bkd8dFmH5sfRMJmACJmAC8RGwCIvHZ62KMDXvPgY4uW6LqqKv3K7/AlRs9Qed3L5FWCfpe20TMAETMIFOE7AI67QHsq/figjTtSq2+hrgm8BXgF8Ay4EK8DXgC8DPsy+f/5UWYfkz9YwmYAImYALxELAIi8dXrYgw7ep1wK8bqtzraPIBIC3Dti3CyuAF22ACJmACJtApAhZhnSLf+rpZRdgWod/jRcDngZ8Aai+0dYiG7RLKSbRuQc53WITlDNTTmYAJmIAJREXAIiwed2UVYart9dUm28rawLsQKhZhhWD2IiZgAiZgAiUlYBFWUscMY1ZWEbYHsC/wb4Dqg/0WmBjmkwj7kY8j43G6LTUBEzABE+heAhZh8fg2qwibAqwF9gz5YI/WbbEfWFGWLTsSVhZP2A4TMAETMIFOELAI6wT1sa2ZRYRNDSUozgF2B97bsJSPI8fG3neZgAmYgAmYQO4ELMJyR9q2CbOIsEnAgtCyaCdAPR9X11mkhttnAq22IWrLphwJawtWT2oCJmACJhAJAYuwSBwVmmNnsVb5XyMJtjVZJiniGouwIih7DRMwARMwgbISsAgrq2c2tStLJEyRrtuApzfZlo8j4/G3LTUBEzABE+hyAhZh8Tg4iwhT4r36REqMDTcUJZvn48h4nG5LTcAETMAEupeARVg8vs0iwhp309dwNLlNaF20rgzb9nFkGbxgG0zABEzABDpFwCKsU+RbX7dVEfZK4NqGZXQc+SzgodaXz/8Oi7D8mXpGEzABEzCBeAhYhMXjq1ZEmI4lrwPUwmjvULZi81C0VaUrVpVh2xZhZfCCbTABEzABE+gUAYuwTpFvfd1WRFitXthrgL8HdPx4cUjaf757R7YO33eYgAmYgAmYQN4ELMLyJtq++VoRYUrMvwn4MfAb4AzgPcAVwAuAX7fPzOwzOxKWnZWvNAETMAET6D4CFmHx+LQVEaZdHQGcC7wa+EYoW6GcsN2A+lZGHSNgEdYx9F7YBEzABEygBAQswkrghIwmtCrCXgRIdN0FqHq+aodNA74TektmXLZ9l1mEtY+tZzYBEzABEyg/AYuw8vuoZmFWEbYr8ExA/SMvAW4MZSokwL4A7OKcsHicbktNwARMwAS6l4BFWDy+zSrCTgDOa7ItV8yPx9+21ARMwARMoMsJWITF4+CsIkwFWZ8CXAB8HrgemBC2+RiwtCxb9nFkWTxhO0zABEzABDpBwCKsE9THtmZWEabZ9Xbkr4CPA/89tuXaf5dFWPsZewUTMAETMIHyErAIK69vGi1rRYTp2s+FNyNfCDxSN9n6smzZIqwsnrAdJmACMRF41fv/e2p/38R3Ua0s/u7Hjr45Jttt68YELMLieSJaEWHalcpTnNSwPeeExeNvW2oCJmACGxGoia8K6ftIku3SlMu/s3C2yhF5RErAIiwex7Uqwt4J7AOsrNviFOD9gHLDOj4cCeu4C2yACZhABAQaxZdMTkkXV6vJ/KvPmX1DBFuwiU0IWITF82i0KsK0s4mhOKv+/xfgwTJt1yKsTN6wLSZgAmUjYPFVNo/kb49FWP5M2zVjqyLsuaFlUb09s0PtsCw2qgm4aoo9PsIbldsDWwL3ALVcM92nwrCqyv+3kRayCMviBl9jAibQawRecfqirSZSPbl27OjIV/c+ARZh8fi2FRFWAX4A7AmcDiwHTglf64hyRHEE6NjyWuAW4EDgrNAAvJ7WocBXgQuBw4D9QimM68LaLwe+BixohtgiLJ6Hz5aagAm0n4DE1+Rk8NQ0Td6TJGxl8dV+5p1ewSKs0x7Ivn4rImwqcCtwIvDDsIQq6auF0QHAaDkExwJ7AGcCmuvOhp6TKoFxW5hLyf7vDgLsPuBpwEcA1StTo/BnNWuTZBGW3fm+0gRMoHsJWHx1r29H25lF2GiEyvP5WETYV4CPAeuA1wJXAs8G/jDKts4O16rQq9b9PnAcIJGlMR24BtgbGAReArwqlMWQKJsPvAz4HvBRR8LK8xDZEhMwgfIQsPgqjy86ZYlFWKfIt75uKyJMs88D5jYsc0cQYaPVCrsqCKla38mLgTNCRExTKrqlEhg6qqyGr08Ox5M/BvRm5nPCWm8AVi9cuHBumqayaaMxa9as1kn4DhMwAROImMCqtYNc97u/cd3vlrJ6nX6PhT2mb8kh+01n12k6fPDoJQIzZ85s9ed7L+EpzV5bdZKuPxI4HlCOmHK8zg8J86NtSseYOrpUBExHj8oN27+u8bf+lfgR8OKQkH8MsDOwO3AZcHVY8+fAa4CHhlvQx5GjucGfm4AJdBMBR766yZv57MWRsHw4FjFLqyJMNunoUeUpaiMNuVw6nhxpHBUS+Q8KbzouBvYKx5Aqc6HaYzcBbwN+CXwa+ElI/FeUTUeQyglTXpqOLB+2CCviEfEaJmACZSRg8VVGr5TDJouwcvghixWtijC9lag3IxvHts0iU3UXaq3zQhRN39YblRJUOqaUwFKu2POCENPnyj1TdX7Nrbcj9Vamxr+GJuLD7s+RsCxu9zUmYAKxErD4itVzxdltEVYc6/Gu1IoI03GhGnjrLcivDxVX3jBUw0s5W2szGjMtRL1UK2y4oVIWmwNKxq8ferVaiQ7N7hu61iIsoxd8mQmYQFQELL6icldHjbUI6yj+lhZvRYRJbOnNxG+MFIlqafU2XGwR1gaontIETKBjBCy+OoY+2oUtwuJxXSsiTLtSQr6KqdaPJSPlaBWNwiKsaOJezwRMoB0ELL7aQbU35rQIi8fPrYgwvdGoxHnlZqmel8pIaKjF0OuaJcoXjcIirGjiXs8ETCBPAhZfedLszbkswuLxe6siTG8tfhb4clm3aBFWVs/YLhMwgZEIWHz5+ciLgEVYXiTbP08rIkzWqG+jGmz/V51pyhXTG44qMdHxYRHWcRfYABMwgRYIWHy1AMuXZiJgEZYJUykuakWE6VpVuT96GMuzlKgoZMMWYYVg9iImYALjJHDwqYueMmHS4LvdWHucIH37JgQswuJ5KFoRYdqV+jsqN6x+qFTFPaHKfcd3bhHWcRfYABMwgREISHz1Txo8LSH5l1COh5R0cbWazL/6nNkqAeRhAuMiYBE2LnyF3tyqCCvUuLEsZhE2Fmq+xwRMoN0ELL7aTdjz1whYhMXzLFiExeMrW2oCJhAhAYuvCJ0WuckWYfE40CIsHl/ZUhMwgYgIWHxF5KwuM9UiLB6HZhVhuwOVEbb1f84Ji8fpttQETKB9BCy+2sfWM2cjYBGWjVMZrsoiwtQzcsR+jaHJ9kNl2JBzwsrgBdtgAr1HwOKr93xe1h1bhJXVM5valUWEqQ7YP4RG3c12pgbea8qwbYuwMnjBNphA7xCw+OodX8eyU4uwWDwFWURY/W6mAK8E+sI31wJ7Aee6bVE8TrelJmAC4ydg8TV+hp6hPQQswtrDtR2ztirCPgO8q8GQZcAeFmHtcI/nNAETKBsBi6+yecT2NBKwCIvnmWhFhCk37FfAQuAVwO+AO4BPBhG2rgzb9nFkGbxgG0yg+whYfHWfT7t1RxZh8Xi2VRF2K/BWYBqwH/AB4E/A64FbyrBti7AyeME2mED3ELD46h5f9spOLMLi8XQrIkzXXgr8PXAq8PW6bT4D+HMZtm0RVgYv2AYTiJ+AxVf8PuzVHViExeP5VkSYdrUN8M/Al4B3AGcD7wU+DVTLsG2LsDJ4wTaYQLwELL7i9Z0t30DAIiyeJ6FVESbhdQ1wV9iiCrjOD3lio9USK4SKRVghmL2ICXQdgcM+cOEOg9XkVDfW7jrX9tyGLMLicXlWEfYS4I3hv5+GhHztcjvgcL8dGY/DbakJmMDGBCS+qoOVM9IkfXtCMlmfpqSLq9Vk/tXnzL7BvEwgNgIWYfF4LKsIOwa4sMm27gT2yVBVvxAqjoQVgtmLmED0BCy+onehN9CEgEVYPI9GVhGmHalyvnK/vgbcWFdBvxSV8mvILcLiefhsqQl0goDFVyeoe80iCViEFUl7fGtlEWESX8cBt4XE/J2GovVPjokhSrZyfKbkc7dFWD4cPYsJdBsBi69u86j304yARVg8z0YWEVZr4K2yFDp2PH6Y7W0LuIF3PH63pSbQMwQsvnrG1d5oIGARFs+jkEWEaTc7A4p0TQAU+Woc9zZExzpGwJGwjqH3wiZQKgIWX6Vyh40pkIBFWIGwx7lUVhFWW0YNvP8pvBGp7/0C+E/g/nHakdvtFmG5ofREJhAlAYuvKN1mo3MkYBGWI8w2T9WqCBuugbfejtwLWNVmWzNNbxGWCZMvMoGuI2Dx1XUu9YbGSMAibIzgOnBbKyKs1sD7h8BpQXS9FrgSeAHw6wz2K8l/l1DOYmmT67cHtgTuAdbXXbM7sBa4e6R1LMIyeMGXmEAXEbD46iJneiu5ELAIywVjIZO0IsIkoL4HfB/4SLDu2YBE2R7Aw6NYrKPMa0Oj7wOBs4CLG+45FPhqeNvysNAk/BHggnDd5qE0xpHA4HDrWYQV8tx4ERPoOAGLr467wAaUlIBFWEkdM4xZrYgw3a46Ye8Gzguti94FTAMWAFsBOq78Y5PtHxvE2pmAomo6xtwNeDRcr0rVKoNxALAsrKMXAf4CPAfQfbL3YOAn4UWBTZayCIvn4bOlJjAWAhZfY6Hme3qJgEVYPN5uVYR9GXjbCNt7YSjkOtwlavato8vrg5hSRE31x+4LF08PfSn3DlEutUp6FfC7IPq2CNf9I/CjZjZYhMXz8NlSE2iFgMVXK7R8bS8TsAiLx/utijCVpxjpnpGq518Vmn2r2r7m0FHkGSEiJmLPAs4FdFRZDV+fDKhX5SnhjUxF3X4JzGz2RqZFWDwPny01gSwELL6yUPI1JvAkAYuweJ6GVkXY04D3Ah8OOV0nhpIV/5Nhy7r2rpBTpqPHW4D963LJdESpCNeLQ0K++lWqPtmDgHLBPhfWuAj4pCJuCxcunJum6bzGtWfNmpXBHF9iAiZQZgLLV6zjh7fcx8//uIz1gxuadOwxfUsO2W86u07TPxceJmACzQjMnDmz1Z/vhtkBAq04SdfqCFFvKSqpXlErjccAJegPjGL/USGidRDwdGBxKG2hY0gJLRWDvSkcdyrapfwz5X4pMf+t4eiy9tak3rAc9kUAR8I68BR5SRPIkcAhp31zeiVZ96Ek4YRaceiUdHG1msy/+pzZN+S4lKcyga4k4EhYPG5tRYTpV89bgTcArwb+GXgR8IPwZx0zjjS0lhL6a22P1AJJ8+mY8qMhV+x5QYhpnq8AJ4VK/F8A3hEmf3NoIj7sWhZh8Tx8ttQE6glYfPl5MIF8CFiE5cOxiFlaEWE6QlSkShXyJcBUF0xHhL9poU6Y9qS8LkW9Hm+yQZWy0PGj3pCsH4qCqSzFipHAWIQV8dh4DRPIj4DFV34sPZMJiIBFWDzPQSsiTLtS/tXcsD3lbNXqhblifjw+t6UmUAoCFl+lcION6EICFmHxOLVVEaadPT8cEf42JOWrgKsaeJdiOBJWCjfYCBNoSsDiyw+HCbSXgEVYe/nmOXurIkzXHw28KVSuvy4cT9YKruZp25jmsggbEzbfZAJtJ2Dx1XbEXsAEhghYhMXzILQqwlS1fn7D9n4eanvV93nsGAGLsI6h98ImMCwBiy8/GCZQLAGLsGJ5j2e1VkRYLTH/68DHQzPtWgPv2puO47Ell3stwnLB6ElMYNwELL7GjdATmMCYCFiEjQlbR25qRYSpRMWvAPWLVNNujV1DAVYVXVVtr44Pi7COu8AG9DgBi68efwC8/Y4TsAjruAsyG9CKCFMzbR09qlDq+0KJCbUT2jMUa30g86ptvNAirI1wPbUJjEDA4suPhwmUg4BFWDn8kMWKVkSY5ntOqJqvWl+18U9AlrZFWewZ9zUWYeNG6AlMoCUCFl8t4fLFJtB2AhZhbUec2wKtijAtrCbezwD6gCXN2gflZmGLE1mEtQjMl5vAGAlYfI0RnG8zgTYTsAhrM+Acp88iwpSQr3yvvZusq8r2e5RFjFmE5fh0eCoTGIaAxZcfCxMoNwGLsHL7p966rCJMjbQV+dJQf0cNtSvS2DoUcB22oXbRKCzCiibu9XqFwOvev+hp1b7q6W6s3Sse9z5jJWARFo/nsoiw+t3UylSoofbny7hNi7AyesU2xUxgSHz1D85N0uQ4kg2/jKWki6vVZP7V58y+Iea92XYT6EYCFmHxeHWsIuw/gC+XcZsWYWX0im2KkYDFV4xes80m4Ir5MT0DWUXYzoCu3QL4MfDF0K5oUtjsAFAtw8YtwsrgBdsQMwGLr5i9Z9tNwCIspmcgiwhTkdY7gfqyFPV7fCwUbX2oDBu3CCuDF2xDjAQsvmL0mm02gU0J+DgynqciiwjrB94KKOqVDrM1law4F1hRhm1bhJXBC7YhJgIWXzF5y7aawOgELMJGZ1SWK7KIsLLYmskOi7BMmHyRCWDx5YfABLqTgEVYPH61CIvHV7bUBHIhYPGVC0ZPYgKlJWARVlrXbGKYRVg8vrKlJjAuAhZf48Lnm00gGgIWYdG4auiNx64aPo7sKnd6MzkQsPjKAaKnMIGICFiExeMsi7B4fGVLTaAlAhZfLeHyxSbQNQQswuJxpUVYPL6ypSaQiYDFVyZMvsgEupaARVg8rrUIi8dXttQERiRg8eUHxARMQAQswuJ5DizC4vGVLTWBYQlYfPnBMAETqCdgERbP82ARFo+vbKkJbETA4ssPhAmYwHAELMLieS4swuLxlS01gSECrz5t0TP7KoNnJGlyHAl9+l5KurhaTeZffc7sG4zJBEygtwlYhMXjf4uweHxlS3ucgMRXf2VwPjALkorFV48/EN6+CTQhYBEWz6NhERaPr2xpjxKw+OpRx3vbJjBGAhZhYwTXgdsswjoA3UuaQBYCFl9ZKPkaEzCBRgIWYfE8E0WLsH5gF+BxYGkTTNsDWwL3AOsbrtkJWA6saobYFfPjefhs6fAELL78ZJiACYyHgEXYeOgVe2+RImwKcC1wC3AgcBZwccN2DwW+ClwIHAbsF0SXLtsRuA84AGiafGwRVuwD5NXyI2DxlR9Lz2QCvUzAIiwe7xcpwo4F9gDOBKYCdwK7AY8GXJOB24LIWga8G5gAfAJQEvIPgnh7AfBrR8Liechs6cgELL78hJiACeRJwCIsT5rtnatIEXY2cCVwPQw1Dv8+cFyIbmmX04FrgL2BQeAlwKuAuUG43QgcAnwN0J+HHY6EtfeB8ez5EbD4yo+lZzIBE3iSgEVYPE9DkSLsKkCv10tAaV0dRZ4RImIi9izg3BDtqoavTwa+CbwJOAm4CPhkTYQtXLhwbpqm8xpxz5o1Kx4P2NKeI7B0+WquvmkJN9/1MGm6Yft7TN+SQ/abzq7TFCT2MAETMIHxEZg5c2aRP9/HZ2wP312kk04E7goRMB09Kjdsf+DhwF8/fX4EvDgk5B8D7AwcBLwG0BHltHCtcsV+M5zfHAnr4ae55Ft35KvkDrJ5JtAlBBwJi8eRRYqwo4BTgqh6OrAY2CscQz4IrARuAt4G/BL4NPCTkAum3DAdUS4CPgUoqhZiCBvDtgiL5+HrFUstvnrF096nCZSDgEVYOfyQxYoiRZjWOg84Phi2D3BrEFQfDblizwtCTJd8JRxB6miyNnRc+UXg5mabswjL4nZfUwQBi68iKHsNEzCBRgIWYfE8E0WKsBoVHSkq6qVaYcMNlbLYPBw/tkzSIqxlZL4hZwIWXzkD9XQmYAItEbAIawlXRy/uhAhr64YtwtqK15OPQMDiy4+HCZhAGQhYhJXBC9lssAjLxslXmUBTAoeevug5lWTwg26s7YfEBEygDAQswsrghWw2WIRl4+SrTGATAhJfCdWzkoTDax+mpIur1WT+1efMbtrVwShNwARMoJ0ELMLaSTffuS3C8uXp2XqAgMVXDzjZWzSBiAlYhMXjPIuweHxlSztMwOKrww7w8iZgApkIWIRlwlSKiyzCSuEGG1FmAhZfZfaObTMBE2gkYBEWzzNhERaPr2xpwQQsvgoG7uVMwARyh+412QAAFhRJREFUIWARlgvGQiaxCCsEsxeJiYDFV0zesq0mYAKOhMX7DFiExes7W54zAYuvnIF6OhMwgY4QcCSsI9jHtKhF2Jiw+aZuImDx1U3e9F5MwAQswuJ5BizC4vGVLc2ZgMVXzkA9nQmYQCkIWISVwg2ZjLAIy4TJF3UTAYuvbvKm92ICJtBIwCIsnmfCIiweX9nScRKw+BonQN9uAiYQBQGLsCjcNGSkRVg8vrKlYyRg8TVGcL7NBEwgSgIWYfG4zSIsHl/Z0hYJWHy1CMyXm4AJdAUBi7B43GgRFo+vbGlGAoeedtHzkyT5kBtrZwTmy0zABLqKgEVYPO60CIvHV7Z0FAJBfH04STi4dmlKurhaTeZffc7sGwzQBEzABHqBgEVYPF62CIvHV7a0CQGLLz8aJmACJvAkAYuweJ4Gi7B4fGVLGwhYfPmRMAETMIFNCViExfNUWITF4ytbGghYfPlRMAETMIHmBCzC4nk6LMLi8VXPW2rx1fOPgAGYgAlkIGARlgFSSS6xCCuJI2xGcwIWX346TMAETCA7AYuw7Kw6faVFWKc94PWbErD48sNhAiZgAq0TsAhrnVmn7rAI6xR5r2vx5WfABEzABNpAwCKsDVDbNKVFWJvAetqxEXjNnIvOT0jeUrs7TbmmmjLPdb7GxtN3mYAJ9B4Bi7B4fG4RFo+vesLS1865aB4kc11ktSfc7U2agAm0gYBFWBugtmlKi7A2gfW0YyPwuvdduN36vsozHPkaGz/fZQImYAIWYfE8AxZh8fjKlpqACZiACZjAqAQswkZFVJoLihZh/cAuwOPA0iYUtge2BO4B1odrdN9MYHX4flOACxYsSOfMmVP0vkrjUBtiAiZgAibQ2wQswuLxf5FiZQpwLXALcCBwFnBxA6pDga8CFwKHAfsBsvE64GfAU4EHgZOAweEwW4TF8/DZUhMwARMwgfwJWITlz7RdMxYpwo4F9gDOBKYCdwK7AY+GzU0GbgMOAJYB7wYmhM9nhPsqwG+BWcAdFmHteiw8rwmYgAmYQKwELMLi8VyRIuxs4Erg+hDd+j5wHHBfwDUduAbYO0S5XgK8CvgEIPG1PIi2m8KR5sMWYfE8aLbUBEzABEygGAIWYcVwzmOVIkXYVcB84MYgwnQUeUaIiGkvzwLODUeV1fD1ySEiJjvfBnwJeHUQa8Pu38eReTwWnsMETMAETCBWAhZh8XiuSBF2InAXoAiYjh6VG7Y/UIto6YjyR8CLQ0L+McDOwOeAHwD3AhJlygkbGgsXLpybpum8RtyzZum00sMETMAETMAEepPAzJkzi/z53puQc9h1kU46CjgFOAh4OrAY2AvQMaSE1UpAR42KeP0S+DTwEyAFVEF9dtiv8sQeabZ3R8JyeCo8hQmYgAmYQLQEHAmLx3VFijCtdR5wfMCzD3AroGPKj4ZcsecFIaZLvhLegjwNUD5ZbShpXwn+zgmL5zmzpSZgAiZgAgURsAgrCHQOyxQpwmrmTgtRL9UKG26olMXm4Q3JlrfoSFjLyHyDCZiACZhAFxGwCIvHmZ0QYW2lYxHWVrye3ARMwARMoOQELMJK7qA68yzC4vGVLTUBEzABEzCBUQlYhI2KqDQXWISVxhU2xARMwARMwATGT8AibPwMi5rBIqwo0l7HBEzABEzABAogYBFWAOSclrAIywmkpzEBEzABEzCBMhCwCCuDF7LZYBGWjZOvMgETMAETMIEoCFiEReGmISMtwuLxlS01ARMwARMwgVEJWISNiqg0F1iElcYVNsQETMAETMAExk/AImz8DIuawSKsKNJexwRMwARMwAQKIGARVgDknJawCMsJpKcxARMwARMwgTIQsAgrgxey2WARlo2TrzIBEzABEzCBKAhYhEXhpiEjLcLi8ZUtNQETMAETMIFRCViEjYqoNBdYhJXGFTbEBEzABEzABMZPwCJs/AyLmsEirCjSXscETMAETMAECiBgEVYA5JyWsAjLCaSnMQETMAETMIEyELAIK4MXstlgEZaNk68yARMwARMwgSgIWIRF4aYhIy3C4vGVLTUBEzABEzCBUQlYhI2KqDQXWISVxhU2xARMwARMwATGT8AibPwMi5rBIqwo0l7HBEzABEzABAogYBFWAOSclrAIywmkpzEBEzABEzCBMhCwCCuDF7LZYBGWjZOvMgETMAETMIEoCFiEReGmISMtwuLxlS01ARMwARMwgVEJWISNiqg0F1iElcYVNsQETMAETMAExk/AImz8DIuawSKsKNJexwRMwARMwAQKIGARVgDknJawCMsJpKcxARMwARMwgTIQsAgrgxey2WARlo2TrzIBEzABEzCBKAhYhEXhpiEjLcLi8ZUtNQETMAETMIFRCViEjYqoNBdYhJXGFTbEBEzABEzABMZPwCJs/AyLmsEirCjSXscETMAETMAECiBgEVYA5JyWKFqE9QO7AI8DS5vsYXtgS+AeYH24Jst9Q5cuWLAgnTNnTtH7yskdnsYETMAETMAExkfAImx8/Iq8u0ixMgW4FrgFOBA4C7i4YbOHAl8FLgQOA/YD1ma474lpLMKKfHy8lgmYgAmYQNkIWISVzSPN7SlShB0L7AGcCUwF7gR2Ax4N5k0GbgMOAJYB7wYmAPeNct9Gu7MIi+fhs6UmYAImYAL5E7AIy59pu2YsUoSdDVwJXB/eyvw+cFwQWdrfdOAaYG9gEHgJ8Cpg4ij3WYS16+nwvCZgAiZgAtERsAiLx2VFirCrgPnAjUGE6SjyjBARE7FnAeeGo8pq+Ppk4OnN7lu4cOHcNE3n1eOeMmXK+pUrVyqHzMMETMAETMAEeo7AHnvssfyII47Ypuc2HuGGixRhJwJ3AYqA6ehRuWH7Aw8Hbjqi/BHw4pCQfwywcziuHOm+CLHb5JEI+EjZz4cJdJaA/w52lr9X7x0CRYqwo4BTgINCdGsxsFc4hnwQWAncBLwN+CXwaeAnQNrkvlW946be2ql/APSWv73b8hHw38Hy+cQWdSeBIkWY1joPOD6g3Ae4FdAx5UdDrtjzghDTJV8BTgoibLj7utMj3pXLjPgZMIEOE7AI67ADvHzPEChShNWgTgtRL9UKG26olMXm4Q3J+s9Hu69nnNbtG/UPgG73sPdXdgL+O1h2D9m+biHQCRHWLey8jzYR0AsXp59+ul7i8DABE+gAAf8d7AB0L9mTBCzCetLt3rQJmIAJmIAJmECnCViEddoDXr9GYMdQI04vY6w2FhMwgcII9AFbhdVUo1Ff14+HCrPEC5lAjxGwCOsxh5d4uzuF8iV7Ap8Dvhxe3NDbsR4mYALtI6DOJXc0mf6x8AZ7rbNJ+6zwzCbQgwQswnrQ6SXfsl7MUOsq9Q/dDDg99Bit1ZMrufk2zwSiJfC0UBpoFrAG2BL4LnAE8EC0u7LhJlBiAhZhJXZOD5qmf/SfCxwNvDN0SngEmBP6h1qI9eBD4S0XRkB1G98A1HchUReTC0IJocIM8UIm0CsELMJ6xdPl32ftSET9Qz8O/ByoFeRV4V79MPhD+bdhC00gWgJqc/Nr4H+AX4TuJW8KRbVdHDtat9rwMhOwCCuzd3rLNh1D6vhRkS+N9aG7wm/qvtdbRLxbEyiewNbAGwEV0/7fIMgcgS7eD16xRwhYhPWIoyPYpo4i1Vf0BXW2LgOeASg52MMETKD9BA4GXlr3huTEcDzZrLh2+y3yCibQxQQswrrYuZFt7dnAW0L+yXHAp4AfAvsC6yLbi801gRgJKCXgZ6FdXO34cUL45UiJ+h4mYAI5E7AIyxmopxszAYmwVwKfBb4DvBr4AHBtyFMZ88S+0QRMIBOB2t9B/QLkYQImUAABi7ACIHuJTAS2D/1CdRyptyHvDr+R7w78LdMMvsgETGA8BLYD7gf+EbgTUBRMdfruCTma45nb95qACQxDwCLMj0WZCOjtLCXkTwaOChEwva3lYQIm0H4CqhOm+nwaygXTmBY6WTg5v/38vUIPErAI60Gnl2zL04FTwxuQK8MbknpLUjkp1VA80knBJXOazelqAhJg+s9/77razd5cGQhYhJXBC71tQ61Aq6Jg3wbeDPw+1Cg6E9i1rl5Yb5Py7k2g/QT+JbQN+2b4JehK4GvtX9YrmEBvErAI602/l3HXKkXxeuCcOuNUpPU84JYyGmybTKDLCOjtyK8As4H/AE4Gvge8Frivy/bq7ZhAKQhYhJXCDTYC0A+Aq0LfyIcAJeqrbtiRIUnYkEzABNpLQG2LXhHeUFYE7NDQveIbwA3tXdqzm0BvErAI602/l3XX/wx8qc64E4Evl9VY22UCXUag9oayImH/Dvy/8PfRBZO7zNHeTnkIWISVxxe9bskOoSjramALYAWwP3Cj2xb1+qPh/RdIQG9IzgWeE44g3w/8scD1vZQJ9BQBi7CecnepN/uscBypI5FJ4UjkQGBPty0qtd9sXPcQUMRrc+DmsCX9PfxQeEP5ge7ZpndiAuUhYBFWHl/YEpgFLAog3huEmOqGeZiACbSfwE7AvYAKJCsafVN4MebtLtbafvheoTcJWIT1pt/LtOs+YMdgkI4iTw+FWg8A+sORiKp2e5iACbSfgKJhfwrR55cBv23/kl7BBHqXgEVY7/q+LDtXHbC7gN+ENyTVQFjRrxcBa12tuyxush1dTEA1+iS49PdOBZNPAF4V/q/WRYsBN/Du4gfAW+scAYuwzrH3ysMTcLVuPxkmUCwB9YzUm8m1Cvn65UfdKtQ+TP99MbwoU6xVXs0EeoCARVgPODmiLbpad0TOsqldSUBlKlSc9TFgWUjSf7Qrd+pNmUAJCFiElcAJNmGIgKt1+0Ewgc4S0LHkr4FLAb2lfDXw7vDndZ01zaubQHcSsAjrTr/GuCtX647Ra7a5mwjo76CiYB8DahXzdRR5bl3Zim7ar/diAh0nYBHWcRfYgEDA1br9KJhAZwmoVp/qgr0jdKp4E/Dd8PWdnTXNq5tAdxKwCOtOv8a6K1frjtVztrsbCOjnwcLQrqi2n88Bp4RE/W7Yo/dgAqUiYBFWKnf0vDFOCu75R8AASkBAxVq3Bh4E/lwCe2yCCXQtAYuwrnVtdBtzUnB0LrPBXUjAbyh3oVO9pfISsAgrr296zTInBfeax73fshHwG8pl84jt6XoCFmFd7+JoNuik4GhcZUO7lIDfUO5Sx3pb5SVgEVZe3/SaZU4K7jWPe79lI+A3lMvmEdvT9QQswrrexdFsUO2KpgDKDds89LBzUnA07rOhXULAbyh3iSO9jTgIWITF4adesFL5KHeERt6fBX4ADPTCxr1HEygJAQkw9ZC8BPhDaOhdEtNshgl0JwGLsO70a8y7mgEcAXwGWALsDTwc84ZsuwlEQkCR6MOBQ8P/zwcuA65znbBIPGgzoyNgERady7rWYP0AeA3wImDPIMB+CHwLWNu1u/bGTKB8BHYKvwh9ITTx3sO/CJXPSbaoOwhYhHWHH7thF/qH/n/DRt4Ymgc/1g0b8x5MIBICtZQAmXsicI1TAiLxnM2MloBFWLSu60rD+4BdgMOA//BxZFf62JsqL4EtgWOBvwf6gZuAXwA/93FkeZ1my+ImYBEWt/+6yXodR74SOBg4KvwA+DpwqY8ju8nN3ksEBKYBrwW+4uPICLxlE6MmYBEWtfu6yvhnAGcBykP5HbC8q3bnzZhA+QnUH0fOAa4E7gRWl990W2gCcRKwCIvTb7baBEzABPImoGj0U0IaQN5zez4TMIFhCFiE+bEwARMwARMwARMwgQ4QsAjrAHQvaQImYAImYAImYAIWYX4GTMAETMAETMAETKADBCzCOgDdS5qACZiACZiACZiARZifARMwARMwARMwARPoAAGLsA5A95ImYAImYAImYAImYBHmZ8AE4iQwFbgV+CTw+Ra2UKsFtR/wmxbuG+nSsdqSx/Jq9v7ZDI3e3xA4uQ9iHtQ9hwmYQC4ELMJywehJTKBwApOA04FfA99tYfVdgbuAF4R7W7i16aVjtSWPtbOKK7XC+hJgEZYHdc9hAiaQCwGLsFwwehITKJyAhM884GfAd4B3AopyDQInAecDZwArgOeGaNFmwI+BU4MIuwP4QBBziqqpX+d/h6+fBpwSqqW/D5gB6P/rh9lpoy3qfrAgtJ+6GPgI8PuwrvoTqjPChGDT1cC3m9BTI3dFurSfvwPOBhYCvwydFRTJeyBEuGTvvsC/AD8F/jPce274eg3wCouwwp9TL2gCJjACAYswPx4mECeByaG/pto86ThS/0mISeBIiEmg/StwCXBb2OKZwGnA04MI+yfghNC0+XnA/PB9RYu+FkTN3YDEmkTN3Cao6m25METYNg+i7RPA48BeQXSpL+GRgO75VRBTzY5TXwZcB8g22aS53w8sAv4SRF4l7F171fclSBUd0z1qPH0NcC0gO5ZZhMX5sNtqE+hWAhZh3epZ76vbCTSKsM8AOmqUwJEwuTkIHEWgJGQOAG4AXhzEiY4jHwQOD306FXHSn/X9JcB9wLuAG8N9zwb+kEGEKdKm3p//ECJQiopJeOnY9ON1NioSpojWf42Q07YN8EfgQ0E8vTcILUXXLgB2B14amrzLNNktOx8NUcD3AM8CHgpRPUX9fBzZ7X8zvD8TiIiARVhEzrKpJlBHoJkIk5iaWBclUwNm5YzpqO4WQKLoT0FsvTkILR3hpUG0SYTdFPKndIwpEbQLcGCTo0iZVG/L9SHhX/dKCEpIbRUEkl4i0LGihOK2wP0hWtcsEqZ/n84Djg9RrLcCEpuK5Km5tObRf5fWcXlLOFJVJPDkcEQrUZY1d8wPmQmYgAkURsAirDDUXsgEciWQVYR9C7g3CBWJIB1JHgK8BPhiEFCKjr0D+HCdWKsdBcpoiTUdTzYb9bbUr6dcMOWYqSm0olY6Oj0UmB3ysxSZ0jHiSG93SlQqZ0xHovsH8SXbazZJXCmXTeLx6+H/ioY9E/geMCcce34Z0BGpI2G5PoaezARMYDwELMLGQ8/3mkDnCEj46DhP5RkkMBQh2gE4JkTC6j+bFY7x6q19fhAsEmIaiibpOt2v477a/Ep4l6DR8eRIIqzZesrDemUop/GicLSpeXScqKjVicH+ZnNPBwaAz4WonRL+lfu2T3jLsxbhkp36T8evegvy7cDHQl5abW4dV+4NPNw5t3llEzABE3iSgEWYnwYT6A0CW4RcsUcatqu3FZXIr7co68dOwOXAn4E3hXsVQdOxZf1QbpfywJR3VT+0nt7G1Pfr36jUUaly1laHi/tDZC7rvK16S8ehq+rWa/V+X28CJmACbSNgEdY2tJ7YBKIloOKreqNRo5bQL7GkvLK+hl1JPClvTHlXYxntmncstvgeEzABEyiUgEVYobi9mAlEQ0B5VYqOqUSFhwmYgAmYQBsIWIS1AaqnNAETMAETMAETMIHRCFiEjUbIn5uACZiACZiACZhAGwhYhLUBqqc0ARMwARMwARMwgdEIWISNRsifm4AJmIAJmIAJmEAbCFiEtQGqpzQBEzABEzABEzCB0QhYhI1GyJ+bgAmYgAmYgAmYQBsI/H/8gF5fZ3HahwAAAABJRU5ErkJggg==" }, "metadata": { "jupyter-vega3": "#5ee9966a-ba11-4902-afdb-475556325e20" }, "output_type": "display_data" } ], "source": [ "dat_wkd.vgplot.line(value_name='Hospital mortality rate')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Model building\n", "\n", "Let's try to incorporate what we saw above into a very simple model. We will use logistic regression with hospital mortality as our outcome. First an unadjusted estimate, and then we will try to adjust for admission type.\n", "\n", "The unadjusted analysis should mirror pretty closely what we saw in the one of the tables above. The odds ratio corresponding with 14.0% and 10.8% mortality in the the weekend and weekday groups, respectively, is about 1.35. Performing logistic regression on the same data:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Model: GLM AIC: 27416.8526
Link Function: logit BIC: -379723.8199
Dependent Variable: hospital_expire_flag Log-Likelihood: -13706.
Date: 2018-03-02 10:45 LL-Null: -13738.
No. Observations: 38557 Deviance: 27413.
Df Model: 1 Pearson chi2: 3.86e+04
Df Residuals: 38555 Scale: 1.0000
Method: IRLS
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Coef. Std.Err. z P>|z| [0.025 0.975]
Intercept -2.1127 0.0185 -114.2000 0.0000 -2.1490 -2.0765
C(inday_icu_wkd)[T.weekend] 0.2992 0.0368 8.1288 0.0000 0.2270 0.3713
" ], "text/plain": [ "\n", "\"\"\"\n", " Results: Generalized linear model\n", "=============================================================================\n", "Model: GLM AIC: 27416.8526 \n", "Link Function: logit BIC: -379723.8199\n", "Dependent Variable: hospital_expire_flag Log-Likelihood: -13706. \n", "Date: 2018-03-02 10:45 LL-Null: -13738. \n", "No. Observations: 38557 Deviance: 27413. \n", "Df Model: 1 Pearson chi2: 3.86e+04 \n", "Df Residuals: 38555 Scale: 1.0000 \n", "Method: IRLS \n", "-----------------------------------------------------------------------------\n", " Coef. Std.Err. z P>|z| [0.025 0.975]\n", "-----------------------------------------------------------------------------\n", "Intercept -2.1127 0.0185 -114.2000 0.0000 -2.1490 -2.0765\n", "C(inday_icu_wkd)[T.weekend] 0.2992 0.0368 8.1288 0.0000 0.2270 0.3713\n", "=============================================================================\n", "\n", "\"\"\"" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# R style syntax\n", "simple_glm = smf.glm('hospital_expire_flag ~ C(inday_icu_wkd)', \n", " data=data, family=sm.families.Binomial()).fit()\n", "simple_glm.summary2()\n", "\n", "# Alternative syntax\n", "# y = data.hospital_expire_flag\n", "# X = sm.tools.add_constant(data.inday_icu_wkd.factorize()[0])\n", "# simple_glm = sm.GLM(y, X, family=sm.families.Binomial()).fit()\n", "# simple_glm.summary2()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "...yields the same results. The coefficient shown above for weekend is on the log scale, so when we exponentiate it, we get the odds-ratio: `exp(0.2992) = 1.35`. So, looking at these crude rates and odds ratios, we can see that patients admitted on a weekend have about a 35% increase in the odds of dying in the hospital when compared to those on a weekday. This effect is statistically significant (p<0.001). \n", "\n", "Are we done?\n", "\n", "I hope not. We saw from the tables and figures above, there is likely some confounding and maybe even effect modification happening. Next let''s look at admission type and weekend ICU admission in the same model. There are two such models we could consider. \n", "\n", "The first adjusts for admission type, but assumes that the effect of weekend admission is the same regardless if the patient is of any of the admission types. The second one adjusts for admission type, but then allows the effect of weekend ICU admission to vary across the different levels of admission type. \n", "\n", "The first type of model would be able to account for confounding (when a nuisance variable is associated with both the outcome and the exposure/variable of interest), while the second permits what is called effect modification or a statistical interaction. \n", "\n", "Interactions are sometimes difficult to understand, but if ignored, can lead to incorrect conclusions about the effect of one or more of the variables. In this example, we fit both models, output estimates of the log-odds ratios, and perform a hypothesis test which evaluates the statistical significance of dropping one of the variables. Below is the resulting output:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Model: GLM AIC: 26729.0141
Link Function: logit BIC: -380394.5386
Dependent Variable: hospital_expire_flag Log-Likelihood: -13361.
Date: 2018-03-02 10:45 LL-Null: -13738.
No. Observations: 38557 Deviance: 26721.
Df Model: 3 Pearson chi2: 3.85e+04
Df Residuals: 38553 Scale: 1.0000
Method: IRLS
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Coef. Std.Err. z P>|z| [0.025 0.975]
Intercept -3.6173 0.0801 -45.1364 0.0000 -3.7743 -3.4602
C(inday_icu_wkd)[T.weekend] 0.1444 0.0372 3.8871 0.0001 0.0716 0.2172
C(admission_type)[T.EMERGENCY] 1.6944 0.0822 20.6095 0.0000 1.5333 1.8555
C(admission_type)[T.URGENT] 1.5881 0.1231 12.9034 0.0000 1.3469 1.8293
" ], "text/plain": [ "\n", "\"\"\"\n", " Results: Generalized linear model\n", "===============================================================================\n", "Model: GLM AIC: 26729.0141 \n", "Link Function: logit BIC: -380394.5386\n", "Dependent Variable: hospital_expire_flag Log-Likelihood: -13361. \n", "Date: 2018-03-02 10:45 LL-Null: -13738. \n", "No. Observations: 38557 Deviance: 26721. \n", "Df Model: 3 Pearson chi2: 3.85e+04 \n", "Df Residuals: 38553 Scale: 1.0000 \n", "Method: IRLS \n", "-------------------------------------------------------------------------------\n", " Coef. Std.Err. z P>|z| [0.025 0.975]\n", "-------------------------------------------------------------------------------\n", "Intercept -3.6173 0.0801 -45.1364 0.0000 -3.7743 -3.4602\n", "C(inday_icu_wkd)[T.weekend] 0.1444 0.0372 3.8871 0.0001 0.0716 0.2172\n", "C(admission_type)[T.EMERGENCY] 1.6944 0.0822 20.6095 0.0000 1.5333 1.8555\n", "C(admission_type)[T.URGENT] 1.5881 0.1231 12.9034 0.0000 1.3469 1.8293\n", "===============================================================================\n", "\n", "\"\"\"" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Without effect modification\n", "adj_glm = smf.glm('hospital_expire_flag ~ C(inday_icu_wkd) + C(admission_type)', \n", " data=data, family=sm.families.Binomial()).fit()\n", "adj_glm.summary2()\n", "# drop1(adj.glm,test=\"Chisq\")" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Model: GLM AIC: 26712.4403
Link Function: logit BIC: -380393.9926
Dependent Variable: hospital_expire_flag Log-Likelihood: -13350.
Date: 2018-03-02 10:45 LL-Null: -13738.
No. Observations: 38557 Deviance: 26700.
Df Model: 5 Pearson chi2: 3.86e+04
Df Residuals: 38551 Scale: 1.0000
Method: IRLS
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Coef. Std.Err. z P>|z| [0.025 0.975]
Intercept -3.7169 0.0862 -43.1428 0.0000 -3.8858 -3.5481
C(inday_icu_wkd)[T.weekend] 1.3232 0.2388 5.5409 0.0000 0.8551 1.7912
C(admission_type)[T.EMERGENCY] 1.8014 0.0883 20.4002 0.0000 1.6283 1.9744
C(admission_type)[T.URGENT] 1.6095 0.1496 10.7598 0.0000 1.3164 1.9027
C(inday_icu_wkd)[T.weekend]:C(admission_type)[T.EMERGENCY] -1.2071 0.2418 -4.9913 0.0000 -1.6812 -0.7331
C(inday_icu_wkd)[T.weekend]:C(admission_type)[T.URGENT] -0.9872 0.3036 -3.2521 0.0011 -1.5822 -0.3922
" ], "text/plain": [ "\n", "\"\"\"\n", " Results: Generalized linear model\n", "===========================================================================================================\n", "Model: GLM AIC: 26712.4403 \n", "Link Function: logit BIC: -380393.9926\n", "Dependent Variable: hospital_expire_flag Log-Likelihood: -13350. \n", "Date: 2018-03-02 10:45 LL-Null: -13738. \n", "No. Observations: 38557 Deviance: 26700. \n", "Df Model: 5 Pearson chi2: 3.86e+04 \n", "Df Residuals: 38551 Scale: 1.0000 \n", "Method: IRLS \n", "-----------------------------------------------------------------------------------------------------------\n", " Coef. Std.Err. z P>|z| [0.025 0.975]\n", "-----------------------------------------------------------------------------------------------------------\n", "Intercept -3.7169 0.0862 -43.1428 0.0000 -3.8858 -3.5481\n", "C(inday_icu_wkd)[T.weekend] 1.3232 0.2388 5.5409 0.0000 0.8551 1.7912\n", "C(admission_type)[T.EMERGENCY] 1.8014 0.0883 20.4002 0.0000 1.6283 1.9744\n", "C(admission_type)[T.URGENT] 1.6095 0.1496 10.7598 0.0000 1.3164 1.9027\n", "C(inday_icu_wkd)[T.weekend]:C(admission_type)[T.EMERGENCY] -1.2071 0.2418 -4.9913 0.0000 -1.6812 -0.7331\n", "C(inday_icu_wkd)[T.weekend]:C(admission_type)[T.URGENT] -0.9872 0.3036 -3.2521 0.0011 -1.5822 -0.3922\n", "===========================================================================================================\n", "\n", "\"\"\"" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# With effect modification\n", "adj_glm_int = smf.glm('hospital_expire_flag ~ C(inday_icu_wkd) * C(admission_type)', \n", " data=data, family=sm.families.Binomial()).fit()\n", "adj_glm_int.summary2()\n", "# drop1(adj.glm,test=\"Chisq\")" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
admission_typeinday_icu_wkd
0ELECTIVEweekday
1ELECTIVEweekend
2EMERGENCYweekday
3EMERGENCYweekend
4URGENTweekday
5URGENTweekend
\n", "
" ], "text/plain": [ " admission_type inday_icu_wkd\n", "0 ELECTIVE weekday\n", "1 ELECTIVE weekend\n", "2 EMERGENCY weekday\n", "3 EMERGENCY weekend\n", "4 URGENT weekday\n", "5 URGENT weekend" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create data structure to hold odds of hospital death\n", "def expand_grid(data_dict):\n", " rows = itertools.product(*data_dict.values())\n", " return pd.DataFrame.from_records(rows, columns=data_dict.keys())\n", "\n", "weekend_grid = expand_grid({'inday_icu_wkd': ['weekday', 'weekend'],\n", " 'admission_type': ['ELECTIVE', 'EMERGENCY', 'URGENT']})\n", "\n", "weekend_grid" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the first model (no interaction), we see that although the effect of weekend is almost halved, it remains statistically significant, after adjusting for admission type (p<0.001).\n", "\n", "In the second model, we are primarily interested in the significance of the interaction. We can see when assessed with the `drop1` function, the interaction (`weekend:admission_type`) is statistically significant (p<0.001), suggesting that the effect of weekend may be different depending on which hospital admission type you are. How exactly to interpret this:\n", "\n", "One way of looking at this complexity is by computing the odds ratio in each of the levels of admission type. We can do this using the `predict` function, which by default outputs the log-odds of death. If for each hospital admission type, we calculate the log odds of death for each of the levels of weekend," ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "def prob2logodds(prob):\n", " odds = prob / (1 - prob)\n", " logodds = np.log(odds)\n", " return logodds" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
predictlog_odds
inday_icu_wkdadmission_type
weekdayELECTIVE0.023732-3.716925
weekendELECTIVE0.083650-2.393754
weekdayEMERGENCY0.128359-1.915548
weekendEMERGENCY0.141909-1.799525
weekdayURGENT0.108382-2.107381
weekendURGENT0.145363-1.771439
\n", "
" ], "text/plain": [ " predict log_odds\n", "inday_icu_wkd admission_type \n", "weekday ELECTIVE 0.023732 -3.716925\n", "weekend ELECTIVE 0.083650 -2.393754\n", "weekday EMERGENCY 0.128359 -1.915548\n", "weekend EMERGENCY 0.141909 -1.799525\n", "weekday URGENT 0.108382 -2.107381\n", "weekend URGENT 0.145363 -1.771439" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "weekend_grid['predict'] = adj_glm_int.predict(weekend_grid[['inday_icu_wkd','admission_type']])\n", "weekend_grid['log_odds'] = prob2logodds(weekend_grid['predict'])\n", "weekend_grid.set_index(['inday_icu_wkd','admission_type'], inplace=True)\n", "weekend_grid" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now compute the log odds ratio ($log(OR) = logOdds_{weekend} - logOdds_{weekday}$), and exponentiate to get the odds ratio:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "admission_type\n", "ELECTIVE 3.755307\n", "EMERGENCY 1.123022\n", "URGENT 1.399257\n", "Name: log_odds, dtype: float64" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff_grid = weekend_grid.loc['weekend']['log_odds'] - weekend_grid.loc['weekday']['log_odds']\n", "np.exp(diff_grid)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, this mirrors what we saw above. While there may be differences between EMERGENCY and URGENT admission types, an ELECTIVE admission occurring on a weekend has an odds of mortality almost four times that of an ELECTIVE admission on a weekday. This seems particularly odd -- patients usually do not get admitted to a hospital electively on a weekend.\n", "\n", "What do you think?\n", "\n", "- Do patients admitted on a weekend have a higher rate of mortality than those admitted during the week?\n", "- Who is most affected, if at all?\n", "- What factors can you rule out might be causing this effect? e.g., is it because the patients are simply sicker on a weekend? Are they more likely to have complications?\n", "\n", "Looking forward to see what you guys come up with!" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 2 }