{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Outlier Detection" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%%capture\n", "# execute the creation & training notebook first\n", "%run \"02-01-creation_and_training.ipynb\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Outlier detection is about detecting unusual data point in a test data set. Let's create such a test data set." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "np.random.seed(42)\n", "n_data = 100\n", "parameter_a = 5 + np.random.randn(n_data) * 0.1\n", "parameter_b = parameter_a * (-35) + 150 + np.random.randn(n_data) * 1.\n", "parameter_c = parameter_a * 10.5 + parameter_b * (.5) + np.random.randn(n_data) * 0.01\n", "\n", "test_data = pd.DataFrame(data={\"(a)\": parameter_a,\n", " \"(b|a)\": parameter_b,\n", " \"(c|a,b)\": parameter_c})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let us hide outliers in the test_data by modifying some of the values." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "mod_test_data = test_data.copy()\n", "mod_test_data.iloc[50] = [4.9, -27, 41]\n", "mod_test_data.iloc[60] = [5.1, -28, 40.5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see how the modified values stand out in scatter plots." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, '(b|a)')" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pl.figure(figsize=(10,10))\n", "fig = pl.subplot(2,2,1)\n", "fig.scatter(mod_test_data[\"(a)\"], mod_test_data[\"(b|a)\"], marker=\"x\", color=\"k\")\n", "fig.scatter(mod_test_data[\"(a)\"].loc[[50, 60]],\n", " mod_test_data[\"(b|a)\"].loc[[50, 60]],\n", " marker=\"x\", color=\"r\")\n", "fig.set_xlabel(\"(a)\")\n", "fig.set_ylabel(\"(b|a)\")\n", "fig = pl.subplot(2,2,3)\n", "fig.scatter(mod_test_data[\"(a)\"], mod_test_data[\"(c|a,b)\"], marker=\"x\", color=\"k\")\n", "fig.scatter(mod_test_data[\"(a)\"].loc[[50, 60]],\n", " mod_test_data[\"(c|a,b)\"].loc[[50, 60]],\n", " marker=\"x\", color=\"r\")\n", "fig.set_xlabel(\"(a)\")\n", "fig.set_ylabel(\"(c|a,b)\")\n", "fig = pl.subplot(2,2,2)\n", "fig.scatter(mod_test_data[\"(c|a,b)\"], mod_test_data[\"(b|a)\"], marker=\"x\", color=\"k\")\n", "fig.scatter(mod_test_data[\"(c|a,b)\"].loc[[50, 60]],\n", " mod_test_data[\"(b|a)\"].loc[[50, 60]],\n", " marker=\"x\", color=\"r\")\n", "fig.set_xlabel(\"(c|a,b)\")\n", "fig.set_ylabel(\"(b|a)\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Visually the outliers are fairly detectable in at least one of the scatter plots, but individually the values for each parameter are fairly normal. Let's see what the ``.detect_outliers`` method says." ] }, { "cell_type": "code", "execution_count": 5, "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", "
(a)(b|a)(c|a,b)graph
0FalseFalseFalseFalse
1FalseFalseFalseFalse
2FalseFalseFalseFalse
3FalseFalseFalseFalse
4FalseFalseFalseFalse
...............
95FalseFalseFalseFalse
96FalseFalseFalseFalse
97FalseFalseFalseFalse
98FalseFalseFalseFalse
99FalseFalseFalseFalse
\n", "

100 rows × 4 columns

\n", "
" ], "text/plain": [ " (a) (b|a) (c|a,b) graph\n", "0 False False False False\n", "1 False False False False\n", "2 False False False False\n", "3 False False False False\n", "4 False False False False\n", ".. ... ... ... ...\n", "95 False False False False\n", "96 False False False False\n", "97 False False False False\n", "98 False False False False\n", "99 False False False False\n", "\n", "[100 rows x 4 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "outliers = causal_structure.detect_outliers(data=mod_test_data)\n", "outliers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is again a ``pandas.DataFrame`` with zeros and ones as entries. Zero means no outlier, one means outlier.\n", "In a particular row any of the parameters can be classified as an outlier. This estimates which parameter(s) were actually unusual in their specific combination.\n", "\n", "There is also a column for the whole graph. This column judges whether the data point as a whole is an outlier.\n", "For most purposes this is the decisive column.\n", "\n", "Let's have a look at the rows that contain outliers." ] }, { "cell_type": "code", "execution_count": 6, "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", "
(a)(b|a)(c|a,b)graph
25FalseTrueFalseFalse
31TrueFalseFalseFalse
50FalseTrueTrueTrue
60FalseFalseTrueTrue
74TrueFalseFalseFalse
\n", "
" ], "text/plain": [ " (a) (b|a) (c|a,b) graph\n", "25 False True False False\n", "31 True False False False\n", "50 False True True True\n", "60 False False True True\n", "74 True False False False" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "detected_outliers = outliers[outliers.sum(axis=1)>0]\n", "detected_outliers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The outlier detector found the two data points we were looking (50 and 60) for but also others.\n", "\n", "Let's mark them in our plot." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, '(b|a)')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pl.figure(figsize=(10,10))\n", "fig = pl.subplot(2,2,1)\n", "fig.scatter(mod_test_data[\"(a)\"], mod_test_data[\"(b|a)\"], marker=\"x\", color=\"k\")\n", "fig.scatter(mod_test_data[\"(a)\"].loc[detected_outliers.index],\n", " mod_test_data[\"(b|a)\"].loc[detected_outliers.index],\n", " marker=\"x\", color=\"orange\")\n", "fig.scatter(mod_test_data[\"(a)\"].loc[[50, 60]],\n", " mod_test_data[\"(b|a)\"].loc[[50, 60]],\n", " marker=\"x\", color=\"r\")\n", "fig.set_xlabel(\"(a)\")\n", "fig.set_ylabel(\"(b|a)\")\n", "fig = pl.subplot(2,2,3)\n", "fig.scatter(mod_test_data[\"(a)\"], mod_test_data[\"(c|a,b)\"], marker=\"x\", color=\"k\")\n", "fig.scatter(mod_test_data[\"(a)\"].loc[detected_outliers.index],\n", " mod_test_data[\"(c|a,b)\"].loc[detected_outliers.index],\n", " marker=\"x\", color=\"orange\")\n", "fig.scatter(mod_test_data[\"(a)\"].loc[[50, 60]],\n", " mod_test_data[\"(c|a,b)\"].loc[[50, 60]],\n", " marker=\"x\", color=\"r\")\n", "fig.set_xlabel(\"(a)\")\n", "fig.set_ylabel(\"(c|a,b)\")\n", "fig = pl.subplot(2,2,2)\n", "fig.scatter(mod_test_data[\"(c|a,b)\"], mod_test_data[\"(b|a)\"], marker=\"x\", color=\"k\")\n", "fig.scatter(mod_test_data[\"(c|a,b)\"].loc[detected_outliers.index],\n", " mod_test_data[\"(b|a)\"].loc[detected_outliers.index],\n", " marker=\"x\", color=\"orange\")\n", "fig.scatter(mod_test_data[\"(c|a,b)\"].loc[[50, 60]],\n", " mod_test_data[\"(b|a)\"].loc[[50, 60]],\n", " marker=\"x\", color=\"r\")\n", "fig.set_xlabel(\"(c|a,b)\")\n", "fig.set_ylabel(\"(b|a)\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The red points are the values we modified (and that the outlier detector identified), the orange points are the other detected outliers. \n", "\n", "#### The outlier threshold\n", "\n", "Why did the outlier detector classify these as outliers if they actually came from the correct data generation process? The reason for this is the outlier threshold. It's default value is $0.05$. This means that values which are less likely than the least likely $5\\%$ of the data generation process are classified as outliers. So we expect around $5\\%$ outliers even in data that come from the correct data generation process.\n", "\n", "Setting this threshold is a tradeoff between the sensitivity of outlier detection and the rate of false positives.\n", "\n", "Let's try a stricter value, $0.001$ instead of $0.05$." ] }, { "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", "
(a)(b|a)(c|a,b)graph
50FalseTrueTrueTrue
60FalseFalseTrueTrue
\n", "
" ], "text/plain": [ " (a) (b|a) (c|a,b) graph\n", "50 False True True True\n", "60 False False True True" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "outliers = causal_structure.detect_outliers(data=mod_test_data,\n", " outlier_threshold=0.001)\n", "outliers[outliers.sum(axis=1)>0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that with the stricter threshold the false positives are gone.\n", "\n", "However, if we reduce the detection threshold too far we might not detect even the modified data points anymore." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For further details about the ``OutlierDetector`` see the [corresponding section](../02_objectives/06_outlier_detector.ipynb) in the core-documentation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the [next section](./02-06-influence_estimation.ipynb) we will have a look at influence estimation." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.8.8" } }, "nbformat": 4, "nbformat_minor": 4 }