{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" }, "execute": { "enabled": false } }, "cells": [ { "cell_type": "markdown", "source": [ "## Notebook: Financial Analytics\n", "*PADS - Programa Avançado em Data Science*\n", "\n", "Insper\n", "\n", "**Paloma Vaissman Uribe**\n", "\n", "\n", "\n" ], "metadata": { "id": "gxaVlI0HCzHd" } }, { "cell_type": "markdown", "source": [ "## 1. Exploring VAR - Vector Autoregression Models\n", "Based on https://www.statsmodels.org/dev/vector_ar.html" ], "metadata": { "id": "Otdf_jzXGXv-" } }, { "cell_type": "code", "source": [ "\n", "import numpy as np\n", "import pandas\n", "import statsmodels.api as sm\n", "from statsmodels.tsa.api import VAR\n", "from statsmodels.tsa.base.datetools import dates_from_str\n", "\n", "mdata = sm.datasets.macrodata.load_pandas().data\n", "\n", "# prepare the dates index\n", "dates = mdata[['year', 'quarter']].astype(int).astype(str)\n", "quarterly = dates[\"year\"] + \"Q\" + dates[\"quarter\"]\n", "quarterly = dates_from_str(quarterly)\n", "mdata = mdata[['realgdp','realcons','realinv']]\n", "mdata.index = pandas.DatetimeIndex(quarterly)\n", "data = np.log(mdata).diff().dropna()\n", "\n", "# make a VAR model\n", "model = VAR(data)\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ESY8ZR_OGdeH", "outputId": "abc41b4f-f87b-4e61-ecc1-04b1e0f04050" }, "execution_count": 1, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.12/dist-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: No frequency information was provided, so inferred frequency QE-DEC will be used.\n", " self._init_dates(dates, freq)\n" ] } ] }, { "cell_type": "code", "source": [ "data" ], "metadata": { "id": "fAUlbdQjp2uZ", "outputId": "3331bbc0-98ef-424e-ee3c-c312caafd517", "colab": { "base_uri": "https://localhost:8080/", "height": 424 } }, "execution_count": 2, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " realgdp realcons realinv\n", "1959-06-30 0.024942 0.015286 0.080213\n", "1959-09-30 -0.001193 0.010386 -0.072131\n", "1959-12-31 0.003495 0.001084 0.034425\n", "1960-03-31 0.022190 0.009534 0.102664\n", "1960-06-30 -0.004685 0.012572 -0.106694\n", "... ... ... ...\n", "2008-09-30 -0.006781 -0.008948 -0.017836\n", "2008-12-31 -0.013805 -0.007843 -0.069165\n", "2009-03-31 -0.016612 0.001511 -0.175598\n", "2009-06-30 -0.001851 -0.002196 -0.067561\n", "2009-09-30 0.006862 0.007265 0.020197\n", "\n", "[202 rows x 3 columns]" ], "text/html": [ "\n", "
| \n", " | realgdp | \n", "realcons | \n", "realinv | \n", "
|---|---|---|---|
| 1959-06-30 | \n", "0.024942 | \n", "0.015286 | \n", "0.080213 | \n", "
| 1959-09-30 | \n", "-0.001193 | \n", "0.010386 | \n", "-0.072131 | \n", "
| 1959-12-31 | \n", "0.003495 | \n", "0.001084 | \n", "0.034425 | \n", "
| 1960-03-31 | \n", "0.022190 | \n", "0.009534 | \n", "0.102664 | \n", "
| 1960-06-30 | \n", "-0.004685 | \n", "0.012572 | \n", "-0.106694 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "
| 2008-09-30 | \n", "-0.006781 | \n", "-0.008948 | \n", "-0.017836 | \n", "
| 2008-12-31 | \n", "-0.013805 | \n", "-0.007843 | \n", "-0.069165 | \n", "
| 2009-03-31 | \n", "-0.016612 | \n", "0.001511 | \n", "-0.175598 | \n", "
| 2009-06-30 | \n", "-0.001851 | \n", "-0.002196 | \n", "-0.067561 | \n", "
| 2009-09-30 | \n", "0.006862 | \n", "0.007265 | \n", "0.020197 | \n", "
202 rows × 3 columns
\n", "| Ticker | \n", "AAPL | \n", "ADBE | \n", "AMD | \n", "EBAY | \n", "HPQ | \n", "IBM | \n", "MSFT | \n", "ORCL | \n", "QCOM | \n", "SPY | \n", "
|---|---|---|---|---|---|---|---|---|---|---|
| Date | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
| 2013-01-02 | \n", "16.612209 | \n", "38.340000 | \n", "2.53 | \n", "20.143671 | \n", "4.630522 | \n", "113.857239 | \n", "22.242884 | \n", "28.839972 | \n", "45.717426 | \n", "116.953865 | \n", "
| 2013-01-03 | \n", "16.402523 | \n", "37.750000 | \n", "2.49 | \n", "19.715164 | \n", "4.667517 | \n", "113.231010 | \n", "21.944916 | \n", "28.524071 | \n", "45.505615 | \n", "116.689621 | \n", "
| 2013-01-04 | \n", "15.945637 | \n", "38.130001 | \n", "2.59 | \n", "19.839211 | \n", "4.667517 | \n", "112.488739 | \n", "21.534203 | \n", "28.773472 | \n", "44.834850 | \n", "117.202103 | \n", "
| 2013-01-07 | \n", "15.851841 | \n", "37.939999 | \n", "2.67 | \n", "20.113605 | \n", "4.676767 | \n", "111.995857 | \n", "21.493935 | \n", "28.623833 | \n", "45.194942 | \n", "116.881821 | \n", "
| 2013-01-08 | \n", "15.894504 | \n", "38.139999 | \n", "2.67 | \n", "19.801622 | \n", "4.744590 | \n", "111.839302 | \n", "21.381193 | \n", "28.632137 | \n", "45.124340 | \n", "116.545525 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 2017-12-22 | \n", "40.985916 | \n", "175.000000 | \n", "10.54 | \n", "33.723557 | \n", "16.513344 | \n", "102.822487 | \n", "78.645721 | \n", "42.007748 | \n", "52.838741 | \n", "236.793823 | \n", "
| 2017-12-26 | \n", "39.946098 | \n", "174.440002 | \n", "10.46 | \n", "33.884304 | \n", "16.490046 | \n", "103.045013 | \n", "78.544533 | \n", "42.069832 | \n", "52.487728 | \n", "236.510590 | \n", "
| 2017-12-27 | \n", "39.953129 | \n", "175.360001 | \n", "10.53 | \n", "33.589596 | \n", "16.521111 | \n", "103.247269 | \n", "78.829651 | \n", "42.025471 | \n", "52.683643 | \n", "236.625656 | \n", "
| 2017-12-28 | \n", "40.065544 | \n", "175.550003 | \n", "10.55 | \n", "33.866447 | \n", "16.427904 | \n", "103.860840 | \n", "78.838844 | \n", "42.149654 | \n", "52.553032 | \n", "237.112488 | \n", "
| 2017-12-29 | \n", "39.632286 | \n", "175.240005 | \n", "10.28 | \n", "33.705700 | \n", "16.319162 | \n", "103.442802 | \n", "78.673302 | \n", "41.936779 | \n", "52.259182 | \n", "236.218445 | \n", "
1259 rows × 10 columns
\n", "| Ticker | \n", "AAPL | \n", "ADBE | \n", "AMD | \n", "EBAY | \n", "HPQ | \n", "IBM | \n", "MSFT | \n", "ORCL | \n", "QCOM | \n", "SPY | \n", "
|---|---|---|---|---|---|---|---|---|---|---|
| Date | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
| 2013-01-03 | \n", "-0.012703 | \n", "-0.015508 | \n", "-0.015937 | \n", "-0.021502 | \n", "0.007958 | \n", "-0.005515 | \n", "-0.013487 | \n", "-0.011014 | \n", "-0.004644 | \n", "-0.002262 | \n", "
| 2013-01-04 | \n", "-0.028250 | \n", "0.010016 | \n", "0.039375 | \n", "0.006272 | \n", "0.000000 | \n", "-0.006577 | \n", "-0.018893 | \n", "0.008706 | \n", "-0.014850 | \n", "0.004382 | \n", "
| 2013-01-07 | \n", "-0.005900 | \n", "-0.004995 | \n", "0.030421 | \n", "0.013736 | \n", "0.001980 | \n", "-0.004391 | \n", "-0.001872 | \n", "-0.005214 | \n", "0.007999 | \n", "-0.002736 | \n", "
| 2013-01-08 | \n", "0.002688 | \n", "0.005258 | \n", "0.000000 | \n", "-0.015633 | \n", "0.014398 | \n", "-0.001399 | \n", "-0.005259 | \n", "0.000290 | \n", "-0.001563 | \n", "-0.002881 | \n", "
| 2013-01-09 | \n", "-0.015752 | \n", "0.013542 | \n", "-0.015095 | \n", "0.001517 | \n", "0.029452 | \n", "-0.002856 | \n", "0.005634 | \n", "0.000581 | \n", "0.015063 | \n", "0.002539 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 2017-12-22 | \n", "0.000000 | \n", "0.002517 | \n", "-0.032667 | \n", "-0.001323 | \n", "0.000470 | \n", "0.006579 | \n", "0.000117 | \n", "0.001691 | \n", "0.005267 | \n", "-0.000262 | \n", "
| 2017-12-26 | \n", "-0.025697 | \n", "-0.003205 | \n", "-0.007619 | \n", "0.004755 | \n", "-0.001412 | \n", "0.002162 | \n", "-0.001287 | \n", "0.001477 | \n", "-0.006665 | \n", "-0.001197 | \n", "
| 2017-12-27 | \n", "0.000176 | \n", "0.005260 | \n", "0.006670 | \n", "-0.008736 | \n", "0.001882 | \n", "0.001961 | \n", "0.003623 | \n", "-0.001055 | \n", "0.003726 | \n", "0.000486 | \n", "
| 2017-12-28 | \n", "0.002810 | \n", "0.001083 | \n", "0.001898 | \n", "0.008208 | \n", "-0.005658 | \n", "0.005925 | \n", "0.000117 | \n", "0.002951 | \n", "-0.002482 | \n", "0.002055 | \n", "
| 2017-12-29 | \n", "-0.010873 | \n", "-0.001767 | \n", "-0.025926 | \n", "-0.004758 | \n", "-0.006641 | \n", "-0.004033 | \n", "-0.002102 | \n", "-0.005063 | \n", "-0.005607 | \n", "-0.003778 | \n", "
1258 rows × 10 columns
\n", "