Created
April 6, 2019 02:33
-
-
Save memonkey01/1a2e0299b663c2ea004dd1702863438c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# PCA - Replicando el Dow Jones\n", | |
| "## Analisis de componentes principales" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Autor: Guillermo Izquierdo \n", | |
| "Este código es para fines educativos exclusivamente " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "En estadística, el análisis de componentes principales (en español ACP, en inglés, PCA) es una técnica utilizada para describir un conjunto de datos en términos de nuevas variables (\"componentes\") no correlacionadas. Los componentes se ordenan por la cantidad de varianza original que describen, por lo que la técnica es útil para reducir la dimensionalidad de un conjunto de datos.\n", | |
| "\n", | |
| "Técnicamente, el ACP busca la proyección según la cual los datos queden mejor representados en términos de mínimos cuadrados. Esta convierte un conjunto de observaciones de variables posiblemente correlacionadas en un conjunto de valores de variables sin correlación lineal llamadas componentes principales.\n", | |
| "\n", | |
| "El ACP se emplea sobre todo en análisis exploratorio de datos y para construir modelos predictivos. El ACP comporta el cálculo de la descomposición en autovalores de la matriz de covarianza, normalmente tras centrar los datos en la media de cada atributo.\n", | |
| "\n", | |
| "Debe diferenciarse del análisis factorial con el que tiene similaridades formales y en el cual puede ser utilizado como un método de aproximación para la extracción de factores." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import pandas as pd\n", | |
| "from pandas_datareader import data as pdr\n", | |
| "import numpy as np\n", | |
| "import datetime as date" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "tickers = ['^DJI','JNJ','WMT','KO','DIS','PG','PFE','HD','UTX','VZ','MRK','MCD','WBA','CVX','BA','AAPL','MMM','NKE',\n", | |
| " 'UNH','INTC','XOM','IBM','CAT','DWDP','V','CSCO','JPM','GS','TRV','MSFT','AXP']\n", | |
| "\n", | |
| "enddate = date.datetime(2019,11,1)\n", | |
| "startdate = date.datetime(2016,1,1)\n", | |
| "\n", | |
| "data = pd.DataFrame()\n", | |
| "for tick in tickers:\n", | |
| " data[tick] = pdr.get_data_yahoo(tick, start = startdate, end = enddate)['Close']\n", | |
| " " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| " ^DJI JNJ WMT KO DIS \\\n", | |
| "Date \n", | |
| "2016-01-04 17148.939453 100.480003 61.459999 42.400002 102.980003 \n", | |
| "2016-01-05 17158.660156 100.900002 62.919998 42.549999 100.900002 \n", | |
| "2016-01-06 16906.509766 100.389999 63.549999 42.320000 100.360001 \n", | |
| "2016-01-07 16514.099609 99.220001 65.029999 41.619999 99.500000 \n", | |
| "2016-01-08 16346.450195 98.160004 63.540001 41.509998 99.250000 \n", | |
| "\n", | |
| " PG PFE HD UTX VZ ... \\\n", | |
| "Date ... \n", | |
| "2016-01-04 78.370003 31.950001 131.070007 95.570000 45.869999 ... \n", | |
| "2016-01-05 78.620003 32.180000 130.429993 95.720001 46.500000 ... \n", | |
| "2016-01-06 77.860001 31.610001 129.080002 93.120003 45.520000 ... \n", | |
| "2016-01-07 77.180000 31.400000 125.400002 91.900002 45.270000 ... \n", | |
| "2016-01-08 75.970001 31.000000 123.900002 90.400002 44.830002 ... \n", | |
| "\n", | |
| " IBM CAT DWDP V CSCO JPM \\\n", | |
| "Date \n", | |
| "2016-01-04 135.949997 67.989998 49.930000 75.699997 26.410000 63.619999 \n", | |
| "2016-01-05 135.850006 67.279999 49.549999 76.269997 26.290001 63.730000 \n", | |
| "2016-01-06 135.169998 66.220001 48.459999 75.269997 26.010000 62.810001 \n", | |
| "2016-01-07 132.860001 63.939999 46.639999 73.790001 25.410000 60.270000 \n", | |
| "2016-01-08 131.630005 63.290001 46.279999 72.879997 24.780001 58.919998 \n", | |
| "\n", | |
| " GS TRV MSFT AXP \n", | |
| "Date \n", | |
| "2016-01-04 177.139999 109.970001 54.799999 67.589996 \n", | |
| "2016-01-05 174.089996 110.470001 55.049999 66.550003 \n", | |
| "2016-01-06 169.839996 109.040001 54.049999 64.419998 \n", | |
| "2016-01-07 164.619995 106.440002 52.169998 63.840000 \n", | |
| "2016-01-08 163.940002 105.989998 52.330002 63.630001 \n", | |
| "\n", | |
| "[5 rows x 31 columns]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "print(data.head())" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| " JNJ WMT KO DIS PG \\\n", | |
| "Date \n", | |
| "2016-01-04 100.480003 61.459999 42.400002 102.980003 78.370003 \n", | |
| "2016-01-05 100.900002 62.919998 42.549999 100.900002 78.620003 \n", | |
| "2016-01-06 100.389999 63.549999 42.320000 100.360001 77.860001 \n", | |
| "2016-01-07 99.220001 65.029999 41.619999 99.500000 77.180000 \n", | |
| "2016-01-08 98.160004 63.540001 41.509998 99.250000 75.970001 \n", | |
| "\n", | |
| " PFE HD UTX VZ MRK ... \\\n", | |
| "Date ... \n", | |
| "2016-01-04 31.950001 131.070007 95.570000 45.869999 52.480000 ... \n", | |
| "2016-01-05 32.180000 130.429993 95.720001 46.500000 53.150002 ... \n", | |
| "2016-01-06 31.610001 129.080002 93.120003 45.520000 52.419998 ... \n", | |
| "2016-01-07 31.400000 125.400002 91.900002 45.270000 51.959999 ... \n", | |
| "2016-01-08 31.000000 123.900002 90.400002 44.830002 51.080002 ... \n", | |
| "\n", | |
| " IBM CAT DWDP V CSCO JPM \\\n", | |
| "Date \n", | |
| "2016-01-04 135.949997 67.989998 49.930000 75.699997 26.410000 63.619999 \n", | |
| "2016-01-05 135.850006 67.279999 49.549999 76.269997 26.290001 63.730000 \n", | |
| "2016-01-06 135.169998 66.220001 48.459999 75.269997 26.010000 62.810001 \n", | |
| "2016-01-07 132.860001 63.939999 46.639999 73.790001 25.410000 60.270000 \n", | |
| "2016-01-08 131.630005 63.290001 46.279999 72.879997 24.780001 58.919998 \n", | |
| "\n", | |
| " GS TRV MSFT AXP \n", | |
| "Date \n", | |
| "2016-01-04 177.139999 109.970001 54.799999 67.589996 \n", | |
| "2016-01-05 174.089996 110.470001 55.049999 66.550003 \n", | |
| "2016-01-06 169.839996 109.040001 54.049999 64.419998 \n", | |
| "2016-01-07 164.619995 106.440002 52.169998 63.840000 \n", | |
| "2016-01-08 163.940002 105.989998 52.330002 63.630001 \n", | |
| "\n", | |
| "[5 rows x 30 columns]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "dji = pd.DataFrame(data.pop('^DJI'))\n", | |
| "print(data.head())" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| " JNJ WMT KO DIS PG PFE \\\n", | |
| "Date \n", | |
| "2016-01-04 -2.207090 -1.651418 -1.024570 -0.177897 -1.314746 -0.928036 \n", | |
| "2016-01-05 -2.170048 -1.525128 -0.950779 -0.486168 -1.267351 -0.867616 \n", | |
| "2016-01-06 -2.215027 -1.470633 -1.063926 -0.566201 -1.411434 -1.017352 \n", | |
| "2016-01-07 -2.318214 -1.342614 -1.408289 -0.693659 -1.540350 -1.072519 \n", | |
| "2016-01-08 -2.411699 -1.471498 -1.462403 -0.730711 -1.769746 -1.177597 \n", | |
| "\n", | |
| " HD UTX VZ MRK ... IBM \\\n", | |
| "Date ... \n", | |
| "2016-01-04 -1.037887 -1.576620 -1.387128 -1.456222 ... -0.995113 \n", | |
| "2016-01-05 -1.062302 -1.564745 -1.206041 -1.348584 ... -1.002137 \n", | |
| "2016-01-06 -1.113801 -1.770590 -1.487732 -1.465862 ... -1.049908 \n", | |
| "2016-01-07 -1.254183 -1.867180 -1.559592 -1.539763 ... -1.212188 \n", | |
| "2016-01-08 -1.311404 -1.985937 -1.686065 -1.681138 ... -1.298596 \n", | |
| "\n", | |
| " CAT DWDP V CSCO JPM GS \\\n", | |
| "Date \n", | |
| "2016-01-04 -1.470666 -1.359375 -1.140246 -1.320966 -1.334517 -0.923029 \n", | |
| "2016-01-05 -1.494247 -1.407173 -1.116722 -1.338359 -1.328873 -1.005359 \n", | |
| "2016-01-06 -1.529452 -1.544277 -1.157992 -1.378941 -1.376073 -1.120083 \n", | |
| "2016-01-07 -1.605178 -1.773203 -1.219072 -1.465903 -1.506388 -1.260990 \n", | |
| "2016-01-08 -1.626766 -1.818485 -1.256627 -1.557213 -1.575649 -1.279345 \n", | |
| "\n", | |
| " TRV MSFT AXP \n", | |
| "Date \n", | |
| "2016-01-04 -1.432633 -1.079536 -0.968762 \n", | |
| "2016-01-05 -1.378234 -1.067135 -1.032557 \n", | |
| "2016-01-06 -1.533815 -1.116740 -1.163216 \n", | |
| "2016-01-07 -1.816688 -1.209997 -1.198794 \n", | |
| "2016-01-08 -1.865647 -1.202060 -1.211676 \n", | |
| "\n", | |
| "[5 rows x 30 columns]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "normalize = lambda x: (x-x.mean())/x.std()\n", | |
| "a=data.apply(normalize)\n", | |
| "print(a.head())" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "from sklearn.decomposition import KernelPCA\n", | |
| "pca = KernelPCA().fit(a)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "422\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "print(len(pca.lambdas_))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "[14795.849 2613.479 1955.464 1108.871 857.244]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "print(pca.lambdas_[:5].round(3))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 10, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "[0.64301823 0.11358013 0.08498322 0.04819082 0.03725528]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "recompose = lambda x: x/x.sum()\n", | |
| "print(recompose(pca.lambdas_)[:5])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "pca = KernelPCA(n_components = 1).fit(data.apply(normalize))\n", | |
| "dji['PCA_1'] = pca.transform(-data)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "import matplotlib.pyplot as plt\n", | |
| "%matplotlib inline\n", | |
| "dji.apply(normalize).plot()\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| " ^DJI PCA_1\n", | |
| "Date \n", | |
| "2016-01-04 17148.939453 390.770622\n", | |
| "2016-01-05 17158.660156 390.832219\n", | |
| "2016-01-06 16906.509766 384.531322\n", | |
| "2016-01-07 16514.099609 374.238852\n", | |
| "2016-01-08 16346.450195 370.496940\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "print(dji.head())" | |
| ] | |
| }, | |
| { | |
| "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": 3 | |
| }, | |
| "file_extension": ".py", | |
| "mimetype": "text/x-python", | |
| "name": "python", | |
| "nbconvert_exporter": "python", | |
| "pygments_lexer": "ipython3", | |
| "version": "3.6.3" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment