{ "cells": [ { "cell_type": "markdown", "id": "5c0aae22", "metadata": {}, "source": [ "# Locating bad datapoints\n", "\n", "In this notebook we cover:\n", "* Approaches for **locating outliers**\n", "* Replacing missing data with **NaN** (how to do it; what choices we need to make)\n", "\n", "\n", "Outliers, by definition, have extreme values (very large or very small values). Therefore if a dataset contains outliers this can distort the calculated values of statistics such as the mean and standard deviation\n", "\n", "In real datasets, outliers are common, often arising from one of the following causes:\n", "\n", "* Real but unusual values \n", " * many basketball players are outliers in terms of height\n", "* Noise in a data recording system \n", " * in brain imaging data, motion artefacts generated by head movements (MRI) or blinks (EEG) are much larger than the real brain activity we are trying to record\n", "* Data entry error \n", " * a human types the wrong number, uses the wrong units or misplaces a decimal point\n", "* Dummy values\n", " * In some datasets an 'obviously wrong' numerical value, such as 9999, is used to indicate a missing datapoint\n", "\n", "Identifying and removing outliers and bad data points is a crucial step in the process of preparing our data for analysis, sometimes called *data wrangling*\n", "\n", "**Here is a video about types of outliers and how we might deal with them:**" ] }, { "cell_type": "code", "execution_count": 1, "id": "0d602d1f-5291-444b-99ea-ef32fbefddf9", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "" ] }, { "cell_type": "markdown", "id": "9def22a2-7e92-41eb-9a59-83d15cd51aa8", "metadata": {}, "source": [ "## Set up Python Libraries\n", "\n", "As usual you will need to run this code block to import the relevant Python libraries" ] }, { "cell_type": "code", "execution_count": 1, "id": "0e9731e8", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Set-up Python libraries - you need to run this but you don't need to change it\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import scipy.stats as stats\n", "import pandas as pd\n", "import seaborn as sns\n", "sns.set_theme(style='white')\n", "import statsmodels.api as sm\n", "import statsmodels.formula.api as smf" ] }, { "cell_type": "markdown", "id": "5b538a34", "metadata": {}, "source": [ "## Import a dataset to work with\n", "\n", "We will work with the file heartAttack.csv, which contains data on several thousand patients admitted to hospital in New York City, diagnosed with a heart attack.\n", "\n", "From this dataset we can explore how demographic and disease factors affect the duration of stay in hospital and the dollar cost of treatment.\n", "\n", "The dataset are downloaded with thanks (and with slight modifications for teaching purposes) from the website DASL (Data and Story Library)\n", "\n", "The data will be automatically loaded fromt he internet when you run this code block:" ] }, { "cell_type": "code", "execution_count": 3, "id": "659aba7e", "metadata": { "tags": [] }, "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", "
CHARGESLOSAGESEXDRGDIED
04752.001079.0F122.00.0
13941.00634.0F122.00.0
23657.00576.0F122.00.0
31481.00280.0F122.00.0
41681.00155.0M122.00.0
.....................
1283922603.571479.0F121.00.0
12840NaN791.0F121.00.0
1284114359.14979.0F121.00.0
1284212986.00570.0M121.00.0
12843NaN181.0M123.01.0
\n", "

12844 rows × 6 columns

\n", "
" ], "text/plain": [ " CHARGES LOS AGE SEX DRG DIED\n", "0 4752.00 10 79.0 F 122.0 0.0\n", "1 3941.00 6 34.0 F 122.0 0.0\n", "2 3657.00 5 76.0 F 122.0 0.0\n", "3 1481.00 2 80.0 F 122.0 0.0\n", "4 1681.00 1 55.0 M 122.0 0.0\n", "... ... ... ... .. ... ...\n", "12839 22603.57 14 79.0 F 121.0 0.0\n", "12840 NaN 7 91.0 F 121.0 0.0\n", "12841 14359.14 9 79.0 F 121.0 0.0\n", "12842 12986.00 5 70.0 M 121.0 0.0\n", "12843 NaN 1 81.0 M 123.0 1.0\n", "\n", "[12844 rows x 6 columns]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hospital=pd.read_csv('https://raw.githubusercontent.com/jillxoreilly/StatsCourseBook_2024/main/data/heartAttack.csv')\n", "display(hospital)" ] }, { "cell_type": "markdown", "id": "673f4866", "metadata": {}, "source": [ "The columns of the dataframe are:\n", " \n", "* CHARGES - dollar cost fo treatment\n", "* LOS - length of hospital stay in days\n", "* AGE - patient age in years\n", "* SEX - patient's biological sex\n", "* DRG - a code noted on dischaarge fromm hospital\n", "* DIED - 1 if the patient died, 0 if they survived" ] }, { "cell_type": "markdown", "id": "25086211", "metadata": {}, "source": [ "## Finding outliers\n", "\n", "When working with a new dataset it is always necessary to check for missing data and outliers. There are a couple of ways of checking:\n", "\n", "\n", "### Check min/max values are plausible\n", "\n", "- `df.describe()`\n", "\n", "Often if there is an outlier or misrecorded data point, the outlier will be the minimum or maximum value in a dataset:\n", "\n", "* If the decimal point is misplaced we get a very large (or small value) - eg a person's height could easily be misrecorded as 1765 cm (over 17 metres!) instead of 176.5 cm\n", "* If the wrong units are used we could get a very large or small value - eg a person's height is recorded as 1.756 (m) when it should have been recorded as 176.5 (cm) \n", "* sometimes 'dummy' values are used as placeholders for missing data - often the dummy value is `NaN` but sometimes an obviously-wrong numerical value (such as 99, 999 or 9999) is used, which will generally be a large number compared to real numerical values.\n", "* Occasionally 0 will be used as a placeholder value for missing data. This is generally a bad idea, as zero is often a plausible value for real data. If a variable has a large nummber of zero values, it is worth considering whether these could be missing data rather than real zeros.\n", "\n", "Because outliers are often the max or min value, running `df.describe()` and checking the min and max values for each datapoint is a good first step in checking for outliers\n", "\n", "Let's try it with our hospital dataset:" ] }, { "cell_type": "code", "execution_count": 4, "id": "bfd095b3", "metadata": { "tags": [] }, "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", "
CHARGESLOSAGEDRGDIED
count12145.00000012844.00000012842.00000012841.00000012841.000000
mean9879.0876158.34576567.116726121.6905230.109805
std6558.39965088.30943088.9259980.6582890.312658
min3.0000000.00000020.000000121.0000000.000000
25%5422.2000004.00000057.000000121.0000000.000000
50%8445.0000007.00000067.000000122.0000000.000000
75%12569.04000010.00000077.000000122.0000000.000000
max47910.1200009999.0000009999.000000123.0000001.000000
\n", "
" ], "text/plain": [ " CHARGES LOS AGE DRG DIED\n", "count 12145.000000 12844.000000 12842.000000 12841.000000 12841.000000\n", "mean 9879.087615 8.345765 67.116726 121.690523 0.109805\n", "std 6558.399650 88.309430 88.925998 0.658289 0.312658\n", "min 3.000000 0.000000 20.000000 121.000000 0.000000\n", "25% 5422.200000 4.000000 57.000000 121.000000 0.000000\n", "50% 8445.000000 7.000000 67.000000 122.000000 0.000000\n", "75% 12569.040000 10.000000 77.000000 122.000000 0.000000\n", "max 47910.120000 9999.000000 9999.000000 123.000000 1.000000" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hospital.describe()" ] }, { "cell_type": "markdown", "id": "5432efe2", "metadata": {}, "source": [ "I can see something suspicious!\n", "\n", "* The max values for length of stay (LOS) is 9999 days (about 3 years)\n", "* The max value for Age (AGE) is 9999 years\n", "\n", "It looks like 9999 may have been used as a dummy value for missing data." ] }, { "cell_type": "markdown", "id": "394cf9e8", "metadata": {}, "source": [ "### Plot the data\n", "\n", "What about the column CHARGES? \n", "\n", "* The maximum value of \\$48910.12 is horrifyingly high, but as we are (hopefully) unfamiliar with medical billing, it is hard to say if this is an outlier\n", "* The minimum value of \\$3 is also suspect, did they just give the patient a paracetomol and send them on their way?!\n", "\n", "To get a clearer picture we can plot the distribution of CHARGES:\n", "\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "03421177", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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nXfe6fFQbuY9cGpra5Wfn6/09HSNGDFC999/vw4cOODuZ+4D69ChQxoxYoQ2btzobmPOA+fo0aO66qqrvH5ee+01SZ1o7g0E3LPPPmuMGjXKePvtt42KigojNzfXGD9+vOFwOIJdWshbs2aNcdVVVxnZ2dnutk8//dQYOXKkMW/ePOPAgQPGhg0bjOHDhxsbNmxwj/m6OffHMbqinJwc49ZbbzXKysqMgwcPGo8//riRnJxsHDhwgHkPsNtvv9244447jD179hgHDhwwZsyYYdxwww1GY2Mjcx9gTqfTuO2224ykpCTDbrcbhsGfM4G2Y8cOY/jw4caJEyeMmpoa98/Zs2c71dwTogLM4XAYI0aMMNatW+duO336tJGcnGxs3bo1iJWFturqamPKlClGamqq8b3vfc8jRD3//PNGRkaGce7cOXfbM888Y3z3u981DKNtc+6PY3Q1hw8fNpKSkoxdu3a521paWozx48cby5YtY94D6NNPPzVmz55t7N+/391WUVFhJCUlGe+99x5zH2DPPPOMcffdd3uEKOY8sFatWmXceuutPvs609yznBdglZWVamhoUHp6urutZ8+eGjZsmMrKyoJYWWjbu3evevXqpT/+8Y9KSUnx6CsvL5fNZlN4+OePfkxPT9ehQ4dUW1vbpjn3xzG6mj59+uiFF17Qtdde626zWCwyDEOnT59m3gOoT58+WrJkia688kpJ0ieffKLi4mIlJCRoyJAhzH0AlZWVqaSkRL/61a882pnzwHr//fc1ZMgQn32dae4JUQFWXV0tSRowYIBHe3x8vI4fPx6MkjqFcePG6ZlnntFll13m1VddXa2EhASPtvj4eEnSsWPH2jTn/jhGV9OzZ0+NGTPG48Hdb7zxhj766CPdeOONzHsHeeyxx3TDDTfof/7nf7Ro0SJFR0cz9wFSV1enOXPmaP78+V7nzZwH1v79+1VbW6vJkyfr29/+tu6880698847kjrX3BOiAuzs2bOS5PEXkyRFRETI4XAEo6ROr6mpyed8SpLD4WjTnPvjGF3drl279Oijj+qmm27SuHHjmPcOcs8998hut+vWW2/V9OnTtXfvXuY+QAoKCpSamqpJkyZ59THngeN0OnX48GGdOXNGs2bN0gsvvKDhw4crLy9PO3fu7FRzH/71Q3AhIiMjJX32H83536XP/keMiooKVlmd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ff/739ezzz6rgwcPem36XrVqleLi4uRwOPSHP/xBmzdv1owZM/Rf//VfHuN8XfWSpOzsbP3973/3aHvppZc0cuRIr8/4si8vGaalpenNN9/Url279Je//EXvvvuudu/erbKyMm3evFlr1qxRZGSkzzoAhBZCFAC/6t27ty6++GIdO3as1TGNjY1yOp0eV3yGDx/e6vG+6NNPP9Xbb7+tc+fOyWazeY0vKSnRo48+6tGWlJTkvjKWlpYmwzC0YMECxcTE6JZbbnGPGzhwoN5++22dOXPGI/wsWrRIDQ0NkqS9e/dqwYIFXp/7xc/4OmFhYbLZbO76T58+rWXLlmndunXasGGDsrOz23QcAMHFxnIAfnfjjTeqtLRUDofDZ//GjRs1atQo/eMf/2j3sTdv3qxz587pueee00svveTxM3LkSG3atElNTU1feYxHH31U/fv318KFC/XJJ5+422+66SYZhqE333zTY/w3v/lNDR8+XMOHD9fgwYPbXfN5s2bN0r333uvV3qtXLz322GPq1auXDhw4YPr4ADoWIQqA3+Xm5urUqVNaunSpV19tba2Kiop0xRVXKDU1td3H3rhxo1JTUzV+/HiNHDnS4+fOO+/U6dOn9cYbb3zlMWJiYvTwww+rrq5OixcvdrePGjVK119/vZ5++ml9+OGHPt/7wQcftLvm86644gr97W9/0+7du736ampq1NjY6L4pJ4DQx3IeAL9LTU3VT3/6Uy1btkwHDx5UZmam+vTpow8++ECrV69WQ0ODXnjhhXZ/nX/Pnj3av39/qzekvOmmm9SrVy+tX7/e5zfovmjChAlat26dNm3apDvuuEMjRoyQxWLRkiVLNG3aNN122226/fbblZ6ertjYWB0+fFhbt25VaWmpUlJSvG6BUFFR4XFV64suueQSxcfHKzc3V9u3b1dOTo4mT56skSNHKioqSvv379fq1avddy4H0DkQogAExLRp0zRs2DC98soreuqpp3Tq1CklJCRo9OjReuCBB3TJJZe0+5h2u109evTw+Q08SbJarfr+97+v9evXq6Ki4muPN3/+fN122216/PHHtWHDBoWFhSkuLk6vvvqqNm3apC1btuj1119XXV2d+vbtq9TUVK1cuVLjxo3zCoA/+clPWv2cOXPmaMqUKerVq5dKSkpUWFiot956S6+++qrOnTungQMH6pZbbtH999/PpnKgE7EYrX0dBQAAAK1iTxQAAIAJhCgAAAATCFEAAAAmEKIAAABMIEQBAACYQIgCAAAwgRAFAABgAiEKAADABEIUAACACYQoAAAAEwhRAAAAJhCiAAAATPh/1PebAMmnESkAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.histplot(data=hospital, x='CHARGES')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "a303eea3", "metadata": {}, "source": [ "Hm, the distribution of costs is skewed, but the maximum value of 49000 dollars appears to just be the 'tip of the tail' rather than an actual outlier. The minimum value of 3 dollars is also not particularly unique. I wouldn't exclude any outliers from CHARGES." ] }, { "cell_type": "markdown", "id": "36bb5600", "metadata": {}, "source": [ "#### How will I know if it is a real outlier?\n", "\n", "One way is to plot the data. You can then tell 'by inspection' (by looking at the graph) whether any datapoints seem to be separated from the main body of the data distribution.\n", "\n", "Look what happens when we plot the distribution of Length of Stay:" ] }, { "cell_type": "code", "execution_count": 8, "id": "c609d0c4", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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pqYmABSbp27duqVWBhERERERFajUAYSenh5SUlKU0gr/1tXVlW47Ki6Pnp5eqZVBREREREQFKnUAYWlpidjYWOTn50tpERERaNeuHbS1tdGhQwc0aNAAkZGR0vL09HRcuXIFXbp0KbUyiIiocnny5AkWLlyInj17olOnTvj8888RExMjLS+PdwgREdVUlTqAcHZ2xrNnzzB//nzEx8dj//792L59OyZMmACg4LkFFxcXrFq1CsePH0dcXBymT58OPT099O3bt9TKICKiymXGjBm4cOECfHx8sG/fPhgZGcHd3R03btwot3cIERHVVBU+C9ObaGtrY/PmzVi2bBmcnJygo6ODWbNmwcnJScozZcoU5OXlYcGCBcjOzoalpSUCAwOlh6JLowwiIqo8kpKScObMGfzvf/9Dp06dAADz58/HqVOncPjwYWhqakrv/9HQ0ED79u2RlJSEgIAAODs7S+//8fT0hJ2dHQBgzZo1sLW1RVhYGPr376/0DqHiyiAiqskqVQCxYsWKImmmpqYICgp67Tq1atWCp6cnPD09X5unNMogIqLKoUmTJvD394exsbGUpqamBiEEnj59ikuXLhX7/p9NmzYhNTUVd+/efeP7f/r37//adwgVlqGtrV0+jSUiqoQq9S1MREREr9LS0oKdnZ3SKPHRo0dx69Yt9OjRA8nJyUUmwSjJO4TeVAYRUU3GAIKIiKq02NhYzJs3D71794aDg0O5vEOIiKgmYwBBRERVVnh4ONzd3WFqagofHx8A5fMOISKimowBBBERVUk7duyAh4cHevbsiYCAACkwKI93CBER1WQMIIiIqMrZtWsXlixZghEjRmDt2rVKtxuVxzuEiIhqMgYQRERUpSQkJGD58uXo27cvJkyYgNTUVDx8+BAPHz5ERkZGubxDiIioJqtU07gSERG9TWhoKF68eIGwsDCEhYUpLXNycsKKFSvK5R1CREQ1FQMIIiKqUiZOnIiJEye+MU95vEOIiKim4i1MRERERESkMgYQRERERESkMgYQRERERESkMgYQRERERESkMgYQRERERESkMgYQRERERESkMgYQREREJFEoFBVdBSKq5PgeCCIiIpKoq6sjNDQUmZmZKuXX0dGBra1tGdeKiCoTBhBERESkJDMzExkZGSrlrV+/fhnXhogqG97CREREREREKmMAQUREREREKmMA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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8,3)) # when I first plotted this it looked a bit squashed so I adjusted the figsize\n", "\n", "plt.subplot(1,2,1)\n", "sns.histplot(data=hospital, x='LOS', bins=20, color=[0.5,0.5,0.5])\n", "plt.title('a. Raw data')\n", "plt.xlabel('Length of Hospital Stay (days)')\n", "\n", "plt.subplot(1,2,2)\n", "sns.histplot(data=hospital.query('LOS < 365'), x='LOS', bins=20, color=[0.5,0.5,0.5])\n", "plt.title('b. Stays over 1 year removed')\n", "plt.xlabel('Length of Hospital Stay (days)')\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "756310d4", "metadata": {}, "source": [ "**Panel a** (raw data) tells us that the values of length of stay extend up to 10000 \n", "* we can't see the bar at 9999 because only a few datapoints have this value compared to 12500 real datapoints, \n", "* however, we can see that the axis has autoscaled to accommodate values up to 10000, suggesting there is at least one datapoint stranded up there near LOS=10000\n", " * the autoscaling is a hint to use as data scientists that there are outlier values. \n", " * It's not a good way to present this fact to a client unfamiliar with `Seaborn`'s quirks!\n", " * this is the kind of plot you make for yourself, not something you put in a report\n", "\n", "In **panel b**, I excluded stays over one year from the dataframe and replotted - I chose the cut-off value of 1-year arbitrarily. However, I can see from panel b that no values even approach 1 year, so I am happy with my choice of cut-off retained all real values of length of stay and removed the outliers\n", "* Have a look at the code block above to see how I excluded the cases where LOS>365" ] }, { "cell_type": "markdown", "id": "dcd443c0", "metadata": {}, "source": [ "### Use a 'standard' cut-off\n", "\n", "Sometimes it's not so clear where the boundary is between real data and outliers.\n", "\n", "In this case, researchers sometimes define outliers as those lying more than 3 standard deviations from the mean.\n", "\n", "* Under the normal distribution, values 3 standard deviations from the mean occur about 1/1000 of the time so the 3xSD cut-off should exclude relatively few real values\n", "* If your data are not Normally distributed, this cutoff may be less suitable. \n", "* Don't worry if you don't know what normal distribution is yet - this will make sense when you come back and revise!\n", "\n", "\n", "We can calculate the 3SD cutoff for CHARGES:" ] }, { "cell_type": "code", "execution_count": 25, "id": "95d994c9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[-9796.111336261174, 29554.28656557366]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "m = hospital.CHARGES.mean()\n", "s = hospital.CHARGES.std()\n", "\n", "cutoff = [m-3*s, m+3*s]\n", "\n", "display(cutoff)" ] }, { "cell_type": "code", "execution_count": 32, "id": "b98bfed4", "metadata": {}, "outputs": [ { "data": { "image/png": "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nXfe6fFQbuY9cGpra5Wfn6/09HSNGDFC999/vw4cOODuZ+4D69ChQxoxYoQ2btzobmPOA+fo0aO66qqrvH5ee+01SZ1o7g0E3LPPPmuMGjXKePvtt42KigojNzfXGD9+vOFwOIJdWshbs2aNcdVVVxnZ2dnutk8//dQYOXKkMW/ePOPAgQPGhg0bjOHDhxsbNmxwj/m6OffHMbqinJwc49ZbbzXKysqMgwcPGo8//riRnJxsHDhwgHkPsNtvv9244447jD179hgHDhwwZsyYYdxwww1GY2Mjcx9gTqfTuO2224ykpCTDbrcbhsGfM4G2Y8cOY/jw4caJEyeMmpoa98/Zs2c71dwTogLM4XAYI0aMMNatW+duO336tJGcnGxs3bo1iJWFturqamPKlClGamqq8b3vfc8jRD3//PNGRkaGce7cOXfbM888Y3z3u981DKNtc+6PY3Q1hw8fNpKSkoxdu3a521paWozx48cby5YtY94D6NNPPzVmz55t7N+/391WUVFhJCUlGe+99x5zH2DPPPOMcffdd3uEKOY8sFatWmXceuutPvs609yznBdglZWVamhoUHp6urutZ8+eGjZsmMrKyoJYWWjbu3evevXqpT/+8Y9KSUnx6CsvL5fNZlN4+OePfkxPT9ehQ4dUW1vbpjn3xzG6mj59+uiFF17Qtdde626zWCwyDEOnT59m3gOoT58+WrJkia688kpJ0ieffKLi4mIlJCRoyJAhzH0AlZWVqaSkRL/61a882pnzwHr//fc1ZMgQn32dae4JUQFWXV0tSRowYIBHe3x8vI4fPx6MkjqFcePG6ZlnntFll13m1VddXa2EhASPtvj4eEnSsWPH2jTn/jhGV9OzZ0+NGTPG48Hdb7zxhj766CPdeOONzHsHeeyxx3TDDTfof/7nf7Ro0SJFR0cz9wFSV1enOXPmaP78+V7nzZwH1v79+1VbW6vJkyfr29/+tu6880698847kjrX3BOiAuzs2bOS5PEXkyRFRETI4XAEo6ROr6mpyed8SpLD4WjTnPvjGF3drl279Oijj+qmm27SuHHjmPcOcs8998hut+vWW2/V9OnTtXfvXuY+QAoKCpSamqpJkyZ59THngeN0OnX48GGdOXNGs2bN0gsvvKDhw4crLy9PO3fu7FRzH/71Q3AhIiMjJX32H83536XP/keMiooKVlmdWmRkpJxOp0fb+f/oo6Oj2zTn/jhGV7Z9+3b9/Oc/V0pKipYsWSKJee8o55c4Hn/8ce3evVsvv/wycx8AmzZtUnl5ubZs2eKznzkPHKvVqrKyMoWHh7tDzLXXXquDBw+quLi4U809V6IC7PylwpqaGo/2mpoar0uNaJuEhASf8ylJ/fv3b9Oc++MYXdXLL7+sGTNmaPTo0SosLHT/AcO8B05tba22bt2q5uZmd1tYWJgSExPd587c+5fdbldtba3Gjh2rESNGaMSIEZKkBQsWaOLEicx5gEVHR3tdBUpKStKJEyc61dwTogJs6NChiomJUWlpqbutrq5O+/btU1paWhAr67xsNpt27drl8RfOzp07NXjwYPXr169Nc+6PY3RF69at0+OPP6677rpLy5Yt8/hDjnkPnJqaGv3sZz/Tu+++6247d+6c9u3bp8TEROY+ABYvXqz//u//1qZNm9w/kjRz5ky98MILzHkAVVZWasSIER73oJOkf/3rXxoyZEjnmvs2f48Ppi1ZssS4/vrrje3bt7vvRXHzzTd3+fuA+MvcuXM9bnHwySefGDabzZg7d67xwQcfGHa73Rg+fLixceNG95ivm3N/HKOr+fDDD41rrrnGmD59usd9W2pqaoy6ujrmPYBaWlqM3Nxc47vf/a5RVlZmvP/++8bs2bMNm81mHD16lLnvIF+8xQFzHjjNzc3G7bffbtxyyy1GWVmZceDAAePJJ580rr32WqOysrJTzT0hqgO4XC7j17/+tZGenm6kpqYaeXl5xpEjR4JdVqfx5RBlGIbx3nvvGT/60Y+Ma6+91vjOd75j/O53v/Pob8uc++MYXcmqVauMpKQknz9z5841DIN5D6S6ujpjwYIFxg033GAkJycbubm5HveNYu4D74shyjCY80Cqra01HnnkEeOGG24whg8fbtxxxx1GWVmZu7+zzL3FMAyjvZfiAAAAujv2RAEAAJhAiAIAADCBEAUAAGACIQoAAMAEQhQAAIAJhCgAAAATCFEAAAAm8ABiAAHzz3/+Uy+99JLKysr06aefKi4uTqNGjdLUqVN12WWXSZKeffZZPffcc3r//fd9HuPhhx/Wu+++q7feesurb8OGDZo3b54yMjJUVFTk1b9x40Y98sgjXu0RERGKj4/Xd77zHc2aNUsXX3yxR39TU5PWr1+vN954Q4cPH1ZjY6MSEhKUkZGhvLw893O3vuozvmjLli1KSkqSJDU2Nqq4uFhvvPGG/v3vf+uiiy7SlVdeqdtuu00//OEPFRbGv22BzoIQBSAgXnnlFT355JMaOXKkfvaznyk+Pl4fffSRioqK9Oabb2rNmjW65pprLugz7Ha7kpKS9Ne//lVHjhxxB7Mve+655xQXF+d+ffr0ab3zzjt66aWXVFtbqyVLlrj7Tpw4ofvuu0/Hjx/X5MmTNX36dEVGRqqyslJr167V66+/rnXr1ikxMfErP+OLLr/8ckmSYRh64IEHdPDgQeXl5emqq66Sw+HQX/7yF/3iF7/QBx98oHnz5l3QnADoQO26vzkAtEF5eblx9dVXG0888YRXX21trTFmzBhj0qRJhmEYxooVK4ykpKRWjzV37lzjO9/5jlf7hx9+aCQlJRlvv/22YbPZjMWLF3uNsdvtRlJSUquPcpg9e7Zx1VVXGWfOnDEM47Nn2P34xz82rrvuOuPQoUNe40+ePGmMHTvWyM3NbfNnfFFZWZmRlJRkvPPOO159ixYtMq6++mqjpqbma48DIDRw3RiA3xUXFys2NlYPPfSQV1/fvn318MMP6+abb9aZM2dMf4bdbldsbKxGjRql733ve7Lb7XI6ne06RkxMjMfr8vJy/e1vf9Ps2bM1aNAgr/G9e/fWzJkzdemll6qlpaXdNX/88ceSPrsi9WWTJ0/W7NmzZbFY2n1cAMHBch4AvzIMQ3/5y180btw4RUVF+Rzzve99z6vN5XK1erwva25u1ubNmzVhwgRZrVbddtttKikp0fbt2zVhwgSv8S0tLe7jG4ah+vp6/d///Z82bdqkm2++2b0navv27bJYLJo4cWKr55eZmanMzMyv/IwvCgsLc+9zuv766xUdHa2HHnpIP/rRjzR69GilpKQoMjJSgwYNUl5eXqufCyD0EKIA+NXJkyflcDh06aWXtut9X7U/auDAgR6v//znP6umpkZZWVmSpNTUVA0ZMkSvvvqqzxA1fvx4r7ZvfOMbuvPOOzVz5kx320cffaTevXurd+/eHmObm5u9wlyPHj08rhr5+gxJGjVqlF588UVJUr9+/VRYWKiHH35YRUVFKioq0kUXXaTU1FTdcsst+uEPf6jwcP5YBjoL/t8KwK/OX3Vpbm5u1/s2bNjgs/03v/mN9u/f79Fmt9t1xRVXaPDgwaqrq5Mkff/739ezzz6rgwcPem36XrVqleLi4uRwOPSHP/xBmzdv1owZM/Rf//VfHuN8XfWSpOzsbP3973/3aHvppZc0cuRIr8/4si8vGaalpenNN9/Url279Je//EXvvvuudu/erbKyMm3evFlr1qxRZGSkzzoAhBZCFAC/6t27ty6++GIdO3as1TGNjY1yOp0eV3yGDx/e6vG+6NNPP9Xbb7+tc+fOyWazeY0vKSnRo48+6tGWlJTkvjKWlpYmwzC0YMECxcTE6JZbbnGPGzhwoN5++22dOXPGI/wsWrRIDQ0NkqS9e/dqwYIFXp/7xc/4OmFhYbLZbO76T58+rWXLlmndunXasGGDsrOz23QcAMHFxnIAfnfjjTeqtLRUDofDZ//GjRs1atQo/eMf/2j3sTdv3qxz587pueee00svveTxM3LkSG3atElNTU1feYxHH31U/fv318KFC/XJJ5+422+66SYZhqE333zTY/w3v/lNDR8+XMOHD9fgwYPbXfN5s2bN0r333uvV3qtXLz322GPq1auXDhw4YPr4ADoWIQqA3+Xm5urUqVNaunSpV19tba2Kiop0xRVXKDU1td3H3rhxo1JTUzV+/HiNHDnS4+fOO+/U6dOn9cYbb3zlMWJiYvTwww+rrq5OixcvdrePGjVK119/vZ5++ml9+OGHPt/7wQcftLvm86644gr97W9/0+7du736ampq1NjY6L4pJ4DQx3IeAL9LTU3VT3/6Uy1btkwHDx5UZmam+vTpow8++ECrV69WQ0ODXnjhhXZ/nX/Pnj3av39/qzekvOmmm9SrVy+tX7/e5zfovmjChAlat26dNm3apDvuuEMjRoyQxWLRkiVLNG3aNN122226/fbblZ6ertjYWB0+fFhbt25VaWmpUlJSvG6BUFFR4XFV64suueQSxcfHKzc3V9u3b1dOTo4mT56skSNHKioqSvv379fq1avddy4H0DkQogAExLRp0zRs2DC98soreuqpp3Tq1CklJCRo9OjReuCBB3TJJZe0+5h2u109evTw+Q08SbJarfr+97+v9evXq6Ki4muPN3/+fN122216/PHHtWHDBoWFhSkuLk6vvvqqNm3apC1btuj1119XXV2d+vbtq9TUVK1cuVLjxo3zCoA/+clPWv2cOXPmaMqUKerVq5dKSkpUWFiot956S6+++qrOnTungQMH6pZbbtH999/PpnKgE7EYrX0dBQAAAK1iTxQAAIAJhCgAAAATCFEAAAAmEKIAAABMIEQBAACYQIgCAAAwgRAFAABgAiEKAADABEIUAACACYQoAAAAEwhRAAAAJhCiAAAATPh/1PebAMmnESkAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# re-plot the hisptogram so we can see where the 3SD cut-off falls\n", "sns.histplot(data=hospital, x='CHARGES')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "f845048f", "metadata": {}, "source": [ "By this criterion, charges below -9800 dollars and above 30000 are considered outliers.\n", "\n", "* These are not good cut-off values!\n", " * Looking again at the histogram of CHARGES above, 30001 dollars seems no less plausible than 29999\n", " * -9800 dollars is an impossible value so wouldn't exclude any cases anyway!\n", "\n", "The 3SD approach didn't work so well in this case because the data distribution is very skewed, so high positive values are actually quite plausible, whilst the natural cut-off value for low CHARGES (zero dollars) is not very far from the mean (in fact the minimum possible value, zero, is within the 3SD cutoff)." ] }, { "cell_type": "code", "execution_count": null, "id": "dd68d6fc", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" } }, "nbformat": 4, "nbformat_minor": 5 }