diff --git a/.ipynb_checkpoints/Solutions-checkpoint.ipynb b/.ipynb_checkpoints/Solutions-checkpoint.ipynb new file mode 100644 index 0000000..486708c --- /dev/null +++ b/.ipynb_checkpoints/Solutions-checkpoint.ipynb @@ -0,0 +1,173 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Lab | Inferential statistics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- It is assumed that the mean systolic blood pressure is `μ = 120 mm Hg`. In the Honolulu Heart Study, a sample of `n = 100` people had an average systolic blood pressure of 130.1 mm Hg with a standard deviation of 21.21 mm Hg. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Is the group significantly different (with respect to systolic blood pressure!) from the regular population?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.1 Set up the hypothesis test." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "H0 = 120\n", + "HA =! 120" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.2 Write down all the steps followed for setting up the test." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "\n", + "sample_mean = 130.1\n", + "pop_mean = 120\n", + "sample_std = 21.21\n", + "n = 100" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.stats import ttest_ind, norm\n", + "sample = norm.rvs(loc=sample_mean, scale=sample_std, size=n)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([125.87272186, 147.33041173, 148.31785028, 112.04380437,\n", + " 109.29670776, 142.88049757, 89.87184986, 144.59255735,\n", + " 143.98751965, 164.13942162, 150.14885634, 148.8038505 ,\n", + " 128.61028065, 97.73265084, 138.41288628, 148.81005023,\n", + " 89.80889773, 155.34525738, 94.20433297, 118.01147848,\n", + " 140.33613584, 98.86538375, 120.84419938, 125.50754501,\n", + " 169.98167304, 141.64637665, 122.23356583, 118.33330743,\n", + " 136.95867209, 138.49118087, 156.95988839, 98.2508438 ,\n", + " 105.38052451, 136.69245243, 127.63471356, 121.13244895,\n", + " 123.20426934, 130.25377353, 139.0563798 , 92.73221543,\n", + " 116.59123023, 131.78706465, 160.76714288, 150.08038636,\n", + " 138.16101622, 147.63416238, 115.39205312, 154.02299445,\n", + " 71.19098511, 167.47047571, 131.10517644, 113.06360969,\n", + " 143.55792341, 132.26443597, 82.90132016, 120.84780507,\n", + " 134.02454364, 98.29619475, 126.99829157, 144.19791731,\n", + " 145.6729652 , 148.25716342, 123.13796532, 99.30986144,\n", + " 156.64771966, 137.99025548, 116.97487254, 130.85454744,\n", + " 138.81399206, 127.17536482, 140.91634457, 109.51305907,\n", + " 145.28927328, 152.36994104, 115.37969632, 121.37670788,\n", + " 152.46644509, 136.32657518, 153.70028065, 116.50992758,\n", + " 139.82744355, 145.91862428, 101.27965477, 134.87463457,\n", + " 114.09559859, 152.65867141, 128.41457124, 128.41892265,\n", + " 136.86075007, 153.13865868, 141.7593169 , 110.19926965,\n", + " 120.78665058, 106.86669336, 114.7615379 , 125.5866693 ,\n", + " 132.16603016, 103.11045235, 80.66212071, 125.76824276])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.3 Calculate the test statistic by hand and also code it in Python. It should be 4.76190. We will take a look at how to make decisions based on this calculated value." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.761904761904759" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "statistic = (sample_mean - pop_mean)/(sample_std/math.sqrt(n))\n", + "statistic" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. If you finished the previous question, please go through the code for principal_component_analysis_example provided in the files_for_lab folder ." + ] + } + ], + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Solutions.ipynb b/Solutions.ipynb index b3e2431..486708c 100644 --- a/Solutions.ipynb +++ b/Solutions.ipynb @@ -2,7 +2,6 @@ "cells": [ { "cell_type": "markdown", - "id": "e00a11f1", "metadata": {}, "source": [ "# Lab | Inferential statistics" @@ -10,7 +9,6 @@ }, { "cell_type": "markdown", - "id": "2c813f0a", "metadata": {}, "source": [ "- It is assumed that the mean systolic blood pressure is `μ = 120 mm Hg`. In the Honolulu Heart Study, a sample of `n = 100` people had an average systolic blood pressure of 130.1 mm Hg with a standard deviation of 21.21 mm Hg. " @@ -18,7 +16,6 @@ }, { "cell_type": "markdown", - "id": "120875d3", "metadata": {}, "source": [ "## 1. Is the group significantly different (with respect to systolic blood pressure!) from the regular population?" @@ -26,7 +23,6 @@ }, { "cell_type": "markdown", - "id": "d26c43d4", "metadata": {}, "source": [ "### 1.1 Set up the hypothesis test." @@ -35,14 +31,15 @@ { "cell_type": "code", "execution_count": null, - "id": "39c6f717", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "H0 = 120\n", + "HA =! 120" + ] }, { "cell_type": "markdown", - "id": "17c9988a", "metadata": {}, "source": [ "### 1.2 Write down all the steps followed for setting up the test." @@ -50,15 +47,74 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "b09ce149", + "execution_count": 3, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import math\n", + "\n", + "sample_mean = 130.1\n", + "pop_mean = 120\n", + "sample_std = 21.21\n", + "n = 100" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.stats import ttest_ind, norm\n", + "sample = norm.rvs(loc=sample_mean, scale=sample_std, size=n)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([125.87272186, 147.33041173, 148.31785028, 112.04380437,\n", + " 109.29670776, 142.88049757, 89.87184986, 144.59255735,\n", + " 143.98751965, 164.13942162, 150.14885634, 148.8038505 ,\n", + " 128.61028065, 97.73265084, 138.41288628, 148.81005023,\n", + " 89.80889773, 155.34525738, 94.20433297, 118.01147848,\n", + " 140.33613584, 98.86538375, 120.84419938, 125.50754501,\n", + " 169.98167304, 141.64637665, 122.23356583, 118.33330743,\n", + " 136.95867209, 138.49118087, 156.95988839, 98.2508438 ,\n", + " 105.38052451, 136.69245243, 127.63471356, 121.13244895,\n", + " 123.20426934, 130.25377353, 139.0563798 , 92.73221543,\n", + " 116.59123023, 131.78706465, 160.76714288, 150.08038636,\n", + " 138.16101622, 147.63416238, 115.39205312, 154.02299445,\n", + " 71.19098511, 167.47047571, 131.10517644, 113.06360969,\n", + " 143.55792341, 132.26443597, 82.90132016, 120.84780507,\n", + " 134.02454364, 98.29619475, 126.99829157, 144.19791731,\n", + " 145.6729652 , 148.25716342, 123.13796532, 99.30986144,\n", + " 156.64771966, 137.99025548, 116.97487254, 130.85454744,\n", + " 138.81399206, 127.17536482, 140.91634457, 109.51305907,\n", + " 145.28927328, 152.36994104, 115.37969632, 121.37670788,\n", + " 152.46644509, 136.32657518, 153.70028065, 116.50992758,\n", + " 139.82744355, 145.91862428, 101.27965477, 134.87463457,\n", + " 114.09559859, 152.65867141, 128.41457124, 128.41892265,\n", + " 136.86075007, 153.13865868, 141.7593169 , 110.19926965,\n", + " 120.78665058, 106.86669336, 114.7615379 , 125.5866693 ,\n", + " 132.16603016, 103.11045235, 80.66212071, 125.76824276])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample" + ] }, { "cell_type": "markdown", - "id": "63df3700", "metadata": {}, "source": [ "### 1.3 Calculate the test statistic by hand and also code it in Python. It should be 4.76190. We will take a look at how to make decisions based on this calculated value." @@ -66,15 +122,27 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "97f73e20", + "execution_count": 4, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "4.761904761904759" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "statistic = (sample_mean - pop_mean)/(sample_std/math.sqrt(n))\n", + "statistic" + ] }, { "cell_type": "markdown", - "id": "4a7564e5", "metadata": {}, "source": [ "## 2. If you finished the previous question, please go through the code for principal_component_analysis_example provided in the files_for_lab folder ." diff --git a/files_for_lab/principal_component_analysis_example/.ipynb_checkpoints/pca-principal-component-analysis-checkpoint.ipynb b/files_for_lab/principal_component_analysis_example/.ipynb_checkpoints/pca-principal-component-analysis-checkpoint.ipynb new file mode 100644 index 0000000..5021fe0 --- /dev/null +++ b/files_for_lab/principal_component_analysis_example/.ipynb_checkpoints/pca-principal-component-analysis-checkpoint.ipynb @@ -0,0 +1,1170 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "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", + "
0123456789...25262728293031323334
0119513N3118.0227.60117.501013.00.094890.10360.1086...139.701436.00.11950.19260.31400.11700.26770.081135.05
18423N6117.9910.38122.801001.00.118400.27760.3001...184.602019.00.16220.66560.71190.26540.46010.118903.02
2842517N11621.3717.44137.501373.00.088360.11890.1255...159.101949.00.11880.34490.34140.20320.43340.090672.50
3843483N12311.4220.3877.58386.10.142500.28390.2414...98.87567.70.20980.86630.68690.25750.66380.173002.00
4843584R2720.2914.34135.101297.00.100300.13280.1980...152.201575.00.13740.20500.40000.16250.23640.076783.50
\n", + "

5 rows × 35 columns

\n", + "
" + ], + "text/plain": [ + " 0 1 2 3 4 5 6 7 8 9 ... \\\n", + "0 119513 N 31 18.02 27.60 117.50 1013.0 0.09489 0.1036 0.1086 ... \n", + "1 8423 N 61 17.99 10.38 122.80 1001.0 0.11840 0.2776 0.3001 ... \n", + "2 842517 N 116 21.37 17.44 137.50 1373.0 0.08836 0.1189 0.1255 ... \n", + "3 843483 N 123 11.42 20.38 77.58 386.1 0.14250 0.2839 0.2414 ... \n", + "4 843584 R 27 20.29 14.34 135.10 1297.0 0.10030 0.1328 0.1980 ... \n", + "\n", + " 25 26 27 28 29 30 31 32 33 34 \n", + "0 139.70 1436.0 0.1195 0.1926 0.3140 0.1170 0.2677 0.08113 5.0 5 \n", + "1 184.60 2019.0 0.1622 0.6656 0.7119 0.2654 0.4601 0.11890 3.0 2 \n", + "2 159.10 1949.0 0.1188 0.3449 0.3414 0.2032 0.4334 0.09067 2.5 0 \n", + "3 98.87 567.7 0.2098 0.8663 0.6869 0.2575 0.6638 0.17300 2.0 0 \n", + "4 152.20 1575.0 0.1374 0.2050 0.4000 0.1625 0.2364 0.07678 3.5 0 \n", + "\n", + "[5 rows x 35 columns]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "breast_cancer = pd.read_csv('breast-cancer.csv', header=None)\n", + "breast_cancer.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "total_cols = ['id', 'outcome', 'time', 'cell_1_radius', 'cell_1_texture', 'cell_1_perimiter',\n", + " 'cell_1_area', 'cell_1_smoothness', 'cell_1_compactness', 'cell_1_concavity',\n", + " 'cell_1_concave_points', 'cell_1_symmetry', 'cell_1_fractal_dimension',\n", + " 'cell_2_radius', 'cell_2_texture', 'cell_2_perimiter', 'cell_2_area',\n", + " 'cell_2_smoothness', 'cell_2_compactness', 'cell_2_concavity',\n", + " 'cell_2_concave_points', 'cell_2_symmetry', 'cell_2_fractal_dimension', 'cell_3_radius', \n", + " 'cell_3_texture', 'cell_3_perimiter', 'cell_3_area', 'cell_3_smoothness',\n", + " 'cell_3_compactness', 'cell_3_concavity', 'cell_3_concave_points', 'cell_3_symmetry',\n", + " 'cell_3_fractal_dimension', 'tumor_size', 'lymph_status']\n", + "breast_cancer.columns = total_cols" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "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", + "
idoutcometimecell_1_radiuscell_1_texturecell_1_perimitercell_1_areacell_1_smoothnesscell_1_compactnesscell_1_concavity...cell_3_perimitercell_3_areacell_3_smoothnesscell_3_compactnesscell_3_concavitycell_3_concave_pointscell_3_symmetrycell_3_fractal_dimensiontumor_sizelymph_status
0119513N3118.0227.60117.501013.00.094890.10360.1086...139.701436.00.11950.19260.31400.11700.26770.081135.05
18423N6117.9910.38122.801001.00.118400.27760.3001...184.602019.00.16220.66560.71190.26540.46010.118903.02
2842517N11621.3717.44137.501373.00.088360.11890.1255...159.101949.00.11880.34490.34140.20320.43340.090672.50
3843483N12311.4220.3877.58386.10.142500.28390.2414...98.87567.70.20980.86630.68690.25750.66380.173002.00
4843584R2720.2914.34135.101297.00.100300.13280.1980...152.201575.00.13740.20500.40000.16250.23640.076783.50
\n", + "

5 rows × 35 columns

\n", + "
" + ], + "text/plain": [ + " id outcome time cell_1_radius cell_1_texture cell_1_perimiter \\\n", + "0 119513 N 31 18.02 27.60 117.50 \n", + "1 8423 N 61 17.99 10.38 122.80 \n", + "2 842517 N 116 21.37 17.44 137.50 \n", + "3 843483 N 123 11.42 20.38 77.58 \n", + "4 843584 R 27 20.29 14.34 135.10 \n", + "\n", + " cell_1_area cell_1_smoothness cell_1_compactness cell_1_concavity ... \\\n", + "0 1013.0 0.09489 0.1036 0.1086 ... \n", + "1 1001.0 0.11840 0.2776 0.3001 ... \n", + "2 1373.0 0.08836 0.1189 0.1255 ... \n", + "3 386.1 0.14250 0.2839 0.2414 ... \n", + "4 1297.0 0.10030 0.1328 0.1980 ... \n", + "\n", + " cell_3_perimiter cell_3_area cell_3_smoothness cell_3_compactness \\\n", + "0 139.70 1436.0 0.1195 0.1926 \n", + "1 184.60 2019.0 0.1622 0.6656 \n", + "2 159.10 1949.0 0.1188 0.3449 \n", + "3 98.87 567.7 0.2098 0.8663 \n", + "4 152.20 1575.0 0.1374 0.2050 \n", + "\n", + " cell_3_concavity cell_3_concave_points cell_3_symmetry \\\n", + "0 0.3140 0.1170 0.2677 \n", + "1 0.7119 0.2654 0.4601 \n", + "2 0.3414 0.2032 0.4334 \n", + "3 0.6869 0.2575 0.6638 \n", + "4 0.4000 0.1625 0.2364 \n", + "\n", + " cell_3_fractal_dimension tumor_size lymph_status \n", + "0 0.08113 5.0 5 \n", + "1 0.11890 3.0 2 \n", + "2 0.09067 2.5 0 \n", + "3 0.17300 2.0 0 \n", + "4 0.07678 3.5 0 \n", + "\n", + "[5 rows x 35 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "breast_cancer.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# breast_cancer.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "numerics = breast_cancer._get_numeric_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "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", + "
idtimecell_1_radiuscell_1_texturecell_1_perimitercell_1_areacell_1_smoothnesscell_1_compactnesscell_1_concavitycell_1_concave_points...cell_3_texturecell_3_perimitercell_3_areacell_3_smoothnesscell_3_compactnesscell_3_concavitycell_3_concave_pointscell_3_symmetrycell_3_fractal_dimensiontumor_size
01195133118.0227.60117.501013.00.094890.10360.10860.07055...37.08139.701436.00.11950.19260.31400.11700.26770.081135.0
184236117.9910.38122.801001.00.118400.27760.30010.14710...17.33184.602019.00.16220.66560.71190.26540.46010.118903.0
284251711621.3717.44137.501373.00.088360.11890.12550.08180...20.98159.101949.00.11880.34490.34140.20320.43340.090672.5
384348312311.4220.3877.58386.10.142500.28390.24140.10520...26.5098.87567.70.20980.86630.68690.25750.66380.173002.0
48435842720.2914.34135.101297.00.100300.13280.19800.10430...16.67152.201575.00.13740.20500.40000.16250.23640.076783.5
\n", + "

5 rows × 33 columns

\n", + "
" + ], + "text/plain": [ + " id time cell_1_radius cell_1_texture cell_1_perimiter cell_1_area \\\n", + "0 119513 31 18.02 27.60 117.50 1013.0 \n", + "1 8423 61 17.99 10.38 122.80 1001.0 \n", + "2 842517 116 21.37 17.44 137.50 1373.0 \n", + "3 843483 123 11.42 20.38 77.58 386.1 \n", + "4 843584 27 20.29 14.34 135.10 1297.0 \n", + "\n", + " cell_1_smoothness cell_1_compactness cell_1_concavity \\\n", + "0 0.09489 0.1036 0.1086 \n", + "1 0.11840 0.2776 0.3001 \n", + "2 0.08836 0.1189 0.1255 \n", + "3 0.14250 0.2839 0.2414 \n", + "4 0.10030 0.1328 0.1980 \n", + "\n", + " cell_1_concave_points ... cell_3_texture cell_3_perimiter cell_3_area \\\n", + "0 0.07055 ... 37.08 139.70 1436.0 \n", + "1 0.14710 ... 17.33 184.60 2019.0 \n", + "2 0.08180 ... 20.98 159.10 1949.0 \n", + "3 0.10520 ... 26.50 98.87 567.7 \n", + "4 0.10430 ... 16.67 152.20 1575.0 \n", + "\n", + " cell_3_smoothness cell_3_compactness cell_3_concavity \\\n", + "0 0.1195 0.1926 0.3140 \n", + "1 0.1622 0.6656 0.7119 \n", + "2 0.1188 0.3449 0.3414 \n", + "3 0.2098 0.8663 0.6869 \n", + "4 0.1374 0.2050 0.4000 \n", + "\n", + " cell_3_concave_points cell_3_symmetry cell_3_fractal_dimension \\\n", + "0 0.1170 0.2677 0.08113 \n", + "1 0.2654 0.4601 0.11890 \n", + "2 0.2032 0.4334 0.09067 \n", + "3 0.2575 0.6638 0.17300 \n", + "4 0.1625 0.2364 0.07678 \n", + "\n", + " tumor_size \n", + "0 5.0 \n", + "1 3.0 \n", + "2 2.5 \n", + "3 2.0 \n", + "4 3.5 \n", + "\n", + "[5 rows x 33 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "numerics.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "numerics = numerics.drop(['id','time'], axis=1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we apply PCA we need to standardize/scale the data. For this we can use sklearn's preprocessing library \n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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", + "
cell_1_radiuscell_1_texturecell_1_perimitercell_1_areacell_1_smoothnesscell_1_compactnesscell_1_concavitycell_1_concave_pointscell_1_symmetrycell_1_fractal_dimension...cell_3_texturecell_3_perimitercell_3_areacell_3_smoothnesscell_3_compactnesscell_3_concavitycell_3_concave_pointscell_3_symmetrycell_3_fractal_dimensiontumor_size
00.1926881.2417700.1239340.122300-0.623774-0.784542-0.676803-0.480176-0.2285210.086480...1.156324-0.0224770.053105-1.112648-1.054732-0.708404-1.370815-0.743009-0.4592261.113530
10.183175-2.7746300.3724180.0881381.2584162.7114392.0436061.7852221.7957772.216313...-2.1339371.5355101.0504960.8328311.8373431.5891321.9221131.8233211.3292590.078903
21.254939-1.1279531.0616101.147186-1.146560-0.477137-0.436726-0.1472471.481536-0.360812...-1.5258640.6506840.930741-1.144541-0.123520-0.5501920.5419231.467183-0.007488-0.179753
3-1.900104-0.442226-1.747667-1.6624233.1878412.8380181.2097260.5452462.4461834.810056...-0.606256-1.439240-1.4323743.0015613.0644871.4447781.7468154.5403773.891002-0.438410
40.912482-1.8509980.9490890.930821-0.190654-0.1978600.5931940.518612-0.433143-0.536682...-2.2438900.4112610.290905-0.297096-0.978914-0.211827-0.361191-1.160505-0.6652070.337560
\n", + "

5 rows × 31 columns

\n", + "
" + ], + "text/plain": [ + " cell_1_radius cell_1_texture cell_1_perimiter cell_1_area \\\n", + "0 0.192688 1.241770 0.123934 0.122300 \n", + "1 0.183175 -2.774630 0.372418 0.088138 \n", + "2 1.254939 -1.127953 1.061610 1.147186 \n", + "3 -1.900104 -0.442226 -1.747667 -1.662423 \n", + "4 0.912482 -1.850998 0.949089 0.930821 \n", + "\n", + " cell_1_smoothness cell_1_compactness cell_1_concavity \\\n", + "0 -0.623774 -0.784542 -0.676803 \n", + "1 1.258416 2.711439 2.043606 \n", + "2 -1.146560 -0.477137 -0.436726 \n", + "3 3.187841 2.838018 1.209726 \n", + "4 -0.190654 -0.197860 0.593194 \n", + "\n", + " cell_1_concave_points cell_1_symmetry cell_1_fractal_dimension ... \\\n", + "0 -0.480176 -0.228521 0.086480 ... \n", + "1 1.785222 1.795777 2.216313 ... \n", + "2 -0.147247 1.481536 -0.360812 ... \n", + "3 0.545246 2.446183 4.810056 ... \n", + "4 0.518612 -0.433143 -0.536682 ... \n", + "\n", + " cell_3_texture cell_3_perimiter cell_3_area cell_3_smoothness \\\n", + "0 1.156324 -0.022477 0.053105 -1.112648 \n", + "1 -2.133937 1.535510 1.050496 0.832831 \n", + "2 -1.525864 0.650684 0.930741 -1.144541 \n", + "3 -0.606256 -1.439240 -1.432374 3.001561 \n", + "4 -2.243890 0.411261 0.290905 -0.297096 \n", + "\n", + " cell_3_compactness cell_3_concavity cell_3_concave_points \\\n", + "0 -1.054732 -0.708404 -1.370815 \n", + "1 1.837343 1.589132 1.922113 \n", + "2 -0.123520 -0.550192 0.541923 \n", + "3 3.064487 1.444778 1.746815 \n", + "4 -0.978914 -0.211827 -0.361191 \n", + "\n", + " cell_3_symmetry cell_3_fractal_dimension tumor_size \n", + "0 -0.743009 -0.459226 1.113530 \n", + "1 1.823321 1.329259 0.078903 \n", + "2 1.467183 -0.007488 -0.179753 \n", + "3 4.540377 3.891002 -0.438410 \n", + "4 -1.160505 -0.665207 0.337560 \n", + "\n", + "[5 rows x 31 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.preprocessing import StandardScaler\n", + "transformer = StandardScaler().fit(numerics)\n", + "scaled = transformer.transform(numerics)\n", + "scaled = pd.DataFrame(scaled)\n", + "scaled.columns = numerics.columns \n", + "scaled.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.decomposition import PCA\n", + "from sklearn import preprocessing\n", + "pca = PCA()\n", + "pca.fit(scaled)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# pca.components_" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([31.6, 26.5, 10.8, 7.2, 4.6, 4. , 3.2, 2.9, 1.9, 1.5, 1.2,\n", + " 1.1, 0.8, 0.7, 0.4, 0.3, 0.3, 0.2, 0.2, 0.2, 0.1, 0.1,\n", + " 0.1, 0.1, 0.1, 0. , 0. , 0. , 0. , 0. , 0. ])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# variations = pca.explained_variance_\n", + "variations = pca.explained_variance_ratio_*100\n", + "variations = np.round(variations, decimals=1)\n", + "variations" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "plot_labels = ['PC'+str(i) for i in range(1,len(variations)+1)]\n", + "?plot_labels" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'PCA Scree Plot')" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from matplotlib.pyplot import figure\n", + "figure(figsize=(20,5))\n", + "plt.bar(x = plot_labels, height=variations)\n", + "plt.xlabel('Principal Components')\n", + "plt.ylabel('Variance Explained')\n", + "plt.title('PCA Scree Plot')" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "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", + "
PC1PC2PC3
00.2129470.0173150.229033
1-0.235699-0.058704-0.217823
2-0.0850630.063490-0.085697
30.0128360.6010370.017419
40.0493090.1195500.037690
\n", + "
" + ], + "text/plain": [ + " PC1 PC2 PC3\n", + "0 0.212947 0.017315 0.229033\n", + "1 -0.235699 -0.058704 -0.217823\n", + "2 -0.085063 0.063490 -0.085697\n", + "3 0.012836 0.601037 0.017419\n", + "4 0.049309 0.119550 0.037690" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data = pd.DataFrame(pca.components_)\n", + "data = data[[0,1,2]]\n", + "data.columns = ['PC1', 'PC2', 'PC3']\n", + "data.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/files_for_lab/principal_component_analysis_example/pca-principal-component-analysis.ipynb b/files_for_lab/principal_component_analysis_example/pca-principal-component-analysis.ipynb index 452cf3e..5021fe0 100644 --- a/files_for_lab/principal_component_analysis_example/pca-principal-component-analysis.ipynb +++ b/files_for_lab/principal_component_analysis_example/pca-principal-component-analysis.ipynb @@ -1162,7 +1162,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.8.5" } }, "nbformat": 4,