Skip to content

Instantly share code, notes, and snippets.

@sujitpal
Created April 28, 2014 22:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sujitpal/11385797 to your computer and use it in GitHub Desktop.
Save sujitpal/11385797 to your computer and use it in GitHub Desktop.
Basic Data Analysis of Medicaid Benefits data from CMS.gov
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:fb3979f572479cd1e09774039fc4738fed0a5cc8d7b7ea741dc1b0a38eebb14d"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Medicaid Dataset - Basic Data Analysis of Benefit Summary Data #\n",
"\n",
"CMS.gov has made available a [synthetic dataset](http://www.cms.gov/Research-Statistics-Data-and-Systems/Statistics-Trends-and-Reports/SynPUFs/DE_Syn_PUF.html) of Medicare/Medicaid claims data. The objective is to allow data enterpreneurs to figure out interesting ways to use the data.\n",
"\n",
"As noted in the [Data Codebook (PDF)](http://www.cms.gov/Research-Statistics-Data-and-Systems/Statistics-Trends-and-Reports/SynPUFs/Downloads/SynPUF_Codebook.pdf), the data has been heavily anonymized and imputed, so any conclusions drawn from this dataset may not be reliable."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import os\n",
"import operator\n",
"import random\n",
"%matplotlib inline"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We read the benefit summary data in. There are 59 files representing benefit summaries from 2008-2010. There are a total of 6,758,744 records. We copy these into a separate benefit_summary directory so all the files can be loaded into a single dataframe."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"dfs = []\n",
"for csvfile in os.listdir(\"benefit_summary\"):\n",
" dfs.append(pd.read_csv(\"benefit_summary/\" + csvfile))\n",
"df = pd.concat(dfs)\n",
"df.shape"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 2,
"text": [
"(6758685, 32)"
]
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# find the distribution of records by gender\n",
"df[[\"BENE_SEX_IDENT_CD\"]].groupby(\"BENE_SEX_IDENT_CD\").count()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>BENE_SEX_IDENT_CD</th>\n",
" </tr>\n",
" <tr>\n",
" <th>BENE_SEX_IDENT_CD</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 3002984</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 3755701</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
" BENE_SEX_IDENT_CD\n",
"BENE_SEX_IDENT_CD \n",
"1 3002984\n",
"2 3755701"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# find distribution of records by race\n",
"df[[\"BENE_RACE_CD\"]].groupby(\"BENE_RACE_CD\").count()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>BENE_RACE_CD</th>\n",
" </tr>\n",
" <tr>\n",
" <th>BENE_RACE_CD</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 5596084</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 719751</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> 284654</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td> 158196</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
" BENE_RACE_CD\n",
"BENE_RACE_CD \n",
"1 5596084\n",
"2 719751\n",
"3 284654\n",
"5 158196"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So it looks like the beneficiaries are split almost evenly by gender with men constituting about 45% of the dataset and the women constituting the other 55%. \n",
"\n",
"Race-wise, whites constitute 83%, blacks 11%, other (asians, native americans, etc) 4% and hispanics 2%. This roughly reflects the race mix among older Americans."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# visualize incidence of diseases by gender\n",
"df_trunc = df[[\"BENE_SEX_IDENT_CD\", \"SP_ALZHDMTA\", \"SP_CHF\", \n",
" \"SP_CHRNKIDN\", \"SP_CNCR\", \"SP_COPD\", \"SP_DEPRESSN\", \"SP_DIABETES\", \n",
" \"SP_ISCHMCHT\", \"SP_OSTEOPRS\", \"SP_RA_OA\", \"SP_STRKETIA\"]]\n",
"df_grouped = df_trunc.groupby(\"BENE_SEX_IDENT_CD\").agg(lambda x: 100.0 * np.mean(x - 1))\n",
"df_grouped.transpose()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>BENE_SEX_IDENT_CD</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>SP_ALZHDMTA</th>\n",
" <td> 81.597904</td>\n",
" <td> 79.388801</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_CHF</th>\n",
" <td> 71.964619</td>\n",
" <td> 69.425575</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_CHRNKIDN</th>\n",
" <td> 83.974040</td>\n",
" <td> 82.471981</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_CNCR</th>\n",
" <td> 93.506725</td>\n",
" <td> 93.474401</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_COPD</th>\n",
" <td> 87.954048</td>\n",
" <td> 86.703974</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_DEPRESSN</th>\n",
" <td> 80.288973</td>\n",
" <td> 77.570579</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_DIABETES</th>\n",
" <td> 65.798020</td>\n",
" <td> 62.108698</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_ISCHMCHT</th>\n",
" <td> 59.353030</td>\n",
" <td> 56.210438</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_OSTEOPRS</th>\n",
" <td> 84.587930</td>\n",
" <td> 82.606789</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_RA_OA</th>\n",
" <td> 86.827069</td>\n",
" <td> 85.115562</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_STRKETIA</th>\n",
" <td> 96.092187</td>\n",
" <td> 95.756877</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"text": [
"BENE_SEX_IDENT_CD 1 2\n",
"SP_ALZHDMTA 81.597904 79.388801\n",
"SP_CHF 71.964619 69.425575\n",
"SP_CHRNKIDN 83.974040 82.471981\n",
"SP_CNCR 93.506725 93.474401\n",
"SP_COPD 87.954048 86.703974\n",
"SP_DEPRESSN 80.288973 77.570579\n",
"SP_DIABETES 65.798020 62.108698\n",
"SP_ISCHMCHT 59.353030 56.210438\n",
"SP_OSTEOPRS 84.587930 82.606789\n",
"SP_RA_OA 86.827069 85.115562\n",
"SP_STRKETIA 96.092187 95.756877"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Men lead in the incidence of disease in almost all cases - they show higher incidence of Alzheimer's Disease, CHF, Depression, Diabetes, Ischemic Heart Disease, Osteoporosis and Rheumatoid/Osteo-Arthritis. Men and women seem to have an equal chance of contracting Chronic Kidney Disease, Cancer, COPD, and Stroke. The data is shown visually below:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df_grouped.plot(kind=\"bar\", legend=False)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
"<matplotlib.axes.AxesSubplot at 0x1f289bd0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAEKCAYAAAAPVd6lAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGctJREFUeJzt3X9s1Hcdx/HXQUskQimYcd0AdwTWQEuhx36gBqW35rpN\nBetgDUylZQgmOJVlQJDMpDFxdKjb+DHdMsnagQi4JR0uWqVpzx/EblPYhoOuDHsL40cZQrfifuDa\nr3/AHf11vev1Q+/77ff5SEj76X3v8/3c8e6r377ve996LMuyBABwrGGpXgAAYGAIcgBwOIIcAByO\nIAcAhyPIAcDhCHIAcLg+g/y+++6T1+tVXl5e9Gvnz59XMBhUdna2ioqK1NraGr1t48aNuummmzRt\n2jT96U9/unarBgBE9Rnky5YtU01NTZevVVRUKBgMqqmpSYWFhaqoqJAkHTlyRHv27NGRI0dUU1Oj\nVatWqaOj49qtHAAgKU6Qf/GLX9TYsWO7fG3fvn0qLS2VJJWWlqq6ulqS9MILL2jJkiVKT0+Xz+fT\n1KlT9fLLL1+jZQMAIvrdI29paZHX65Ukeb1etbS0SJJOnTqliRMnRrebOHGiTp48aWiZAIBY0gZy\nZ4/HI4/H0+ftiXwNABBfrCuq9DvIvV6vzpw5o6ysLJ0+fVrjx4+XJE2YMEEnTpyIbvfOO+9owoQJ\n/VoMro3y8nKVl5enehkYQqipwdfXQXC/WysLFixQVVWVJKmqqkrFxcXRr+/evVuXLl1Sc3Ozjh07\npttuuy3JJcOkcDic6iVgiKGm7KXPI/IlS5boz3/+s86dO6dJkybpxz/+sdavX6+SkhJt375dPp9P\ne/fulSTl5OSopKREOTk5SktL0y9+8QvaKAAwCDyDfRlbj8dDa2WQhUIhFRQUpHoZGEKoqcHXV3YS\n5ADgAH1lJ2/Rd4FQKJTqJWCIoabshSAHAIejtQIADkBrBY6UMXZs9E1nff3L6HYZCcBtOCJ3Aaee\nYeDxeKT6+vgbBgLU1CBzak1ljB2rtk5XbI1ldGam3r9wYRBWlLi+snNAb9EHACdpa21N6OCgLRAY\nhNWYQ2vFBZx45AR7o6bshSAHAIcjyF2Ac35hGjVlLwR5inFmBkyjptyHFztTbDBefKGf6S7UlPtw\nRA4ADkeQuwD9TJhGTdkLQQ4ADkeQuwD9TJhGTdkLQQ4ADkeQuwD9TJhGTdkLQQ4ADkeQuwD9TJhG\nTdkLQQ4ADkeQuwD9TJhGTdkLQe4QwzU8oetnjM3g+hmA23CtFYdoV7vqFf/6GYG2ntfPoJ8J06gp\ne+GIHINuXEZGQr9dAEgMQe4CdutnXmhrkyXF/YdrayDtOrvVlNvRWgFcaiDtOtgLR+QuQD8TplFT\n9kKQA3A8t7/uQpC7wGD1MzMy3f3N5CZ265G7/XUXeuQwpu29Nqk8gQ0T2QZAwjgiv0bs9Kse/UyY\nRk3ZC0fk10jkV714aDQAGCiOyF3Abv1MOB81ZS8EOeAQdmrXDRZeQE8MrRUXoJ85NNipXTdYNcUL\n6IlJ+oh848aNys3NVV5enu699159/PHHOn/+vILBoLKzs1VUVKTW1laTa72mMjLGJfSTPyNjXKqX\nCgBdJBXk4XBYTz/9tA4ePKjDhw+rvb1du3fvVkVFhYLBoJqamlRYWKiKigrT671m2touKP5ZqNaV\n7ZyFfiZMo6bsJakgz8jIUHp6uj744AN98skn+uCDD3TDDTdo3759Ki0tlSSVlpaqurra6GIBAD0l\n1SMfN26cHnzwQX32s5/VyJEjdccddygYDKqlpUVer1eS5PV61dLSYnSxiG/4cCX84k9m5mhduPD+\nNV4RhiJed7GXpIL8+PHjevzxxxUOhzVmzBjdc8892rlzZ5dt+no1uaysTD6fT5KUmZmp/Pz8aGFE\nfmUb7PFVkXFBjPHl+yQ6X/zZJL36qpSff/Vzqec4sqkuj/OV3+u4vV167LH40+XnS4FAm/HnU+Er\nC/Wp7/EVoSsfC2KM+3wAnceR+6eofgZtfOVxFkQeb4xxVJznL149RcYRg/14JV2uGV+nz9XLOLK+\nKx8LYowl9ev7LZX/36FQSJWVlZIUzctYPJZl9fsSBHv27NH+/fv1q1/9SpK0Y8cONTQ0qK6uTvX1\n9crKytLp06cVCATU2NjYdYcej5LY5TV3+YdOYucEJLJ+j8eT+BkG9fEvJapAILFLjirQY7rOddtt\nSqP/Fx6PJ+EzDEw/N3arqYyMcQm/njJ69Fi9//75uNulsqa6P7+dD2auJWrqqr6yM6ke+bRp09TQ\n0KAPP/xQlmWptrZWOTk5mj9/vqqqqiRJVVVVKi4uTn7VgIMl+uK5U19Ah70k1VqZNWuWli5dqltu\nuUXDhg3T7NmztXLlSrW1tamkpETbt2+Xz+fT3r17Ta8XSejtaBwYCHrk9pL0G4LWrVundevWdfna\n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\nHI4gBwCH+z//jTLpwmDAggAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x219e1d0>"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# visualize incidence of diseases by race\n",
"df_trunc = df[[\"BENE_RACE_CD\", \"SP_ALZHDMTA\", \"SP_CHF\", \n",
" \"SP_CHRNKIDN\", \"SP_CNCR\", \"SP_COPD\", \"SP_DEPRESSN\", \"SP_DIABETES\", \n",
" \"SP_ISCHMCHT\", \"SP_OSTEOPRS\", \"SP_RA_OA\", \"SP_STRKETIA\"]]\n",
"df_grouped = df_trunc.groupby(\"BENE_RACE_CD\").agg(lambda x: 100.0 * np.mean(x - 1))\n",
"df_grouped.transpose()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>BENE_RACE_CD</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>5</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>SP_ALZHDMTA</th>\n",
" <td> 80.010754</td>\n",
" <td> 81.348689</td>\n",
" <td> 83.989334</td>\n",
" <td> 82.127235</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_CHF</th>\n",
" <td> 69.962656</td>\n",
" <td> 72.319316</td>\n",
" <td> 75.970828</td>\n",
" <td> 73.681383</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_CHRNKIDN</th>\n",
" <td> 82.826670</td>\n",
" <td> 83.827324</td>\n",
" <td> 86.614276</td>\n",
" <td> 84.818200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_CNCR</th>\n",
" <td> 93.244848</td>\n",
" <td> 94.377639</td>\n",
" <td> 95.212785</td>\n",
" <td> 94.970796</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_COPD</th>\n",
" <td> 87.006378</td>\n",
" <td> 87.860107</td>\n",
" <td> 89.930231</td>\n",
" <td> 88.671016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_DEPRESSN</th>\n",
" <td> 78.489047</td>\n",
" <td> 79.644210</td>\n",
" <td> 81.982688</td>\n",
" <td> 79.309211</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_DIABETES</th>\n",
" <td> 62.998876</td>\n",
" <td> 66.469237</td>\n",
" <td> 69.711650</td>\n",
" <td> 67.132544</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_ISCHMCHT</th>\n",
" <td> 56.630261</td>\n",
" <td> 61.178935</td>\n",
" <td> 64.912490</td>\n",
" <td> 62.750638</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_OSTEOPRS</th>\n",
" <td> 83.063121</td>\n",
" <td> 85.223362</td>\n",
" <td> 86.334287</td>\n",
" <td> 85.459809</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_RA_OA</th>\n",
" <td> 85.466444</td>\n",
" <td> 87.533744</td>\n",
" <td> 88.788494</td>\n",
" <td> 87.581228</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SP_STRKETIA</th>\n",
" <td> 95.832729</td>\n",
" <td> 95.970690</td>\n",
" <td> 96.892719</td>\n",
" <td> 96.422160</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 7,
"text": [
"BENE_RACE_CD 1 2 3 5\n",
"SP_ALZHDMTA 80.010754 81.348689 83.989334 82.127235\n",
"SP_CHF 69.962656 72.319316 75.970828 73.681383\n",
"SP_CHRNKIDN 82.826670 83.827324 86.614276 84.818200\n",
"SP_CNCR 93.244848 94.377639 95.212785 94.970796\n",
"SP_COPD 87.006378 87.860107 89.930231 88.671016\n",
"SP_DEPRESSN 78.489047 79.644210 81.982688 79.309211\n",
"SP_DIABETES 62.998876 66.469237 69.711650 67.132544\n",
"SP_ISCHMCHT 56.630261 61.178935 64.912490 62.750638\n",
"SP_OSTEOPRS 83.063121 85.223362 86.334287 85.459809\n",
"SP_RA_OA 85.466444 87.533744 88.788494 87.581228\n",
"SP_STRKETIA 95.832729 95.970690 96.892719 96.422160"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As can be seen from the table above, the incidence of various diseases across different races seems to be fairly constant. The only exceptions are CHF which seems to be less prevalent among whites than other races, and Ischemic Heart Disease, which seem t obe more prevalent among whites than other races. The data is shown visually below:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df_grouped.plot(kind=\"bar\", legend=False)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"text": [
"<matplotlib.axes.AxesSubplot at 0x5c26690>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x5c15210>"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We now examine observed comorbidities in the population by calculating the correlation between different pairs of diseases. As can be seen from the top 10 pairs below, the correlation between diseases appears to be fairly weak."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"colnames = [x for x in df.columns if x.startswith(\"SP_\") and not x.endswith(\"STATE_CODE\")]\n",
"colidxs = {x[1]:x[0] for x in enumerate(colnames)}\n",
"CM = np.zeros((len(colnames), len(colnames)))\n",
"comorbidities = []\n",
"for colname1 in colnames:\n",
" for colname2 in colnames:\n",
" i = colidxs[colname1]\n",
" j = colidxs[colname2]\n",
" if i == j:\n",
" CM[i,j] = 1.0\n",
" continue\n",
" if i < j:\n",
" CM[i,j] = np.corrcoef(df.ix[:, colname1], df.ix[:, colname2])[0,1]\n",
" CM[j,i] = CM[i,j]\n",
" comorbidities.append((colname1, colname2, CM[i,j]))\n",
" continue\n",
"sorted(comorbidities, key=operator.itemgetter(2), reverse=True)[0:10]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"text": [
"[('SP_DIABETES', 'SP_ISCHMCHT', 0.47578541650029821),\n",
" ('SP_CHF', 'SP_ISCHMCHT', 0.43615577919472531),\n",
" ('SP_CHF', 'SP_DIABETES', 0.41850270374368082),\n",
" ('SP_CHRNKIDN', 'SP_DIABETES', 0.39713288341420422),\n",
" ('SP_CHF', 'SP_CHRNKIDN', 0.38213196506731339),\n",
" ('SP_CHRNKIDN', 'SP_ISCHMCHT', 0.35058275391195598),\n",
" ('SP_CHF', 'SP_COPD', 0.33059074013020173),\n",
" ('SP_DEPRESSN', 'SP_DIABETES', 0.3199180438991816),\n",
" ('SP_ALZHDMTA', 'SP_DIABETES', 0.31346118720405913),\n",
" ('SP_CHRNKIDN', 'SP_COPD', 0.31327625784275792)]"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The heatmap below summarizes the correlations between different chronic diseases graphically. Lighter colors indicate higher correlation. As expected, the lightest block is (7,8) which corresponds to SP_DIABETES and SP_ISCHMCHT."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig = plt.figure()\n",
"plt.hot()\n",
"plt.pcolormesh(CM)\n",
"plt.colorbar()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 10,
"text": [
"<matplotlib.colorbar.Colorbar instance at 0x1d8cad40>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x1f289b90>"
]
}
],
"prompt_number": 10
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment