{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "ad9a90d6", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.132102300Z", "start_time": "2023-11-30T16:28:55.530358300Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Time Period Subscribers\n", "0 01/04/2013 34240000\n", "1 01/07/2013 35640000\n", "2 01/10/2013 38010000\n", "3 01/01/2014 41430000\n", "4 01/04/2014 46130000\n" ] } ], "source": [ "# Importing Necessay Python libraries\n", "import pickle\n", "\n", "\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import plotly.graph_objs as go\n", "import plotly.express as px\n", "import plotly.io as pio\n", "pio.templates.default = \"plotly_white\"\n", "from statsmodels.tsa.arima.model import ARIMA\n", "from statsmodels.graphics.tsaplots import plot_acf, plot_pacf\n", "\n", "# reading the data\n", "data = pd.read_csv('Netflix-Subscriptions.csv')\n", "print(data.head())" ] }, { "cell_type": "code", "execution_count": 2, "id": "043704f6", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.149369900Z", "start_time": "2023-11-30T16:28:57.134099500Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Time Period Subscribers\n", "0 2013-04-01 34240000\n", "1 2013-07-01 35640000\n", "2 2013-10-01 38010000\n", "3 2014-01-01 41430000\n", "4 2014-04-01 46130000\n" ] } ], "source": [ "data['Time Period'] = pd.to_datetime(data['Time Period'], \n", " format='%d/%m/%Y')\n", "print(data.head())" ] }, { "cell_type": "code", "execution_count": 3, "id": "5447593a", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.631623400Z", "start_time": "2023-11-30T16:28:57.149369900Z" } }, "outputs": [ { "data": { "text/html": " \n " }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "data": [ { "mode": "lines", "name": "Subscribers", "x": [ "2013-04-01T00:00:00", "2013-07-01T00:00:00", "2013-10-01T00:00:00", "2014-01-01T00:00:00", "2014-04-01T00:00:00", "2014-07-01T00:00:00", "2014-10-01T00:00:00", "2015-01-01T00:00:00", "2015-04-01T00:00:00", "2015-07-01T00:00:00", "2015-10-01T00:00:00", "2016-01-01T00:00:00", "2016-04-01T00:00:00", "2016-07-01T00:00:00", "2016-10-01T00:00:00", "2017-01-01T00:00:00", "2017-04-01T00:00:00", "2017-07-01T00:00:00", "2017-10-01T00:00:00", "2018-01-01T00:00:00", "2018-04-01T00:00:00", "2018-07-01T00:00:00", "2018-10-01T00:00:00", "2019-01-01T00:00:00", "2019-04-01T00:00:00", "2019-07-01T00:00:00", "2019-10-01T00:00:00", "2020-01-01T00:00:00", "2020-04-01T00:00:00", "2020-07-01T00:00:00", "2020-10-01T00:00:00", "2021-01-01T00:00:00", "2021-04-01T00:00:00", "2021-07-01T00:00:00", "2021-10-01T00:00:00", "2022-01-01T00:00:00", "2022-04-01T00:00:00", "2022-07-01T00:00:00", "2022-10-01T00:00:00", "2023-01-01T00:00:00", "2023-04-01T00:00:00", "2023-07-01T00:00:00" ], "y": [ 34240000, 35640000, 38010000, 41430000, 46130000, 47990000, 50650000, 54480000, 59620000, 62080000, 66020000, 70840000, 77710000, 79900000, 83280000, 89090000, 94360000, 99040000, 104020000, 110640000, 118900000, 124350000, 130420000, 139260000, 148860000, 151560000, 158330000, 167090000, 182860000, 192950000, 195150000, 203660000, 207640000, 209180000, 213560000, 221840000, 221640000, 220670000, 223090000, 230750000, 232500000, 238390000 ], "type": "scatter" } ], "layout": { "template": { "data": { "histogram2dcontour": [ { "type": "histogram2dcontour", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "choropleth": [ { "type": "choropleth", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "histogram2d": [ { "type": "histogram2d", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "heatmap": [ { "type": "heatmap", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "heatmapgl": [ { "type": "heatmapgl", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "contourcarpet": [ { "type": "contourcarpet", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "contour": [ { "type": "contour", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "surface": [ { "type": "surface", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "mesh3d": [ { "type": "mesh3d", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "parcoords": [ { "type": "parcoords", "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterpolargl": [ { "type": "scatterpolargl", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "scattergeo": [ { "type": "scattergeo", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterpolar": [ { "type": "scatterpolar", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "scattergl": [ { "type": "scattergl", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatter3d": [ { "type": "scatter3d", "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scattermapbox": [ { "type": "scattermapbox", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterternary": [ { "type": "scatterternary", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scattercarpet": [ { "type": "scattercarpet", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "#C8D4E3", "linecolor": "#C8D4E3", "minorgridcolor": "#C8D4E3", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "#C8D4E3", "linecolor": "#C8D4E3", "minorgridcolor": "#C8D4E3", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ], "barpolar": [ { "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "pie": [ { "automargin": true, "type": "pie" } ] }, "layout": { "autotypenumbers": "strict", "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "hovermode": "closest", "hoverlabel": { "align": "left" }, "paper_bgcolor": "white", "plot_bgcolor": "white", "polar": { "bgcolor": "white", "angularaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "" }, "radialaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "" } }, "ternary": { "bgcolor": "white", "aaxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" }, "caxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" } }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ] }, "xaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#EBF0F8", "automargin": true, "zerolinewidth": 2 }, "yaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#EBF0F8", "automargin": true, "zerolinewidth": 2 }, "scene": { "xaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 }, "yaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 }, "zaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "geo": { "bgcolor": "white", "landcolor": "white", "subunitcolor": "#C8D4E3", "showland": true, "showlakes": true, "lakecolor": "white" }, "title": { "x": 0.05 }, "mapbox": { "style": "light" } } }, "title": { "text": "Netflix Quarterly Subscriptions Growth" }, "xaxis": { "title": { "text": "Date" } }, "yaxis": { "title": { "text": "Netflix Subscriptions" } } }, "config": { "plotlyServerURL": "https://plot.ly" } }, "text/html": "
" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = go.Figure()\n", "fig.add_trace(go.Scatter(x=data['Time Period'],\n", " y=data['Subscribers'],\n", " mode='lines', name='Subscribers'))\n", "fig.update_layout(title='Netflix Quarterly Subscriptions Growth',\n", " xaxis_title='Date',\n", " yaxis_title='Netflix Subscriptions')\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 4, "id": "80ad6d5f", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.633611100Z", "start_time": "2023-11-30T16:28:57.550307300Z" } }, "outputs": [], "source": [ "data['Quarterly Growth Rate'] = data['Subscribers'].pct_change() * 100" ] }, { "cell_type": "code", "execution_count": 5, "id": "3da1150a", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.634608300Z", "start_time": "2023-11-30T16:28:57.551318200Z" } }, "outputs": [ { "data": { "text/plain": " Time Period Subscribers Quarterly Growth Rate\n0 2013-04-01 34240000 NaN\n1 2013-07-01 35640000 4.088785\n2 2013-10-01 38010000 6.649832\n3 2014-01-01 41430000 8.997632\n4 2014-04-01 46130000 11.344436", "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
Time PeriodSubscribersQuarterly Growth Rate
02013-04-0134240000NaN
12013-07-01356400004.088785
22013-10-01380100006.649832
32014-01-01414300008.997632
42014-04-014613000011.344436
\n
" }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "code", "execution_count": 6, "id": "3bc008e5", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.634608300Z", "start_time": "2023-11-30T16:28:57.551318200Z" } }, "outputs": [], "source": [ "data[\"Bar Color\"] = data[\"Quarterly Growth Rate\"].apply(lambda x: 'green ' if x>0 else 'red')" ] }, { "cell_type": "code", "execution_count": 7, "id": "9f9aa033", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.634608300Z", "start_time": "2023-11-30T16:28:57.551318200Z" } }, "outputs": [ { "data": { "text/plain": " Time Period Subscribers Quarterly Growth Rate Bar Color\n0 2013-04-01 34240000 NaN red\n1 2013-07-01 35640000 4.088785 green \n2 2013-10-01 38010000 6.649832 green \n3 2014-01-01 41430000 8.997632 green \n4 2014-04-01 46130000 11.344436 green \n5 2014-07-01 47990000 4.032083 green \n6 2014-10-01 50650000 5.542821 green \n7 2015-01-01 54480000 7.561698 green \n8 2015-04-01 59620000 9.434655 green \n9 2015-07-01 62080000 4.126132 green \n10 2015-10-01 66020000 6.346649 green \n11 2016-01-01 70840000 7.300818 green \n12 2016-04-01 77710000 9.697911 green \n13 2016-07-01 79900000 2.818170 green \n14 2016-10-01 83280000 4.230288 green \n15 2017-01-01 89090000 6.976465 green \n16 2017-04-01 94360000 5.915366 green \n17 2017-07-01 99040000 4.959729 green \n18 2017-10-01 104020000 5.028271 green \n19 2018-01-01 110640000 6.364161 green \n20 2018-04-01 118900000 7.465654 green \n21 2018-07-01 124350000 4.583684 green \n22 2018-10-01 130420000 4.881383 green \n23 2019-01-01 139260000 6.778102 green \n24 2019-04-01 148860000 6.893580 green \n25 2019-07-01 151560000 1.813785 green \n26 2019-10-01 158330000 4.466878 green \n27 2020-01-01 167090000 5.532748 green \n28 2020-04-01 182860000 9.438027 green \n29 2020-07-01 192950000 5.517883 green \n30 2020-10-01 195150000 1.140192 green \n31 2021-01-01 203660000 4.360748 green \n32 2021-04-01 207640000 1.954237 green \n33 2021-07-01 209180000 0.741668 green \n34 2021-10-01 213560000 2.093890 green \n35 2022-01-01 221840000 3.877131 green \n36 2022-04-01 221640000 -0.090155 red\n37 2022-07-01 220670000 -0.437647 red\n38 2022-10-01 223090000 1.096660 green \n39 2023-01-01 230750000 3.433592 green \n40 2023-04-01 232500000 0.758397 green \n41 2023-07-01 238390000 2.533333 green ", "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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Time PeriodSubscribersQuarterly Growth RateBar Color
02013-04-0134240000NaNred
12013-07-01356400004.088785green
22013-10-01380100006.649832green
32014-01-01414300008.997632green
42014-04-014613000011.344436green
52014-07-01479900004.032083green
62014-10-01506500005.542821green
72015-01-01544800007.561698green
82015-04-01596200009.434655green
92015-07-01620800004.126132green
102015-10-01660200006.346649green
112016-01-01708400007.300818green
122016-04-01777100009.697911green
132016-07-01799000002.818170green
142016-10-01832800004.230288green
152017-01-01890900006.976465green
162017-04-01943600005.915366green
172017-07-01990400004.959729green
182017-10-011040200005.028271green
192018-01-011106400006.364161green
202018-04-011189000007.465654green
212018-07-011243500004.583684green
222018-10-011304200004.881383green
232019-01-011392600006.778102green
242019-04-011488600006.893580green
252019-07-011515600001.813785green
262019-10-011583300004.466878green
272020-01-011670900005.532748green
282020-04-011828600009.438027green
292020-07-011929500005.517883green
302020-10-011951500001.140192green
312021-01-012036600004.360748green
322021-04-012076400001.954237green
332021-07-012091800000.741668green
342021-10-012135600002.093890green
352022-01-012218400003.877131green
362022-04-01221640000-0.090155red
372022-07-01220670000-0.437647red
382022-10-012230900001.096660green
392023-01-012307500003.433592green
402023-04-012325000000.758397green
412023-07-012383900002.533333green
\n
" }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data" ] }, { "cell_type": "code", "execution_count": 8, "id": "06d98092", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.635615Z", "start_time": "2023-11-30T16:28:57.551318200Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "data": [ { "marker": { "color": [ "red", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "green ", "red", "red", "green ", "green ", "green ", "green " ] }, "name": "Quarterly Growth Rate", "x": [ "2013-04-01T00:00:00", "2013-07-01T00:00:00", "2013-10-01T00:00:00", "2014-01-01T00:00:00", "2014-04-01T00:00:00", "2014-07-01T00:00:00", "2014-10-01T00:00:00", "2015-01-01T00:00:00", "2015-04-01T00:00:00", "2015-07-01T00:00:00", "2015-10-01T00:00:00", "2016-01-01T00:00:00", "2016-04-01T00:00:00", "2016-07-01T00:00:00", "2016-10-01T00:00:00", "2017-01-01T00:00:00", "2017-04-01T00:00:00", "2017-07-01T00:00:00", "2017-10-01T00:00:00", "2018-01-01T00:00:00", "2018-04-01T00:00:00", "2018-07-01T00:00:00", "2018-10-01T00:00:00", "2019-01-01T00:00:00", "2019-04-01T00:00:00", "2019-07-01T00:00:00", "2019-10-01T00:00:00", "2020-01-01T00:00:00", "2020-04-01T00:00:00", "2020-07-01T00:00:00", "2020-10-01T00:00:00", "2021-01-01T00:00:00", "2021-04-01T00:00:00", "2021-07-01T00:00:00", "2021-10-01T00:00:00", "2022-01-01T00:00:00", "2022-04-01T00:00:00", "2022-07-01T00:00:00", "2022-10-01T00:00:00", "2023-01-01T00:00:00", "2023-04-01T00:00:00", "2023-07-01T00:00:00" ], "y": [ null, 4.088785046728982, 6.649831649831639, 8.997632202052097, 11.344436398744872, 4.032083243008877, 5.542821421129407, 7.561697926949651, 9.434654919236408, 4.126132170412622, 6.346649484536093, 7.300817933959403, 9.697910784867304, 2.8181701196757114, 4.230287859824777, 6.976464937560034, 5.915366483331463, 4.959728698601107, 5.028271405492735, 6.3641607383195575, 7.465654374548092, 4.583683767872171, 4.881383192601518, 6.778101518172064, 6.893580353295992, 1.8137847642079707, 4.466877804169966, 5.532748057853842, 9.438027410377646, 5.5178825330854275, 1.1401917595232014, 4.360748142454529, 1.9542374545811647, 0.7416682720092549, 2.093890429295353, 3.877130548791907, -0.09015506671474771, -0.43764663418155436, 1.096660171296504, 3.433591823927573, 0.7583965330444142, 2.533333333333343 ], "type": "bar" } ], "layout": { "template": { "data": { "histogram2dcontour": [ { "type": "histogram2dcontour", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "choropleth": [ { "type": "choropleth", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "histogram2d": [ { "type": "histogram2d", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "heatmap": [ { "type": "heatmap", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "heatmapgl": [ { "type": "heatmapgl", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "contourcarpet": [ { "type": "contourcarpet", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "contour": [ { "type": "contour", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "surface": [ { "type": "surface", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "mesh3d": [ { "type": "mesh3d", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "parcoords": [ { "type": "parcoords", "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterpolargl": [ { "type": "scatterpolargl", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "scattergeo": [ { "type": "scattergeo", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterpolar": [ { "type": "scatterpolar", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "scattergl": [ { "type": "scattergl", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatter3d": [ { "type": "scatter3d", "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scattermapbox": [ { "type": "scattermapbox", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterternary": [ { "type": "scatterternary", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scattercarpet": [ { "type": "scattercarpet", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "#C8D4E3", "linecolor": "#C8D4E3", "minorgridcolor": "#C8D4E3", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "#C8D4E3", "linecolor": "#C8D4E3", "minorgridcolor": "#C8D4E3", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ], "barpolar": [ { "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "pie": [ { "automargin": true, "type": "pie" } ] }, "layout": { "autotypenumbers": "strict", "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "hovermode": "closest", "hoverlabel": { "align": "left" }, "paper_bgcolor": "white", "plot_bgcolor": "white", "polar": { "bgcolor": "white", "angularaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "" }, "radialaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "" } }, "ternary": { "bgcolor": "white", "aaxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" }, "caxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" } }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ] }, "xaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#EBF0F8", "automargin": true, "zerolinewidth": 2 }, "yaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#EBF0F8", "automargin": true, "zerolinewidth": 2 }, "scene": { "xaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 }, "yaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 }, "zaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "geo": { "bgcolor": "white", "landcolor": "white", "subunitcolor": "#C8D4E3", "showland": true, "showlakes": true, "lakecolor": "white" }, "title": { "x": 0.05 }, "mapbox": { "style": "light" } } }, "title": { "text": "Netflix Quarterly Subscriptions Growth Rate" }, "xaxis": { "title": { "text": "Time Period" } }, "yaxis": { "title": { "text": "Quarterly Growth Rate (%)" } } }, "config": { "plotlyServerURL": "https://plot.ly" } }, "text/html": "
" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = go.Figure()\n", "fig.add_trace(go.Bar(\n", " x=data['Time Period'],\n", " y=data['Quarterly Growth Rate'],\n", " marker_color=data['Bar Color'],\n", " name='Quarterly Growth Rate'\n", "))\n", "fig.update_layout(title='Netflix Quarterly Subscriptions Growth Rate',\n", " xaxis_title='Time Period',\n", " yaxis_title='Quarterly Growth Rate (%)')\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 9, "id": "16ed482e", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.637603800Z", "start_time": "2023-11-30T16:28:57.552324500Z" } }, "outputs": [], "source": [ "data[\"Year\"] = data[\"Time Period\"].dt.year" ] }, { "cell_type": "code", "execution_count": 10, "id": "7753770d", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.639607100Z", "start_time": "2023-11-30T16:28:57.552324500Z" } }, "outputs": [], "source": [ "yearly_growth = round(data.groupby('Year')['Subscribers'].pct_change().fillna(0) * 100)" ] }, { "cell_type": "code", "execution_count": 11, "id": "0353f1a8", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.640608700Z", "start_time": "2023-11-30T16:28:57.560321900Z" } }, "outputs": [ { "data": { "text/plain": "0 0.0\n1 4.0\n2 7.0\n3 0.0\n4 11.0\n5 4.0\n6 6.0\n7 0.0\n8 9.0\n9 4.0\n10 6.0\n11 0.0\n12 10.0\n13 3.0\n14 4.0\n15 0.0\n16 6.0\n17 5.0\n18 5.0\n19 0.0\n20 7.0\n21 5.0\n22 5.0\n23 0.0\n24 7.0\n25 2.0\n26 4.0\n27 0.0\n28 9.0\n29 6.0\n30 1.0\n31 0.0\n32 2.0\n33 1.0\n34 2.0\n35 0.0\n36 -0.0\n37 -0.0\n38 1.0\n39 0.0\n40 1.0\n41 3.0\nName: Subscribers, dtype: float64" }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "yearly_growth" ] }, { "cell_type": "code", "execution_count": 12, "id": "de7dbbb6", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.642610100Z", "start_time": "2023-11-30T16:28:57.576346200Z" } }, "outputs": [ { "data": { "text/plain": " Time Period Subscribers Quarterly Growth Rate Bar Color Year\n0 2013-04-01 34240000 NaN red 2013\n1 2013-07-01 35640000 4.088785 green 2013\n2 2013-10-01 38010000 6.649832 green 2013\n3 2014-01-01 41430000 8.997632 green 2014\n4 2014-04-01 46130000 11.344436 green 2014\n5 2014-07-01 47990000 4.032083 green 2014\n6 2014-10-01 50650000 5.542821 green 2014\n7 2015-01-01 54480000 7.561698 green 2015\n8 2015-04-01 59620000 9.434655 green 2015\n9 2015-07-01 62080000 4.126132 green 2015\n10 2015-10-01 66020000 6.346649 green 2015\n11 2016-01-01 70840000 7.300818 green 2016\n12 2016-04-01 77710000 9.697911 green 2016\n13 2016-07-01 79900000 2.818170 green 2016\n14 2016-10-01 83280000 4.230288 green 2016\n15 2017-01-01 89090000 6.976465 green 2017\n16 2017-04-01 94360000 5.915366 green 2017\n17 2017-07-01 99040000 4.959729 green 2017\n18 2017-10-01 104020000 5.028271 green 2017\n19 2018-01-01 110640000 6.364161 green 2018\n20 2018-04-01 118900000 7.465654 green 2018\n21 2018-07-01 124350000 4.583684 green 2018\n22 2018-10-01 130420000 4.881383 green 2018\n23 2019-01-01 139260000 6.778102 green 2019\n24 2019-04-01 148860000 6.893580 green 2019\n25 2019-07-01 151560000 1.813785 green 2019\n26 2019-10-01 158330000 4.466878 green 2019\n27 2020-01-01 167090000 5.532748 green 2020\n28 2020-04-01 182860000 9.438027 green 2020\n29 2020-07-01 192950000 5.517883 green 2020\n30 2020-10-01 195150000 1.140192 green 2020\n31 2021-01-01 203660000 4.360748 green 2021\n32 2021-04-01 207640000 1.954237 green 2021\n33 2021-07-01 209180000 0.741668 green 2021\n34 2021-10-01 213560000 2.093890 green 2021\n35 2022-01-01 221840000 3.877131 green 2022\n36 2022-04-01 221640000 -0.090155 red 2022\n37 2022-07-01 220670000 -0.437647 red 2022\n38 2022-10-01 223090000 1.096660 green 2022\n39 2023-01-01 230750000 3.433592 green 2023\n40 2023-04-01 232500000 0.758397 green 2023\n41 2023-07-01 238390000 2.533333 green 2023", "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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Time PeriodSubscribersQuarterly Growth RateBar ColorYear
02013-04-0134240000NaNred2013
12013-07-01356400004.088785green2013
22013-10-01380100006.649832green2013
32014-01-01414300008.997632green2014
42014-04-014613000011.344436green2014
52014-07-01479900004.032083green2014
62014-10-01506500005.542821green2014
72015-01-01544800007.561698green2015
82015-04-01596200009.434655green2015
92015-07-01620800004.126132green2015
102015-10-01660200006.346649green2015
112016-01-01708400007.300818green2016
122016-04-01777100009.697911green2016
132016-07-01799000002.818170green2016
142016-10-01832800004.230288green2016
152017-01-01890900006.976465green2017
162017-04-01943600005.915366green2017
172017-07-01990400004.959729green2017
182017-10-011040200005.028271green2017
192018-01-011106400006.364161green2018
202018-04-011189000007.465654green2018
212018-07-011243500004.583684green2018
222018-10-011304200004.881383green2018
232019-01-011392600006.778102green2019
242019-04-011488600006.893580green2019
252019-07-011515600001.813785green2019
262019-10-011583300004.466878green2019
272020-01-011670900005.532748green2020
282020-04-011828600009.438027green2020
292020-07-011929500005.517883green2020
302020-10-011951500001.140192green2020
312021-01-012036600004.360748green2021
322021-04-012076400001.954237green2021
332021-07-012091800000.741668green2021
342021-10-012135600002.093890green2021
352022-01-012218400003.877131green2022
362022-04-01221640000-0.090155red2022
372022-07-01220670000-0.437647red2022
382022-10-012230900001.096660green2022
392023-01-012307500003.433592green2023
402023-04-012325000000.758397green2023
412023-07-012383900002.533333green2023
\n
" }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data" ] }, { "cell_type": "code", "execution_count": 13, "id": "c6558991", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.964364Z", "start_time": "2023-11-30T16:28:57.584922100Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "data": [ { "marker": { "color": [ "red", "green", "green", "red", "green", "green", "green", "red", "green", "green", "green", "red", "green", "green", "green", "red", "green", "green", "green", "red", "green", "green", "green", "red", "green", "green", "green", "red", "green", "green", "green", "red", "green", "green", "green", "red", "red", "red", "green", "red", "green", "green" ] }, "name": "Yearly Growth Rate", "x": [ 2013, 2013, 2013, 2014, 2014, 2014, 2014, 2015, 2015, 2015, 2015, 2016, 2016, 2016, 2016, 2017, 2017, 2017, 2017, 2018, 2018, 2018, 2018, 2019, 2019, 2019, 2019, 2020, 2020, 2020, 2020, 2021, 2021, 2021, 2021, 2022, 2022, 2022, 2022, 2023, 2023, 2023 ], "y": [ 0.0, 4.0, 7.0, 0.0, 11.0, 4.0, 6.0, 0.0, 9.0, 4.0, 6.0, 0.0, 10.0, 3.0, 4.0, 0.0, 6.0, 5.0, 5.0, 0.0, 7.0, 5.0, 5.0, 0.0, 7.0, 2.0, 4.0, 0.0, 9.0, 6.0, 1.0, 0.0, 2.0, 1.0, 2.0, 0.0, -0.0, -0.0, 1.0, 0.0, 1.0, 3.0 ], "type": "bar" } ], "layout": { "template": { "data": { "histogram2dcontour": [ { "type": "histogram2dcontour", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "choropleth": [ { "type": "choropleth", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "histogram2d": [ { "type": "histogram2d", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "heatmap": [ { "type": "heatmap", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "heatmapgl": [ { "type": "heatmapgl", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "contourcarpet": [ { "type": "contourcarpet", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "contour": [ { "type": "contour", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "surface": [ { "type": "surface", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "mesh3d": [ { "type": "mesh3d", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "parcoords": [ { "type": "parcoords", "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterpolargl": [ { "type": "scatterpolargl", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "scattergeo": [ { "type": "scattergeo", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterpolar": [ { "type": "scatterpolar", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "scattergl": [ { "type": "scattergl", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatter3d": [ { "type": "scatter3d", "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scattermapbox": [ { "type": "scattermapbox", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterternary": [ { "type": "scatterternary", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scattercarpet": [ { "type": "scattercarpet", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "#C8D4E3", "linecolor": "#C8D4E3", "minorgridcolor": "#C8D4E3", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "#C8D4E3", "linecolor": "#C8D4E3", "minorgridcolor": "#C8D4E3", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ], "barpolar": [ { "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "pie": [ { "automargin": true, "type": "pie" } ] }, "layout": { "autotypenumbers": "strict", "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "hovermode": "closest", "hoverlabel": { "align": "left" }, "paper_bgcolor": "white", "plot_bgcolor": "white", "polar": { "bgcolor": "white", "angularaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "" }, "radialaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "" } }, "ternary": { "bgcolor": "white", "aaxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" }, "caxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" } }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ] }, "xaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#EBF0F8", "automargin": true, "zerolinewidth": 2 }, "yaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#EBF0F8", "automargin": true, "zerolinewidth": 2 }, "scene": { "xaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 }, "yaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 }, "zaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "geo": { "bgcolor": "white", "landcolor": "white", "subunitcolor": "#C8D4E3", "showland": true, "showlakes": true, "lakecolor": "white" }, "title": { "x": 0.05 }, "mapbox": { "style": "light" } } }, "title": { "text": "Netflix Yearly Subscriber Growth Rate" }, "xaxis": { "title": { "text": "Year" } }, "yaxis": { "title": { "text": "Yearly Growth Rate (%)" } } }, "config": { "plotlyServerURL": "https://plot.ly" } }, "text/html": "
" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "# Create a new column for bar color (green for positive growth, red for negative growth)\n", "data['Bar Color'] = yearly_growth.apply(lambda x: 'green' if x > 0 else 'red')\n", "\n", "# Plot the yearly subscriber growth rate using bar graphs\n", "fig = go.Figure()\n", "fig.add_trace(go.Bar(\n", " x=data['Year'],\n", " y=yearly_growth,\n", " marker_color=data['Bar Color'],\n", " name='Yearly Growth Rate'\n", "))\n", "fig.update_layout(title='Netflix Yearly Subscriber Growth Rate',\n", " xaxis_title='Year',\n", " yaxis_title='Yearly Growth Rate (%)')\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 14, "id": "e025f74d", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.965368200Z", "start_time": "2023-11-30T16:28:57.602391200Z" } }, "outputs": [], "source": [ "time_series = data.set_index('Time Period')['Subscribers']" ] }, { "cell_type": "code", "execution_count": 15, "id": "def7270c", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:57.966358900Z", "start_time": "2023-11-30T16:28:57.613078Z" } }, "outputs": [ { "data": { "text/plain": "Time Period\n2013-04-01 34240000\n2013-07-01 35640000\n2013-10-01 38010000\n2014-01-01 41430000\n2014-04-01 46130000\n2014-07-01 47990000\n2014-10-01 50650000\n2015-01-01 54480000\n2015-04-01 59620000\n2015-07-01 62080000\n2015-10-01 66020000\n2016-01-01 70840000\n2016-04-01 77710000\n2016-07-01 79900000\n2016-10-01 83280000\n2017-01-01 89090000\n2017-04-01 94360000\n2017-07-01 99040000\n2017-10-01 104020000\n2018-01-01 110640000\n2018-04-01 118900000\n2018-07-01 124350000\n2018-10-01 130420000\n2019-01-01 139260000\n2019-04-01 148860000\n2019-07-01 151560000\n2019-10-01 158330000\n2020-01-01 167090000\n2020-04-01 182860000\n2020-07-01 192950000\n2020-10-01 195150000\n2021-01-01 203660000\n2021-04-01 207640000\n2021-07-01 209180000\n2021-10-01 213560000\n2022-01-01 221840000\n2022-04-01 221640000\n2022-07-01 220670000\n2022-10-01 223090000\n2023-01-01 230750000\n2023-04-01 232500000\n2023-07-01 238390000\nName: Subscribers, dtype: int64" }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "time_series" ] }, { "cell_type": "code", "execution_count": 16, "id": "5a1b5fef", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:58.200141400Z", "start_time": "2023-11-30T16:28:57.619611Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Cihat Emre Karataş\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\statsmodels\\graphics\\tsaplots.py:348: FutureWarning:\n", "\n", "The default method 'yw' can produce PACF values outside of the [-1,1] interval. After 0.13, the default will change tounadjusted Yule-Walker ('ywm'). You can use this method now by setting method='ywm'.\n", "\n" ] }, { "data": { "text/plain": "
", "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+oAAAF2CAYAAAD5pWLDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABZRklEQVR4nO3deXxU1f3/8fckJJMETMKShUgkBBVEWWyQCC5BSUkQRSyiWCxLESyFWgQr0K+CiJW6lOJCBVs2f6IgKojLF2R1paAg4oJ82fckLCaBAFlmzu+PmIEhkw1mkjvJ6/l4zCMz95575tx7k3zmM/fcc2zGGCMAAAAAAGAJATXdAAAAAAAAcBaJOgAAAAAAFkKiDgAAAACAhZCoAwAAAABgISTqAAAAAABYCIk6AAAAAAAWQqIOAAAAAICFkKgDAAAAAGAhJOoAAAAAAFgIiToAS1i7dq1sNpvWrl3r1XptNpueeOIJr9YJAIAkPfHEE7LZbBe0bdeuXdW1a1fvNgge+eJYX8y5ByqDRB3wgX/961+y2WxKTk6+qHo++ugjksxK4DgBQN0zd+5c2Ww21yMkJERXXnmlRo4cqczMTK+9z6lTp/TEE094/YvkqnI4HIqLi5PNZtP//u//XlRdVtknq+M4oSaRqAM+MH/+fCUkJGjDhg3asWPHBdfz0UcfadKkSV5sWe1U3nE6ffq0HnvssWpuEQCgujz55JP6f//v/+nll19Wly5d9Morr6hz5846deqUV+o/deqUJk2a5DFZe+yxx3T69GmvvE9FVq9ercOHDyshIUHz58+/qLrK2yecZZVzj7qJRB3wst27d+vLL7/U1KlTFRUVddHB1OrK+iBUVFSkgoKCam5NaSEhIapXr15NNwMA4CM9evTQ/fffrwceeEBz587VqFGjtHv3br333nsXVa/T6dSZM2fKLVOvXj2FhIRc1PtU1uuvv65f/epXevjhh7VkyRLl5eVVy/vWlDNnzsjpdHpcZ4V9r85zj7qJRB3wsvnz56thw4bq2bOn7r777lKJeln3Yu/Zs0c2m01z586VJA0aNEjTp0+XJLeufSXy8vI0ZswYxcfHy263q1WrVnr++edljCnVptdff12dOnVSWFiYGjZsqJtvvlkff/yxW5l//etfuvrqq2W32xUXF6cRI0YoOzvbrUzXrl11zTXXaOPGjbr55psVFhamv/71r662P//885o2bZpatmwpu92uH3/8UZL0008/6e6771ajRo0UEhKijh07aunSpRUey88++0x9+/bVZZddJrvdrvj4eD388MNu32BXdJw83aP+zTffqEePHgoPD1eDBg3UrVs3/fe//3UrU9Kl8osvvtDo0aMVFRWl+vXr66677tKRI0cqbDsAoGbceuutkoq/OJek559/Xl26dFHjxo0VGhqqpKQkvf3226W2s9lsGjlypObPn++KhzNmzFBUVJQkadKkSa4YUxJXPN2nPGfOHN16662Kjo6W3W5XmzZt9Morr1zUPp0+fVqLFy9Wv379dM899+j06dMev4go617sQYMGKSEhQVLx543y9kkqvnp/0003qX79+oqMjNSdd96prVu3lqr34MGDGjJkiOLi4mS329WiRQsNHz7c7Yv6Xbt2qW/fvmrUqJHCwsJ0/fXX68MPP3Srp+Sz0YIFC/TYY4/p0ksvVVhYmHJzczVo0CA1aNBAO3fu1G233aZLLrlE/fv3l1T8Zcq0adN09dVXKyQkRDExMXrwwQf1888/l3s8CwoKNGHCBCUlJSkiIkL169fXTTfdpDVr1rjKVHScPJ37oqIiTZ482fU5KCEhQX/961+Vn5/vVi4hIUG33367Pv/8c3Xq1EkhISFKTEzUa6+9Vm67UbdwmQnwsvnz5+s3v/mNgoODdd999+mVV17RV199peuuu65K9Tz44IM6dOiQVqxYof/3//6f2zpjjHr16qU1a9ZoyJAh6tChg5YvX66//OUvOnjwoP75z3+6yk6aNElPPPGEunTpoieffFLBwcFav369Vq9ere7du0sqDjaTJk1Samqqhg8frm3btrna/cUXXygoKMhV37Fjx9SjRw/169dP999/v2JiYlzr5syZozNnzmjYsGGy2+1q1KiRfvjhB91www269NJLNW7cONWvX19vvfWWevfurXfeeUd33XVXmcdg0aJFOnXqlIYPH67GjRtrw4YNeumll3TgwAEtWrSowuPkyQ8//KCbbrpJ4eHhevTRRxUUFKSZM2eqa9eu+uSTT0qNK/CnP/1JDRs21MSJE7Vnzx5NmzZNI0eO1MKFCyt8LwBA9du5c6ckqXHjxpKkF154Qb169VL//v1VUFCgBQsWqG/fvvrggw/Us2dPt21Xr16tt956SyNHjlSTJk3Uvn17vfLKKxo+fLjuuusu/eY3v5EktWvXrsz3f+WVV3T11VerV69eqlevnt5//3398Y9/lNPp1IgRIy5on5YuXaqTJ0+qX79+io2NVdeuXTV//nz99re/rXJdUVFR5e7TypUr1aNHDyUmJuqJJ57Q6dOn9dJLL+mGG27Qpk2bXAn/oUOH1KlTJ2VnZ2vYsGFq3bq1Dh48qLffflunTp1ScHCwMjMz1aVLF506dUoPPfSQGjdurHnz5qlXr156++23S30GmDx5soKDg/XII48oPz9fwcHBkooT4LS0NN144416/vnnFRYWJqn4M8DcuXM1ePBgPfTQQ9q9e7defvllffPNN6U+v5wrNzdX//nPf3Tfffdp6NChOnHihGbNmqW0tDRt2LBBHTp0qPA4efLAAw9o3rx5uvvuuzVmzBitX79eU6ZM0datW7V48WK3sjt27NDdd9+tIUOGaODAgZo9e7YGDRqkpKQkXX311VU8q6iVDACv+frrr40ks2LFCmOMMU6n0zRr1sz8+c9/dpVZs2aNkWTWrFnjtu3u3buNJDNnzhzXshEjRhhPf6ZLliwxksxTTz3ltvzuu+82NpvN7NixwxhjzPbt201AQIC56667jMPhcCvrdDqNMcZkZWWZ4OBg0717d7cyL7/8spFkZs+e7VqWkpJiJJkZM2Z4bHt4eLjJyspyW9etWzfTtm1bc+bMGbf37tKli7niiivKPS6nTp0qte9TpkwxNpvN7N27t8LjZIwxkszEiRNdr3v37m2Cg4PNzp07XcsOHTpkLrnkEnPzzTe7ls2ZM8dIMqmpqa5jZYwxDz/8sAkMDDTZ2dke3w8AUD1K/k+vXLnSHDlyxOzfv98sWLDANG7c2ISGhpoDBw4YY0rHkoKCAnPNNdeYW2+91W25JBMQEGB++OEHt+VHjhwpFUtKTJw4sVT88RS70tLSTGJiotuylJQUk5KSUql9vf32280NN9zgev3qq6+aevXqlYq5ZdU5cOBA07x5c9fr8vapQ4cOJjo62hw7dsy17NtvvzUBAQFmwIABrmUDBgwwAQEB5quvvipVR0ncHDVqlJFkPvvsM9e6EydOmBYtWpiEhATX546SzwCJiYmljt/AgQONJDNu3Di35Z999pmRZObPn++2fNmyZaWWn39cioqKTH5+vtt2P//8s4mJiTG///3vK3Wczj/3mzdvNpLMAw884FbukUceMZLM6tWrXcuaN29uJJlPP/3UtSwrK8vY7XYzZsyYUu+Fuomu74AXzZ8/XzExMbrlllskFXeju/fee7VgwQI5HA6vvc9HH32kwMBAPfTQQ27Lx4wZI2OMazTYJUuWyOl0asKECQoIcP9zL+mutXLlShUUFGjUqFFuZYYOHarw8PBS3dPsdrsGDx7ssV19+vRxdROTpOPHj2v16tW65557dOLECR09elRHjx7VsWPHlJaWpu3bt+vgwYNl7mdoaKjreV5eno4ePaouXbrIGKNvvvmmvEPkkcPh0Mcff6zevXsrMTHRtbxp06b67W9/q88//1y5ublu2wwbNsyta9tNN90kh8OhvXv3Vvn9AQDel5qaqqioKMXHx6tfv35q0KCBFi9erEsvvVSSeyz5+eeflZOTo5tuukmbNm0qVVdKSoratGlzUe059/1ycnJ09OhRpaSkaNeuXcrJyalyfceOHdPy5ct13333uZb16dNHNptNb7311kW19XyHDx/W5s2bNWjQIDVq1Mi1vF27dvr1r3+tjz76SFJxl/MlS5bojjvuUMeOHUvVUxI3P/roI3Xq1Ek33nija12DBg00bNgw7dmzx3WLXImBAwe6Hb9zDR8+3O31okWLFBERoV//+teuzxdHjx5VUlKSGjRo4NaN/XyBgYGuq/VOp1PHjx9XUVGROnbs6PH3ojJKjs3o0aPdlo8ZM0aSSn2eatOmjW666SbX66ioKLVq1Uq7du26oPdH7UPXd8BLHA6HFixYoFtuucV1X5wkJScn6x//+IdWrVrl6mp+sfbu3au4uDhdcsklbsuvuuoq13qpuPtfQEBAuR86Ssq2atXKbXlwcLASExNLJaSXXnqpK7idr0WLFm6vd+zYIWOMHn/8cT3++OMet8nKynJ9mDrfvn37NGHCBC1durTU/WYX8mHnyJEjOnXqVKl9lYqPndPp1P79+926nF122WVu5Ro2bChJFd7/BgCoHtOnT9eVV16pevXqKSYmRq1atXL74vmDDz7QU089pc2bN7vdK+xpDuzz49iF+OKLLzRx4kStW7eu1ICrOTk5ioiIqFJ9CxcuVGFhoa699lq3mWSSk5M1f/78C+5O70lZnwmk4ji5fPly5eXl6eTJk8rNzdU111xTYX2epqo99/PKuXWUdfzr1aunZs2auS3bvn27cnJyFB0d7XGbrKyscts2b948/eMf/9BPP/2kwsLCCttQkb179yogIECXX3652/LY2FhFRkaW+jx1/ucLqfgzBp8vUIJEHfCSkmlTFixYoAULFpRaP3/+fHXv3t3jBwNJXr3i7ktlfdPtaV3JaK2PPPKI0tLSPG5zfkAr4XA49Otf/1rHjx/X2LFj1bp1a9WvX18HDx7UoEGDyhwJ1tsCAwM9LjceBu0DAFS/Tp06ebyqKxUPStqrVy/dfPPN+te//qWmTZsqKChIc+bM0RtvvFGqfHkxrjJ27typbt26qXXr1po6dari4+MVHBysjz76SP/85z8vKHaVDEp7ww03eFy/a9cuVy8xm83mMT75+2cMu91eqmeg0+lUdHR0mbPrnNvD73yvv/66Bg0apN69e+svf/mLoqOjFRgYqClTprjGOLhQZX3OOx+fL1AREnXAS+bPn6/o6GjXCOTnevfdd7V48WLNmDHDdUX2/BHVPXWlLuufffPmzbVy5UqdOHHC7ar6Tz/95FovSS1btpTT6dSPP/6oDh06lFmXJG3bts2tO3hBQYF2796t1NTUMva4YiX1BQUFVbme7777Tv/3f/+nefPmacCAAa7lK1asKFW2skExKipKYWFh2rZtW6l1P/30kwICAhQfH1+ldgIArOudd95RSEiIli9fLrvd7lo+Z86cStdR2RgjSe+//77y8/O1dOlStyum5XXDLk/JlK8jR45USkqK2zqn06nf/e53euONN/TYY49JKr4i66nr9PmfMcr7fCGpzDjZpEkT1a9fX6GhoQoPD9f3339fbvubN29eZl3nvt+FaNmypVauXKkbbrihyl+wvP3220pMTNS7777rdiwmTpzoVq4q57558+ZyOp3avn27q8eAJGVmZio7O/ui9hV1E/eoA15w+vRpvfvuu7r99tt19913l3qMHDlSJ06c0NKlS9W8eXMFBgbq008/davjX//6V6l669evL6l0Un/bbbfJ4XDo5Zdfdlv+z3/+UzabTT169JAk9e7dWwEBAXryySdLfYtf8o1tamqqgoOD9eKLL7p9iztr1izl5OSUGhG3KqKjo9W1a1fNnDlThw8fLrW+vGnOSr5pPrdNxhi98MILpcqWdZw81dm9e3e999572rNnj2t5Zmam3njjDd14440KDw8vtw4AgP8IDAyUzWZzu6K8Z88eLVmypNJ1lIwwXlGMKXk/yT125eTkVOmLgXOVXC1+9NFHS322uOeee5SSkuJ2Rblly5b66aef3OLrt99+qy+++KJS+9S0aVN16NBB8+bNc1v3/fff6+OPP9Ztt90mSQoICFDv3r31/vvv6+uvvy7V7pL9v+2227RhwwatW7fOtS4vL0+vvvqqEhISLmo8gHvuuUcOh0OTJ08uta6oqKjc8+XpPK1fv96tnVLVzn3JsZk2bZrb8qlTp0rSRX2eQt3EFXXAC5YuXaoTJ06oV69eHtdff/31ioqK0vz583Xvvfeqb9++eumll2Sz2dSyZUt98MEHHu+lSkpKkiQ99NBDSktLU2BgoPr166c77rhDt9xyi/7nf/5He/bsUfv27fXxxx/rvffe06hRo9SyZUtJxd3K/+d//keTJ0/WTTfdpN/85jey2+366quvFBcXpylTpigqKkrjx4/XpEmTlJ6erl69emnbtm3617/+peuuu07333//RR2b6dOn68Ybb1Tbtm01dOhQJSYmKjMzU+vWrdOBAwf07bffetyudevWatmypR555BEdPHhQ4eHheueddzzeu1XWcfLkqaee0ooVK3TjjTfqj3/8o+rVq6eZM2cqPz9fzz777EXtKwDAWnr27KmpU6cqPT1dv/3tb5WVlaXp06fr8ssv15YtWypVR2hoqNq0aaOFCxfqyiuvVKNGjXTNNdd4vD+7e/fuCg4O1h133KEHH3xQJ0+e1L///W9FR0d7/MK6IvPnz1eHDh3K7O3Vq1cv/elPf9KmTZv0q1/9Sr///e81depUpaWlaciQIcrKytKMGTN09dVXuw2WWt4+Pffcc+rRo4c6d+6sIUOGuKZni4iIcJtr/emnn9bHH3+slJQUDRs2TFdddZUOHz6sRYsW6fPPP1dkZKTGjRunN998Uz169NBDDz2kRo0aad68edq9e7feeeedUt3ZqyIlJUUPPvigpkyZos2bN6t79+4KCgrS9u3btWjRIr3wwgu6++67PW57++23691339Vdd92lnj17avfu3ZoxY4batGmjkydPVuo4na99+/YaOHCgXn31VWVnZyslJUUbNmzQvHnz1Lt3b9dAw0Cl1chY80Atc8cdd5iQkBCTl5dXZplBgwaZoKAgc/ToUXPkyBHTp08fExYWZho2bGgefPBB8/3335eanq2oqMj86U9/MlFRUcZms7lNA3LixAnz8MMPm7i4OBMUFGSuuOIK89xzz7lNJVZi9uzZ5tprrzV2u900bNjQpKSkuKaQK/Hyyy+b1q1bm6CgIBMTE2OGDx9ufv75Z7cyKSkp5uqrry5Vf8n0bM8995zHfd+5c6cZMGCAiY2NNUFBQebSSy81t99+u3n77bddZTxNz/bjjz+a1NRU06BBA9OkSRMzdOhQ8+2331bpOMnDtCqbNm0yaWlppkGDBiYsLMzccsst5ssvv3QrUzLtz/nTzpQ1vR4AoHqV9X/6fLNmzTJXXHGFsdvtpnXr1mbOnDkep1WTZEaMGOGxji+//NIkJSWZ4OBgt7jiqZ6lS5eadu3amZCQEJOQkGCeeeYZM3v2bCPJ7N6921WuounZNm7caCSZxx9/vMwye/bsMZLMww8/7Fr2+uuvm8TERBMcHGw6dOhgli9fXmp6tvL2yRhjVq5caW644QYTGhpqwsPDzR133GF+/PHHUu+/d+9eM2DAABMVFWXsdrtJTEw0I0aMcJv6bOfOnebuu+82kZGRJiQkxHTq1Ml88MEHbvWUxNZFixaVeo+BAwea+vXrl3kMXn31VZOUlGRCQ0PNJZdcYtq2bWseffRRc+jQIVeZ84+10+k0Tz/9tGnevLmx2+3m2muvNR988EGVjpOnc19YWGgmTZpkWrRoYYKCgkx8fLwZP3682xS1xhRPz9azZ89S+1KVKftQ+9mMYcQCAAAAAACsgnvUAQAAAACwEBJ1AAAAAAAshEQdAAAAAAAL8Wmi/umnn+qOO+5QXFycbDZbpabCWLt2rX71q1/Jbrfr8ssv19y5c0uVmT59uhISEhQSEqLk5GRt2LDB+40HAAAVItYDAOB9Pk3U8/Ly1L59e02fPr1S5Xfv3q2ePXvqlltu0ebNmzVq1Cg98MADWr58uavMwoULNXr0aE2cOFGbNm1S+/btlZaW5nFqKwAA4FvEegAAvK/aRn232WxavHixevfuXWaZsWPH6sMPP9T333/vWtavXz9lZ2dr2bJlkqTk5GRdd911evnllyVJTqdT8fHx+tOf/qRx48b5dB8AAEDZiPUAAHhHvZpuwLnWrVun1NRUt2VpaWkaNWqUJKmgoEAbN27U+PHjXesDAgKUmpqqdevWlVlvfn6+8vPzXa+dTqeOHz+uxo0by2azeXcnAAC4AMYYnThxQnFxcQoIqL1DyBDrAQB1VVVivaUS9YyMDMXExLgti4mJUW5urk6fPq2ff/5ZDofDY5mffvqpzHqnTJmiSZMm+aTNAAB40/79+9WsWbOabobPEOsBAHVdZWK9pRJ1Xxk/frxGjx7tep2Tk6PLLrtM+/fvV3h4eJXr++eK/9PcL/fI4Sx910BggE2DuiTo4V9feVFtBgDULbm5uYqPj9cll1xS003xS96O9RLxHgDgXVWJ9ZZK1GNjY5WZmem2LDMzU+Hh4QoNDVVgYKACAwM9lomNjS2zXrvdLrvdXmp5eHj4BQXvASlXad7XmQrwcHe/zSYNTLlK4eH1q1wvAAC1vZu2v8R6iXgPAPCNysR6S90E17lzZ61atcpt2YoVK9S5c2dJUnBwsJKSktzKOJ1OrVq1ylWmOrRoUl/P9GmngHOOb6DNpgCb9EyfdkpoQtAGAMATf4n1EvEeAFBzfHpF/eTJk9qxY4fr9e7du7V582Y1atRIl112mcaPH6+DBw/qtddekyT94Q9/0Msvv6xHH31Uv//977V69Wq99dZb+vDDD111jB49WgMHDlTHjh3VqVMnTZs2TXl5eRo8eLAvd6WUvh3jdc2l4erxwueSpME3Juj+5OYEbQBAnVKbY71EvAcA1AyfJupff/21brnlFtfrknvHBg4cqLlz5+rw4cPat2+fa32LFi304Ycf6uGHH9YLL7ygZs2a6T//+Y/S0tJcZe69914dOXJEEyZMUEZGhjp06KBly5aVGnSmOjRvfDZIj/71lQoLttSdBAAA+Fxtj/US8R4AUP2qbR51K8nNzVVERIRycnIu+L41STpVUKQ2E5ZLkn58Mo3ADQC4YN6KTSjmzeNJvAcAeENVYpOl7lEHAAAAAKCuI1EHAAAAAMBCSNQBAAAAALAQEnUAAAAAACyERB0AAAAAAAshUQcAAAAAwEJI1AEAAAAAsBASdQAAAAAALIREHQAAAAAACyFRBwAAAADAQkjUAQAAAACwEBJ1AAAAAAAshEQdAAAAAAALIVEHAAAAAMBCSNQBAAAAALAQEnUAAAAAACyERB0AAAAAAAshUQcAAAAAwEJI1AEAAAAAsBASdQAAAAAALIREHQAAAAAACyFRBwAAAADAQkjUAQAAAACwEBJ1AAAAAAAshEQdAAAAAAALIVEHAAAAAMBCSNQBAAAAALCQaknUp0+froSEBIWEhCg5OVkbNmwos2zXrl1ls9lKPXr27OkqM2jQoFLr09PTq2NXAACAB8R6AAC8p56v32DhwoUaPXq0ZsyYoeTkZE2bNk1paWnatm2boqOjS5V/9913VVBQ4Hp97NgxtW/fXn379nUrl56erjlz5rhe2+123+0EAAAoE7EeAADv8vkV9alTp2ro0KEaPHiw2rRpoxkzZigsLEyzZ8/2WL5Ro0aKjY11PVasWKGwsLBSwdtut7uVa9iwoa93BQAAeECsBwDAu3yaqBcUFGjjxo1KTU09+4YBAUpNTdW6desqVcesWbPUr18/1a9f32352rVrFR0drVatWmn48OE6duyYV9sOAAAqRqwHAMD7fNr1/ejRo3I4HIqJiXFbHhMTo59++qnC7Tds2KDvv/9es2bNcluenp6u3/zmN2rRooV27typv/71r+rRo4fWrVunwMDAUvXk5+crPz/f9To3N/cC9wgAAJyLWA8AgPf5/B71izFr1iy1bdtWnTp1clver18/1/O2bduqXbt2atmypdauXatu3bqVqmfKlCmaNGmSz9sLAACqhlgPAEBpPu363qRJEwUGBiozM9NteWZmpmJjY8vdNi8vTwsWLNCQIUMqfJ/ExEQ1adJEO3bs8Lh+/PjxysnJcT32799f+Z0AAABlItYDAOB9Pk3Ug4ODlZSUpFWrVrmWOZ1OrVq1Sp07dy5320WLFik/P1/3339/he9z4MABHTt2TE2bNvW43m63Kzw83O0BAAAuHrEeAADv8/mo76NHj9a///1vzZs3T1u3btXw4cOVl5enwYMHS5IGDBig8ePHl9pu1qxZ6t27txo3buy2/OTJk/rLX/6i//73v9qzZ49WrVqlO++8U5dffrnS0tJ8vTsAAOA8xHoAALzL5/eo33vvvTpy5IgmTJigjIwMdejQQcuWLXMNOrNv3z4FBLh/X7Bt2zZ9/vnn+vjjj0vVFxgYqC1btmjevHnKzs5WXFycunfvrsmTJzO/KgAANYBYDwCAd9mMMaamG1HdcnNzFRERoZycnIvqGneqoEhtJiyXJP34ZJrCgi09Nh8AwMK8FZtQzJvHk3gPAPCGqsQmn3d9BwAAAAAAlUeiDgAAAACAhZCoAwAAAABgISTqAAAAAABYCIk6AAAAAAAWQqIOAAAAAICFkKgDAAAAAGAhJOoAAAAAAFgIiToAAAAAABZCog4AAAAAgIWQqAMAAAAAYCEk6gAAAAAAWAiJOgAAAAAAFkKiDgAAAACAhZCoAwAAAABgISTqAAAAAABYCIk6AAAAAAAWQqIOAAAAAICFkKgDAAAAAGAhJOoAAAAAAFgIiToAAAAAABZCog4AAAAAgIWQqAMAAAAAYCEk6gAAAAAAWAiJOgAAAAAAFkKiDgAAAACAhZCoAwAAAABgISTqAAAAAABYSLUk6tOnT1dCQoJCQkKUnJysDRs2lFl27ty5stlsbo+QkBC3MsYYTZgwQU2bNlVoaKhSU1O1fft2X+8GAAAoA7EeAADv8XmivnDhQo0ePVoTJ07Upk2b1L59e6WlpSkrK6vMbcLDw3X48GHXY+/evW7rn332Wb344ouaMWOG1q9fr/r16ystLU1nzpzx9e4AAIDzEOsBAPAunyfqU6dO1dChQzV48GC1adNGM2bMUFhYmGbPnl3mNjabTbGxsa5HTEyMa50xRtOmTdNjjz2mO++8U+3atdNrr72mQ4cOacmSJb7eHQAAcB5iPQAA3uXTRL2goEAbN25Uamrq2TcMCFBqaqrWrVtX5nYnT55U8+bNFR8frzvvvFM//PCDa93u3buVkZHhVmdERISSk5PLrDM/P1+5ubluDwAAcPGI9QAAeJ9PE/WjR4/K4XC4fUsuSTExMcrIyPC4TatWrTR79my99957ev311+V0OtWlSxcdOHBAklzbVaXOKVOmKCIiwvWIj4+/2F0DAAAi1gMA4AuWG/W9c+fOGjBggDp06KCUlBS9++67ioqK0syZMy+4zvHjxysnJ8f12L9/vxdbDAAAqoJYDwBA+XyaqDdp0kSBgYHKzMx0W56ZmanY2NhK1REUFKRrr71WO3bskCTXdlWp0263Kzw83O0BAAAuHrEeAADv82miHhwcrKSkJK1atcq1zOl0atWqVercuXOl6nA4HPruu+/UtGlTSVKLFi0UGxvrVmdubq7Wr19f6ToBAIB3EOsBAPC+er5+g9GjR2vgwIHq2LGjOnXqpGnTpikvL0+DBw+WJA0YMECXXnqppkyZIkl68skndf311+vyyy9Xdna2nnvuOe3du1cPPPCApOJRYkeNGqWnnnpKV1xxhVq0aKHHH39ccXFx6t27t693BwAAnIdYDwCAd/k8Ub/33nt15MgRTZgwQRkZGerQoYOWLVvmGiBm3759Cgg4e2H/559/1tChQ5WRkaGGDRsqKSlJX375pdq0aeMq8+ijjyovL0/Dhg1Tdna2brzxRi1btkwhISG+3h0AAHAeYj0AAN5lM8aYmm5EdcvNzVVERIRycnIu6h62UwVFajNhuSTpxyfTFBbs8+89AAC1lLdiE4p583gS7wEA3lCV2GS5Ud8BAAAAAKjLSNQBAAAAALAQ+m4BACzNGCNjJFPyXPrltTmvnLfer5LlZFQvIEDB9fjOGwAAeBeJOgDgohljVOBwqtBhVFDkPPtwOFRQZOR0Jduek265LT9/nXVFh9vVMqpBTTcDAADUMiTqAIByOZy/JN8Op/vPIqcKHU7l//LT6kk1AACAvyBRB4BazuksvqLt+OWqtuOX106n5DAlz42cRm6Jd0lSXuQgAwcAAKhOJOoA6gRjjAodRkVOp4qcRkUlzx3GlbhWvi4fNrSSnCUJ9nmJ99mE3Mjxy2srtBcAAACVR6IOy9p9NE9vfb1fB34+rWYNQ3VPx3i1aFK/ppuFGuZ0muJE21l8P7TDaVTkOC/59vDc4SRbBQAAgH8gUYclvfX1fo17Z4tsNpuMMbLZbJr5yU4906ed+naMr+nmwcscTlPc1drhVGFRcXJdcv9zocP88vNsYg4AAADUZiTqsJzdR/M07p0tcp475PMvP8e+s0XXJTRSAlfWLa2423VxV/Pie5zPJtwl9zyfm5iTewMAAABnkajDct76er9sNpvHG4FtNpsWfr1fY9NbX/T7mHPu3TXnLXc9dy07Z/0vS8u679dX9wMbFd+P7Jrmypx9XbLM08+z2xQ/N+dtc+6UWe77bM7b/7P7ff5xKV0WAAAAwIUiUYflHPj5tFuyfC5jjA78fPqC6i1yOJVzutD1OFPovJhmAgAAAIBPkKjDcpo1DC33inqzhqGVqsfpNDqRX6TcXxLzk/lFXO0FAAAAYHkk6rCcezrGa+YnOz2uM8bo3nIGk8vLL3JdMT9xpoiBxwAAAAD4HRJ1WE6LJvX1TJ92GlsyoJykQJtNRkbP9GnnNpBcfpFDOacLXVfNC4pIzAEAAAD4NxJ1WFLfjvG65tJw9Xjhc0nS4BsTdH9yczVrGKrjeQWuq+anCxw13FIAAAAA8C4SdVjWZY3CXM/vSYrXyfwifb33Z+4zBwAAAFCrkaij2jidRoXO4jm0i0rm13aenVO7ZJ7tIqdRkcOpE2eKXNsezD6tkKDAGmw9AADetftont76er8O/HxazRqG6p6O8Wpxzu1ddQHHAAA8I1G3IF8FrUKHU2cKHSp0mDKnPytLZUo7jXEl4YVOZ3HS7ZZ8cykcAABJeuvr/Rr3zhbZbDYZY2Sz2TTzk516pk879S1n0NTahGMAAGUjUbeYiwlaxhjlFzmVX+jUmSKHzhQ6lF9UnJyfKXQyAjoAABaw+2iexpUMmFryxfkvP8e+s0XXJTRyGzi1NuIYAED5SNQtpDJBK75R2C+Jt0NnipzK/yUJP1PkUEGRk/u3AQCwuLe+3i+bzSZPQdtms2nh1/s1Nr11DbSs+nAMAKB8JOoWUl7QkqQXVv2f7ul4WTW3CgAAeNOBn0+XeQuaMUYHfj5dzS2qfhwDACgfiXoNcDrN2S7pRQ5XV/XvD+bIWVbQkpSRm1+9DQUAAF7XrGFouVeTmzUMrYFWVS+OAQCUj0S9mu3IOqEjJwo8rmsYFiybPA/cZpMU1cDuy6YBAAAvWbfzWJnrrohuUOYX805jdGX0JeVuXxtwDAD4k84tG1f7ewZU+zvWcUXlDOjWtVVUmaOrG0m3tIr2SZsAAED1aRoRqgdvTpTNdnZZgE2y2aQHb05UbERIzTWuDIdzTuvNDfv04urtenPDPh3Oubiu6f54DACgOnFF3UJKgtbMT3e5eoIF2IqTdIIWAAC1R8qV0UpoXF/j3v1OkpR+Tax+fVWsJWP92m1ZevWzXa5efzZJ7285pAdvTlTKlRd+EcGfjgEAVDcSdYshaAEAUDfEhJ+N7X2T4hUSFFiDrfHscM5pvfpZ8QWEkl5/JT9nfrpLrWLCL+ozij8cAwCoCdXS9X369OlKSEhQSEiIkpOTtWHDhjLL/vvf/9ZNN92khg0bqmHDhkpNTS1VftCgQbLZbG6P9PR0X+9GtTk/aJGkAwCsjlhfO63ddkS2MtbZJK3ZllWdzQGAOsPnifrChQs1evRoTZw4UZs2bVL79u2VlpamrCzP/9jXrl2r++67T2vWrNG6desUHx+v7t276+DBg27l0tPTdfjwYdfjzTff9PWuAAAAD4j1tdeRk/nljp9z5CQz0gCAL/g8UZ86daqGDh2qwYMHq02bNpoxY4bCwsI0e/Zsj+Xnz5+vP/7xj+rQoYNat26t//znP3I6nVq1apVbObvdrtjYWNejYcOGvt4VAADgAbG+9opqYC/3ijoz0gCAb/g0US8oKNDGjRuVmpp69g0DApSamqp169ZVqo5Tp06psLBQjRo1clu+du1aRUdHq1WrVho+fLiOHWMKDwAAqhuxvnZjRhoAqBk+TdSPHj0qh8OhmJgYt+UxMTHKyMioVB1jx45VXFyc2weA9PR0vfbaa1q1apWeeeYZffLJJ+rRo4ccDofHOvLz85Wbm+v2AAAAF49YX7sxjRoA1AxLj/r+97//XQsWLNDatWsVEnI2EPTr18/1vG3btmrXrp1atmyptWvXqlu3bqXqmTJliiZNmlQtbQYAAJVHrLc+ZqQBgOrn0yvqTZo0UWBgoDIzM92WZ2ZmKjY2ttxtn3/+ef3973/Xxx9/rHbt2pVbNjExUU2aNNGOHTs8rh8/frxycnJcj/3791dtRwAAgEfE+rqBGWkAoHr5NFEPDg5WUlKS2+AwJYPFdO7cucztnn32WU2ePFnLli1Tx44dK3yfAwcO6NixY2ratKnH9Xa7XeHh4W4PeM/hnNN6c8M+vbh6u97csE+Hc07XdJMAANWEWA8AgPf5vOv76NGjNXDgQHXs2FGdOnXStGnTlJeXp8GDB0uSBgwYoEsvvVRTpkyRJD3zzDOaMGGC3njjDSUkJLjub2vQoIEaNGigkydPatKkSerTp49iY2O1c+dOPfroo7r88suVlpbm693BedZuy9Krn+2STcWDytgkvb/lkB68OVEpVzLADADUBcR6AAC8y+eJ+r333qsjR45owoQJysjIUIcOHbRs2TLXoDP79u1TQMDZC/uvvPKKCgoKdPfdd7vVM3HiRD3xxBMKDAzUli1bNG/ePGVnZysuLk7du3fX5MmTZbczRUh1OpxzWq9+tkvGyDUibMnPmZ/uUquYcLrGAUAdQKwHAMC7qmUwuZEjR2rkyJEe161du9bt9Z49e8qtKzQ0VMuXL/dSy3Ax1m474rqSfj6bpDXbsnRfp8uquVUAgJpArAcAwHt8eo86arcjJ/PLnVv1yMn86mwOAAAAANQKJOq4YFEN7LKVsc72y3oAAAAAQNWQqOOCdW0VVe4V9VtaMZgcAAAAAFQViTouWNOIUD14c6Js51xWD7BJNpv04M2JDCQHAAAAABegWgaTQ+2VcmW0EhrX17h3v5MkpV8Tq19fFUuSDgAAAAAXiEQdFy0m/GxS3jcpXiFBgTXYGgAAAADwb3R9BwAAAADAQkjUAQAAAACwELq+AxZ3OOe01m47oiMn8xXVwK6uraLUNCK0ppsFAAAAwEdI1AELW7stS69+tks2FU95Z5P0/pZDevDmRKVcyfR3AAAAQG1E13fAog7nnNarn+2SMZLTyO3nzE93KSPnTE03EQAAAIAPkKgDFrV22xHZylhnk7RmW1Z1NgcAAABANSFRByzqyMl8mTLWmV/WAwAAAKh9SNQBi4pqYC/3inpUA3t1NgcAAABANWEwOcCiuraK0vtbDnlcZyTd0orB5AAAAFA71fWZj0jUAYtqGhGqB29O1MxPiweUk6QAW3GS/uDNiYqNCKnR9gEAANRldT2R9CVmPiJRBywt5cpoJTSur3HvfidJSr8mVr++KtYrSTrBBQAA4MKQSPrOuTMflYzXVPJz5qe71ComvE5csCJRBywuJvzsP6K+SfEKCQq86DoJLgAAABeGRNK3SmY+8jSocsnMR/d1uqyaW1X9GEwOqGOYnx0AANQlh3NO680N+/Ti6u16c8M+Hc45fVH1MYWubzHzUTGuqKPOqetdvvmWEgAA1BW+6EXo60Syrn9WLZn5qKzPqnVl5iMSddQpdPnmW0oAAFA3+KqLui8TST6rMvNRCbq+o86gy3cx5mcHAAB1ga+6qHdtFVXuRY8LTST5rFqsZOYj2zknL8Am2Wx1a+YjEnXUGdxPVMxXwQUAAMBKfNWL0FeJJJ9Vz0q5MlpT7mrrep1+Taym9u1QZ3oVSHR9Rx1Cl+9izM8OAMCF8dW9w3X9nmRf8WUXdV9MoctnVXe+mPnIn5Co1yF1PQgwMMVZvpyfHQCA2shX9w5zT7Lv+PpeZ28nknxWxbno+l5HrN2WpTGLvtUHWw7pv7uO6YMthzRm0bf65P/qThcauny7Oz+41NUk3dtTtgAAah9f3TvMPcm+5W/3OvNZFeciUa8DCALF/O2fNXyPL7AAAJXhq3uHuSfZ9/zpXmc+q+JcdH2vA5g3+yy6fKOEr6ZsObf+unyrCQDUJr66d5h7kquHP93rzGdVlKiWK+rTp09XQkKCQkJClJycrA0bNpRbftGiRWrdurVCQkLUtm1bffTRR27rjTGaMGGCmjZtqtDQUKWmpmr79u2+3AW/RhBwR5dvSL69isGVetRFxHrUZr6a2pQpU+EJn1UhVUOivnDhQo0ePVoTJ07Upk2b1L59e6WlpSkry/MH1i+//FL33XefhgwZom+++Ua9e/dW79699f3337vKPPvss3rxxRc1Y8YMrV+/XvXr11daWprOnKkbXbiriiAAlOarL7C41QR1EbEetZ2v7h3mnmQAZfF51/epU6dq6NChGjx4sCRpxowZ+vDDDzV79myNGzeuVPkXXnhB6enp+stf/iJJmjx5slasWKGXX35ZM2bMkDFG06ZN02OPPaY777xTkvTaa68pJiZGS5YsUb9+/SrdtlMFRapXUHTB+3bqnG1PVbKeM4UOnSl0lFsm/5z1+RWUrYzOLRuXO+Jll5aNK2xTebzdXn+tNyP3jD7bfkTHThaocYNg3XRFlGLDL/4bUH87Dv6iYVhQubeENAwLuqC/i5VbM8utd8XWDPVNiq9yvbCm04WOSv//r4i36qkJtTnWl9Th6Xl5KvP/w5/+D9f1WNQwLFi/79JCs7/Y7fr/XjK16e+7tFDkBcYMX9ULd/72++svfxe+ZqXjUBOx3maMKeuLvItWUFCgsLAwvf322+rdu7dr+cCBA5Wdna333nuv1DaXXXaZRo8erVGjRrmWTZw4UUuWLNG3336rXbt2qWXLlvrmm2/UoUMHV5mUlBR16NBBL7zwQqk68/PzlZ9/9upYbm6u4uPjFT/qLQXYw7yyrwAAXAxn/intn3aPcnJyFB4eXtPNqTRiPQAAlVOVWO/Tru9Hjx6Vw+FQTEyM2/KYmBhlZGR43CYjI6Pc8iU/q1LnlClTFBER4XrEx3M1CwAAbyDWAwDgfXVi1Pfx48dr9OjRrtcl37Jv+J9u1X7V4v8yT+jnvMJqfU/41qKN+7Xs+ww5PfRNCbAVj9ZZl7o65xc69If5myRJM/r/SnYvjazqq3ozc8/o03NuWbj5iii3QVyqKiP3jP66+Dt56qtks0lT7mp7UfX72/Gt7fVGhduV2KS+V947NzdXTad5pao6yUqxXpLW7zpe7e9Zwld/H/6EY1DMKv8ra7peFOO8FbuQ9iYnNvLKe1cl1vs0UW/SpIkCAwOVmZnptjwzM1OxsbEet4mNjS23fMnPzMxMNW3a1K3Mud3jzmW322W3lx4wLSy4nsKCq/e7ipCgQIUEOav1PeFbP58qLHcgmJ9PFVp6GhBfsgcF+mTfvVlv88b19bvG3km0JCmhcX09eHOiZn66y3WvesnPB29OVHMvvpc/HF9f1ZuRe3ZAsaVbDin1qhivT39XmfaGBgV6LY4UVXM88hZivWdW+b/vq79nf8IxKOYP/9uro14U47wVq2x7ayLW+7Tre3BwsJKSkrRq1SrXMqfTqVWrVqlz584et+ncubNbeUlasWKFq3yLFi0UGxvrViY3N1fr168vs07AlxhVH+dLuTJaU/t20O3t4nR9YmPd3i5OU/t2UMqVjN7rDWu3Zemvi79zvV72fQbT39UgYj0AAN7n86+YR48erYEDB6pjx47q1KmTpk2bpry8PNfIsAMGDNCll16qKVOmSJL+/Oc/KyUlRf/4xz/Us2dPLViwQF9//bVeffVVSZLNZtOoUaP01FNP6YorrlCLFi30+OOPKy4uzm0QG6C6dG0VVe6o+kytUjfFRoTovk6X1XQzap1zp78rUXLbycxPd6lVTDjzzdYAYj0AAN7l80T93nvv1ZEjRzRhwgRlZGSoQ4cOWrZsmWuAmH379ikg4OyF/S5duuiNN97QY489pr/+9a+64oortGTJEl1zzTWuMo8++qjy8vI0bNgwZWdn68Ybb9SyZcsUEsKHM1S/phGh5XZ1JmkAvGfttiPlTn+3ZlsWX5DUAGI9AADeVS03bY0cOVIjR470uG7t2rWllvXt21d9+/Ytsz6bzaYnn3xSTz75pLeaCFyUlCuj1SomXGu2ZenIyXxFNbDrllbRJOmAlx05mV/umBBHTuaXsRa+RqwHAMB7/HPkGsCC6OoM+F7JmBBlXVFnTAgAAKrXuQO8Ltq43ycDvNZFPh1MDgAAb+raKqrcK+qMCQEAQPVhgFffIVEHAPiNkjEhbDYpwCa3n4wJAQBA9SlrgFdjigd4zcg5U/bGqBBd3wEAfoUxIYDy0Q0VQHVggFffIlEHAPgdxoQAPFu7LUuvfrbL9XrZ9xn63+8z9ODNiUq5kltDAHgPA7z6Fl3fAQA+c/6VvcM5p2uwNUDtRjdUANWpZIBXTxjg9eKRqAMAfIIBZoDqVdIN1ZOSbqgA4C0M8OpbJOoAAK/jyh5Q/eiGCqA6McCrb3GPOgDA6xhgBqh+Jd1Qy/q7oxsqAG9jgFffIVEHAHgdV/aA6te1VZTe33LI4zq6oQLwFX8b4NVfZsag6zsAwOsYYAaofnRDxfkY0BNw50/j53BFHQDgdVzZA2oG3VBRgqn6AHdljZ8jFY+f0yom3FL/K7miDgDwOq7sATWnpBvqQ7deofs6XcbfWx3EgJ5Aaf42MwZX1AEAPuGPV/b85b41ACgPA3oCpfnb+Dkk6gDgR/wtkfSnAWboJgqgtvC3hASoDv42MwZd3wHAT/jTACj+hm6iAGoTBvQESuvaKqrcL7CsNn4OiToA+AESSd/yt/vWAKA8/paQlGCUeviSv42fQ9d3APAD3G/oW3QTBWoXf7tNyNtKEpKZn+5yxY6Sn1ZMSCRuP0L18Kfxc0jUAcAPkEj6lr/dtwagbCR8xfwpIfG3abPg3/xl/BwSdQDwAySSvsW870DtQMLnzl8SEnqNAaVxjzoA+AF/vd/QX/jbfWsAPGO8Cf9ErzGgNK6oA4Af8Mf7Df2NP3UTBeAZCZ9/otcYUBqJOgC/UNcHBpJIJKuDv3QTBeAZCZ9/4vYjoDQSdQCWx8BAZ5FIAkDZSPj8E73GgNJI1AFYGgMDAQAqi4TPf9FrDHBHog7Aq7zdRZ2RYAEAVUHC57/oNQacRaIOwGt80UWdgYEAAFVFwgfA3/l0erbjx4+rf//+Cg8PV2RkpIYMGaKTJ0+WW/5Pf/qTWrVqpdDQUF122WV66KGHlJOT41bOZrOVeixYsMCXuwKgAmV1UTemuIt6Rs6ZsjcuR8nAQJ4wMBBQ84j1AAB4n0+vqPfv31+HDx/WihUrVFhYqMGDB2vYsGF64403PJY/dOiQDh06pOeff15t2rTR3r179Yc//EGHDh3S22+/7VZ2zpw5Sk9Pd72OjIz05a4AqICvuqgzMBBgbcR6AAC8z2eJ+tatW7Vs2TJ99dVX6tixoyTppZde0m233abnn39ecXFxpba55ppr9M4777het2zZUn/72990//33q6ioSPXqnW1uZGSkYmNjfdV8AFXkqy7qDAwEWBexHgAA3/BZ1/d169YpMjLSFbglKTU1VQEBAVq/fn2l68nJyVF4eLhb4JakESNGqEmTJurUqZNmz54tY8pKEQBUB192UU+5MlpT+3bQ7e3idH1iY93eLk5T+3aoc1Oz+dL5gwAezjldg62BvyDWAwDgGz67op6RkaHoaPcP0fXq1VOjRo2UkZFRqTqOHj2qyZMna9iwYW7Ln3zySd16660KCwvTxx9/rD/+8Y86efKkHnroIY/15OfnKz//7NW83NzcKu4NgIr4uos6AwP5DvPU40IR6wEA8I0qX1EfN26cxwFezn389NNPF92w3Nxc9ezZU23atNETTzzhtu7xxx/XDTfcoGuvvVZjx47Vo48+queee67MuqZMmaKIiAjXIz4+/qLbB8BdSRd1m00KsMntJ13UrctXgwDCvxHrAQCoWVW+oj5mzBgNGjSo3DKJiYmKjY1VVlaW2/KioiIdP368wvvNTpw4ofT0dF1yySVavHixgoKCyi2fnJysyZMnKz8/X3Z76e6148eP1+jRo12vc3NzCeCADzB3rf9hnnp4QqwHAKBmVTlRj4qKUlRUVIXlOnfurOzsbG3cuFFJSUmSpNWrV8vpdCo5ObnM7XJzc5WWlia73a6lS5cqJKTiD/ibN29Ww4YNPQZuSbLb7WWuA+BddFH3L8xTD0+I9QAA1Cyf3aN+1VVXKT09XUOHDtWMGTNUWFiokSNHql+/fq5RYA8ePKhu3brptddeU6dOnZSbm6vu3bvr1KlTev3115Wbm+u6xywqKkqBgYF6//33lZmZqeuvv14hISFasWKFnn76aT3yyCO+2hUAqLVKBgEs64o689SjPMR6AAB8w6fzqM+fP18jR45Ut27dFBAQoD59+ujFF190rS8sLNS2bdt06tQpSdKmTZtco8RefvnlbnXt3r1bCQkJCgoK0vTp0/Xwww/LGKPLL79cU6dO1dChQ325KwBQKzFPPS4WsR4AAO/zaaLeqFEjvfHGG2WuT0hIcJtqpWvXrhVOvZKenq709HSvtREA6jLmqcfFItYDAOB9Pk3UAQDWxyCAAAAA1kKiDgBgEEAAAAALIVGvZlEN7LLXC9SZQofyi5zKL3TIWX4PQAAA4Gc6t2xc000AfObHwzmu51/sPKr+yc3Vokn9GmwRKoPz5l9spqIbxWqh3NxcRUREKCcnR+Hh4TXaFmNMccL+S9J+ptCp/KLin2eKHCpy1LnTAwB+IzrcrpZRDbxSl5ViU23A8QR8462v92vcO1tcF5oCbTYZGT3Tp536doyv2cahTJw3a6hKbOKKeg2z2WwKCQpUSFCgFBpUan2Rw6kzRU7XFfgzhQ7X84Iip+re1ywAAACoCbuP5rkle5Lk+OXD6Nh3tui6hEZK4Aqt5XDe/BOJusXVCwxQg8AANbCXPlVOZ8nV+POuxP+SyDvoUw8AAAAveevr/bLZbPJ0pchms2nh1/s1Nr11DbQM5eG8+ScSdT8WEGBTaHCgQoMDPa4vKCruPp/vSt6LE/kCh7NS9Vf1ar0xRkVOw1V+AACAWujAz6fLnF7RGKMDP5+u5hahMjhv/olEvRYLrheg4HoBUjXOsFSSrBc6nCp0GBU5nCpyGhUUFf8s+mV5ocOpImfxcxJ7AAAA62vWMLTcK7PNGobWQKtQEc6bfyJRh1fZbDYFBdoUFBhQ6W1cybvTqaJfkvsCxy/PnU6dLnAqr6CIhB4AAKAG3dMxXjM/2elxnTFG9zIomSVx3vwTiTpqXL3AANULlELluQu/VJzM55wudD3OFFau+z4AAAC8o0WT+nqmTzuNfWeLbDabjDGun8/0aceAZBbFefNPJOrwC/UCA9S4gV2NG9glSWcKHco9J3EvZBo7AAAAn+vbMV7XJTTSwq/368DPp9WsYaju7RhPsmdxnDf/Q6IOv1QypV10ePEN+Cfzi4qT9lOFOnGmUAx4DwAA4BsJTeozSrgf4rz5FxJ11AoN7PXUwF5Pl0aGyuk0OnGmyHW1nfvbAQAAAPgTEnXUOgEBNkWEBSkiLEiSVHje/e353N8OAAAAwMJI1FHrBQUGqEkDu5qcc397zulCnS5wqORCe8nckudeeD97Fd6UWuapnJFvL9sbIzmNcf10muJ2n/uzZD0AAAAA/0Wijjqn5P722qqs5L04uT+77tyEXzrniwajc77AOLvcuC0/u0xllHUYo0KHU4VF5pfp9pyMHQAAAABUAok6UMvYbDYF2iTJVtNNKaXI4VSh42ziXugoTuaLX599XlhEUg8AAIC6i0QdQLWpFxigeoFSqCru0eBwuifuRU6jgl9+FjlKfhoVOc8+BwAAAGoDEnUAlhQYYFNgQOVvUzDGuCfvjl9en/Pc4Sy+il/yJYDDWbyc+/oBAABgJSTqAGoFm82moECbivP6yo9BUJLgl5Ws+3qQwAtlTHGvA6cxcjqLxxtwmLOvHcbI6Tw7LoHDaWRKyjjPjllQXMcvr52GWw4AAAAsgEQdQJ1WkuCjWNEvtxsUFJ3z85znhQ6nCorI5gEAAHyJRB0A4FI8jkCAwoLLLuN0Fg8IeG4iX/jL8/wiBgQEAAC4WCTqAIAqCQiwKaQS4wcUnpPIO03xTQSuafx+me6v5LVxvT57G8K5687dXjqnTAVtrez4A5W9xeH8+sKCa+9UjwAAoOaQqAMAfCIoMEBBgQGqb6/plgAAAPiXgJpuAAAAAAAAOItEHQAAAAAACyFRBwAAAADAQkjUAQAAAACwEJ8m6sePH1f//v0VHh6uyMhIDRkyRCdPnix3m65du8pms7k9/vCHP7iV2bdvn3r27KmwsDBFR0frL3/5i4qKiny5KwAAwANiPQAA3ufTUd/79++vw4cPa8WKFSosLNTgwYM1bNgwvfHGG+VuN3ToUD355JOu12FhYa7nDodDPXv2VGxsrL788ksdPnxYAwYMUFBQkJ5++mmf7QsAACiNWA8AgPfZjKnsLLNVs3XrVrVp00ZfffWVOnbsKElatmyZbrvtNh04cEBxcXEet+vatas6dOigadOmeVz/v//7v7r99tt16NAhxcTESJJmzJihsWPH6siRIwoODq6wbbm5uYqIiFBOTo7Cw8MvbAcBAPAif4xNxHoAACqvKrHJZ13f161bp8jISFfglqTU1FQFBARo/fr15W47f/58NWnSRNdcc43Gjx+vU6dOudXbtm1bV+CWpLS0NOXm5uqHH37wWF9+fr5yc3PdHgAA4OIQ6wEA8A2fdX3PyMhQdHS0+5vVq6dGjRopIyOjzO1++9vfqnnz5oqLi9OWLVs0duxYbdu2Te+++66r3nMDtyTX67LqnTJliiZNmnQxuwMAAM5DrAcAwDeqnKiPGzdOzzzzTLlltm7desENGjZsmOt527Zt1bRpU3Xr1k07d+5Uy5YtL6jO8ePHa/To0a7Xubm5io+Pv+A2AgBQmxHrAQCoWVVO1MeMGaNBgwaVWyYxMVGxsbHKyspyW15UVKTjx48rNja20u+XnJwsSdqxY4datmyp2NhYbdiwwa1MZmamJJVZr91ul91ur/R7AgBQlxHrAQCoWVVO1KOiohQVFVVhuc6dOys7O1sbN25UUlKSJGn16tVyOp2ugFwZmzdvliQ1bdrUVe/f/vY3ZWVlubrbrVixQuHh4WrTpk0V9wYAAJyPWA8AQM3y2WByV111ldLT0zV06FBt2LBBX3zxhUaOHKl+/fq5RoE9ePCgWrdu7frWfOfOnZo8ebI2btyoPXv2aOnSpRowYIBuvvlmtWvXTpLUvXt3tWnTRr/73e/07bffavny5Xrsscc0YsQIvkkHAKAaEesBAPANnyXqUvGIrq1bt1a3bt1022236cYbb9Srr77qWl9YWKht27a5RnoNDg7WypUr1b17d7Vu3VpjxoxRnz599P7777u2CQwM1AcffKDAwEB17txZ999/vwYMGOA2FysAAKgexHoAALzPZ/OoWxlzqwIArIbY5F0cTwCA1VhiHnUAAAAAAFB1JOoAAAAAAFgIiToAAAAAABZCog4AAAAAgIWQqAMAAAAAYCEk6gAAAAAAWAiJOgAAAAAAFkKiDgAAAACAhZCoAwAAAABgISTqAAAAAABYCIk6AAAAAAAWQqIOAAAAAICFkKgDAAAAAGAhJOoAAAAAAFgIiToAAAAAABZCog4AAAAAgIWQqAMAAAAAYCEk6gAAAAAAWAiJOgAAAAAAFkKiDgAAAACAhZCoAwAAAABgISTqAAAAAABYCIk6AAAAAAAWQqIOAAAAAICFkKgDAAAAAGAhJOoAAAAAAFgIiToAAAAAABbi00T9+PHj6t+/v8LDwxUZGakhQ4bo5MmTZZbfs2ePbDabx8eiRYtc5TytX7BggS93BQAAeECsBwDA++r5svL+/fvr8OHDWrFihQoLCzV48GANGzZMb7zxhsfy8fHxOnz4sNuyV199Vc8995x69OjhtnzOnDlKT093vY6MjPR6+wEAQPmI9QAAeJ/PEvWtW7dq2bJl+uqrr9SxY0dJ0ksvvaTbbrtNzz//vOLi4kptExgYqNjYWLdlixcv1j333KMGDRq4LY+MjCxVFgAAVB9iPQAAvuGzru/r1q1TZGSkK3BLUmpqqgICArR+/fpK1bFx40Zt3rxZQ4YMKbVuxIgRatKkiTp16qTZs2fLGOO1tgMAgIoR6wEA8A2fXVHPyMhQdHS0+5vVq6dGjRopIyOjUnXMmjVLV111lbp06eK2/Mknn9Stt96qsLAwffzxx/rjH/+okydP6qGHHvJYT35+vvLz812vc3Nzq7g3AADgfMR6AAB8o8pX1MeNG1fmIDAlj59++umiG3b69Gm98cYbHr9hf/zxx3XDDTfo2muv1dixY/Xoo4/queeeK7OuKVOmKCIiwvWIj4+/6PYBAFBbEesBAKhZVb6iPmbMGA0aNKjcMomJiYqNjVVWVpbb8qKiIh0/frxS95u9/fbbOnXqlAYMGFBh2eTkZE2ePFn5+fmy2+2l1o8fP16jR492vc7NzSWAAwBQBmI9AAA1q8qJelRUlKKioios17lzZ2VnZ2vjxo1KSkqSJK1evVpOp1PJyckVbj9r1iz16tWrUu+1efNmNWzY0GPgliS73V7mOgAA4I5YDwBAzfLZPepXXXWV0tPTNXToUM2YMUOFhYUaOXKk+vXr5xoF9uDBg+rWrZtee+01derUybXtjh079Omnn+qjjz4qVe/777+vzMxMXX/99QoJCdGKFSv09NNP65FHHvHVrgAAAA+I9QAA+IZP51GfP3++Ro4cqW7duikgIEB9+vTRiy++6FpfWFiobdu26dSpU27bzZ49W82aNVP37t1L1RkUFKTp06fr4YcfljFGl19+uaZOnaqhQ4f6clcAAIAHxHoAALzPZurgXCe5ubmKiIhQTk6OwsPDa7o5AAAQm7yM4wkAsJqqxCafzaMOAAAAAACqjkQdAAAAAAALIVEHAAAAAMBCSNQBAAAAALAQEnUAAAAAACyERB0AAAAAAAshUQcAAAAAwEJI1AEAAAAAsBASdQAAAAAALIREHQAAAAAACyFRBwAAAADAQkjUAQAAAACwEBJ1AAAAAAAshEQdAAAAAAALIVEHAAAAAMBCSNQBAAAAALAQEnUAAAAAACyERB0AAAAAAAshUQcAAAAAwEJI1AEAAAAAsBASdQAAAAAALIREHQAAAAAACyFRBwAAAADAQkjUAQAAAACwEBJ1AAAAAAAshEQdAAAAAAALIVEHAAAAAMBCSNQBAAAAALAQnyXqf/vb39SlSxeFhYUpMjKyUtsYYzRhwgQ1bdpUoaGhSk1N1fbt293KHD9+XP3791d4eLgiIyM1ZMgQnTx50gd7AAAAKkK8BwDA+3yWqBcUFKhv374aPnx4pbd59tln9eKLL2rGjBlav3696tevr7S0NJ05c8ZVpn///vrhhx+0YsUKffDBB/r00081bNgwX+wCAACoAPEeAADvsxljjC/fYO7cuRo1apSys7PLLWeMUVxcnMaMGaNHHnlEkpSTk6OYmBjNnTtX/fr109atW9WmTRt99dVX6tixoyRp2bJluu2223TgwAHFxcVVqk25ubmKiIhQTk6OwsPDL2r/AADwBn+PTVaL9/5+PAEAtU9VYlO9ampThXbv3q2MjAylpqa6lkVERCg5OVnr1q1Tv379tG7dOkVGRrqCtiSlpqYqICBA69ev11133eWx7vz8fOXn57te5+TkSCo+UAAAWEFJTPLx9+c1zlfxnlgPALC6qsR6yyTqGRkZkqSYmBi35TExMa51GRkZio6Odltfr149NWrUyFXGkylTpmjSpEmllsfHx19sswEA8KoTJ04oIiKippvhM76K98R6AIC/qEysr1KiPm7cOD3zzDPlltm6datat25dlWp9bvz48Ro9erTrtdPp1PHjx9W4cWPZbLaLqjs3N1fx8fHav39/retax775J/bNP7Fv/smb+2aM0YkTJyp9G5cv+WO892Wsl2rv73Ft3S+JffNX7Jt/Yt8qpyqxvkqJ+pgxYzRo0KByyyQmJlalSpfY2FhJUmZmppo2bepanpmZqQ4dOrjKZGVluW1XVFSk48ePu7b3xG63y263uy2r7Mi0lRUeHl7rfilLsG/+iX3zT+ybf/LWvlnlSro/xvvqiPVS7f09rq37JbFv/op980/sW8UqG+urlKhHRUUpKirqghpUkRYtWig2NlarVq1yBerc3FytX7/eNZJs586dlZ2drY0bNyopKUmStHr1ajmdTiUnJ/ukXQAA1DXEewAAapbPpmfbt2+fNm/erH379snhcGjz5s3avHmz2xyorVu31uLFiyVJNptNo0aN0lNPPaWlS5fqu+++04ABAxQXF6fevXtLkq666iqlp6dr6NCh2rBhg7744guNHDlS/fr1s0RXQQAA6hriPQAA3uezweQmTJigefPmuV5fe+21kqQ1a9aoa9eukqRt27a5RmWVpEcffVR5eXkaNmyYsrOzdeONN2rZsmUKCQlxlZk/f75Gjhypbt26KSAgQH369NGLL77oq92okN1u18SJE0t1t6sN2Df/xL75J/bNP9Xmfass4r1/q637JbFv/op980/sm/f5fB51AAAAAABQeT7r+g4AAAAAAKqORB0AAAAAAAshUQcAAAAAwEJI1AEAAAAAsBAS9UqYPn26EhISFBISouTkZG3YsKHc8osWLVLr1q0VEhKitm3b6qOPPqqmllbelClTdN111+mSSy5RdHS0evfurW3btpW7zdy5c2Wz2dwe547QaxVPPPFEqXa2bt263G384ZxJUkJCQql9s9lsGjFihMfyVj5nn376qe644w7FxcXJZrNpyZIlbuuNMZowYYKaNm2q0NBQpaamavv27RXWW9W/V18ob98KCws1duxYtW3bVvXr11dcXJwGDBigQ4cOlVvnhfxe+0JF523QoEGl2pmenl5hvVY/b5I8/u3ZbDY999xzZdZplfOGyiHeF7Ny7DhXbY33xHpifU3HDGK9NWI9iXoFFi5cqNGjR2vixInatGmT2rdvr7S0NGVlZXks/+WXX+q+++7TkCFD9M0336h3797q3bu3vv/++2puefk++eQTjRgxQv/973+1YsUKFRYWqnv37srLyyt3u/DwcB0+fNj12Lt3bzW1uGquvvpqt3Z+/vnnZZb1l3MmSV999ZXbfq1YsUKS1Ldv3zK3seo5y8vLU/v27TV9+nSP65999lm9+OKLmjFjhtavX6/69esrLS1NZ86cKbPOqv69+kp5+3bq1Clt2rRJjz/+uDZt2qR3331X27ZtU69evSqstyq/175S0XmTpPT0dLd2vvnmm+XW6Q/nTZLbPh0+fFizZ8+WzWZTnz59yq3XCucNFSPeu7Nq7DhfbYz3xHpifU3HDGK9RWK9Qbk6depkRowY4XrtcDhMXFycmTJlisfy99xzj+nZs6fbsuTkZPPggw/6tJ0XKysry0gyn3zySZll5syZYyIiIqqvURdo4sSJpn379pUu76/nzBhj/vznP5uWLVsap9Ppcb2/nDNJZvHixa7XTqfTxMbGmueee861LDs729jtdvPmm2+WWU9V/16rw/n75smGDRuMJLN3794yy1T197o6eNq3gQMHmjvvvLNK9fjrebvzzjvNrbfeWm4ZK543eEa8P8tfYkddiffEenf+GjOI9f553moy1nNFvRwFBQXauHGjUlNTXcsCAgKUmpqqdevWedxm3bp1buUlKS0trczyVpGTkyNJatSoUbnlTp48qebNmys+Pl533nmnfvjhh+poXpVt375dcXFxSkxMVP/+/bVv374yy/rrOSsoKNDrr7+u3//+97LZbGWW85dzdq7du3crIyPD7bxEREQoOTm5zPNyIX+vVpGTkyObzabIyMhyy1Xl97omrV27VtHR0WrVqpWGDx+uY8eOlVnWX89bZmamPvzwQw0ZMqTCsv5y3uoy4n1p/hI7anu8J9a789eYIRHr/fG81XSsJ1Evx9GjR+VwOBQTE+O2PCYmRhkZGR63ycjIqFJ5K3A6nRo1apRuuOEGXXPNNWWWa9WqlWbPnq333ntPr7/+upxOp7p06aIDBw5UY2srlpycrLlz52rZsmV65ZVXtHv3bt100006ceKEx/L+eM4kacmSJcrOztagQYPKLOMv5+x8Jce+KuflQv5ereDMmTMaO3as7rvvPoWHh5dZrqq/1zUlPT1dr732mlatWqVnnnlGn3zyiXr06CGHw+GxvL+et3nz5umSSy7Rb37zm3LL+ct5q+uI9+78JXbUhXhPrHfnrzGDWO+f562mY329i9oatcKIESP0/fffV3gvRefOndW5c2fX6y5duuiqq67SzJkzNXnyZF83s9J69Ojhet6uXTslJyerefPmeuuttyr1jZi/mDVrlnr06KG4uLgyy/jLOaurCgsLdc8998gYo1deeaXcsv7ye92vXz/X87Zt26pdu3Zq2bKl1q5dq27dutVgy7xr9uzZ6t+/f4UDNvnLeUPdQLz3P8R6/0es9181Heu5ol6OJk2aKDAwUJmZmW7LMzMzFRsb63Gb2NjYKpWvaSNHjtQHH3ygNWvWqFmzZlXaNigoSNdee6127Njho9Z5R2RkpK688soy2+lv50yS9u7dq5UrV+qBBx6o0nb+cs5Kjn1VzsuF/L3WpJLAvXfvXq1YsaLcb9g9qej32ioSExPVpEmTMtvpb+dNkj777DNt27atyn9/kv+ct7qGeF8+f4kdtS3eE+tL87eYQawv5m/nTbJGrCdRL0dwcLCSkpK0atUq1zKn06lVq1a5fXN5rs6dO7uVl6QVK1aUWb6mGGM0cuRILV68WKtXr1aLFi2qXIfD4dB3332npk2b+qCF3nPy5Ent3LmzzHb6yzk715w5cxQdHa2ePXtWaTt/OWctWrRQbGys23nJzc3V+vXryzwvF/L3WlNKAvf27du1cuVKNW7cuMp1VPR7bRUHDhzQsWPHymynP523ErNmzVJSUpLat29f5W395bzVNcT78vlL7Kht8Z5YX5o/xQxi/Vn+dN5KWCLWe314ulpmwYIFxm63m7lz55off/zRDBs2zERGRpqMjAxjjDG/+93vzLhx41zlv/jiC1OvXj3z/PPPm61bt5qJEyeaoKAg891339XULng0fPhwExERYdauXWsOHz7sepw6dcpV5vx9mzRpklm+fLnZuXOn2bhxo+nXr58JCQkxP/zwQ03sQpnGjBlj1q5da3bv3m2++OILk5qaapo0aWKysrKMMf57zko4HA5z2WWXmbFjx5Za50/n7MSJE+abb74x33zzjZFkpk6dar755hvXaKh///vfTWRkpHnvvffMli1bzJ133mlatGhhTp8+7arj1ltvNS+99JLrdUV/r1bYt4KCAtOrVy/TrFkzs3nzZre/v/z8/DL3raLfayvs24kTJ8wjjzxi1q1bZ3bv3m1WrlxpfvWrX5krrrjCnDlzpsx984fzViInJ8eEhYWZV155xWMdVj1vqBjx3j9ix7lqc7wn1hPrifXVv28lrBLrSdQr4aWXXjKXXXaZCQ4ONp06dTL//e9/XetSUlLMwIED3cq/9dZb5sorrzTBwcHm6quvNh9++GE1t7hikjw+5syZ4ypz/r6NGjXKdRxiYmLMbbfdZjZt2lT9ja/Avffea5o2bWqCg4PNpZdeau69916zY8cO13p/PWclli9fbiSZbdu2lVrnT+dszZo1Hn8HS9rvdDrN448/bmJiYozdbjfdunUrtc/Nmzc3EydOdFtW3t9rdSlv33bv3l3m39+aNWtcdZy/bxX9Xlth306dOmW6d+9uoqKiTFBQkGnevLkZOnRoqSDsj+etxMyZM01oaKjJzs72WIdVzxsqh3hfzMqx41y1Od4T68/yx5hBrPfP81bCKrHeZowxF3o1HgAAAAAAeBf3qAMAAAAAYCEk6gAAAAAAWAiJOgAAAAAAFkKiDgAAAACAhZCoAwAAAABgISTqAAAAAABYCIk6AAAAAAAWQqIOAAAAAICFkKgDAAAAAGAhJOoAAAAAAFgIiToAAAAAABZCog4AAAAAgIX8f1zVL5DkT3iUAAAAAElFTkSuQmCC\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "differenced_series = time_series.diff().dropna()\n", "\n", "# Plot ACF and PACF of differenced time series\n", "fig, axes = plt.subplots(1, 2, figsize=(12, 4))\n", "plot_acf(differenced_series, ax=axes[0])\n", "plot_pacf(differenced_series, ax=axes[1])\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "30ad68b1", "metadata": {}, "source": [ "ACF ve PACF grafiği, zaman serisi verisinin kendi kendine benzerliği veya otokorelasyon yapılarını analiz etmek için kullanılır. ACF grafiği, her gecikme (lag) değeri için otokorelasyonu gösterirken, PACF grafiği yalnızca belirli bir gecikme değeri için otokorelasyonu gösterir. Bu görselleştirmeler, zaman serisi verisiyle çalışırken model seçimi ve analizinde faydalı olabilir." ] }, { "cell_type": "code", "execution_count": 17, "id": "3324f6d8", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:58.201145800Z", "start_time": "2023-11-30T16:28:57.938819Z" } }, "outputs": [ { "data": { "text/plain": "Time Period\n2013-07-01 1400000.0\n2013-10-01 2370000.0\n2014-01-01 3420000.0\n2014-04-01 4700000.0\n2014-07-01 1860000.0\n2014-10-01 2660000.0\n2015-01-01 3830000.0\n2015-04-01 5140000.0\n2015-07-01 2460000.0\n2015-10-01 3940000.0\n2016-01-01 4820000.0\n2016-04-01 6870000.0\n2016-07-01 2190000.0\n2016-10-01 3380000.0\n2017-01-01 5810000.0\n2017-04-01 5270000.0\n2017-07-01 4680000.0\n2017-10-01 4980000.0\n2018-01-01 6620000.0\n2018-04-01 8260000.0\n2018-07-01 5450000.0\n2018-10-01 6070000.0\n2019-01-01 8840000.0\n2019-04-01 9600000.0\n2019-07-01 2700000.0\n2019-10-01 6770000.0\n2020-01-01 8760000.0\n2020-04-01 15770000.0\n2020-07-01 10090000.0\n2020-10-01 2200000.0\n2021-01-01 8510000.0\n2021-04-01 3980000.0\n2021-07-01 1540000.0\n2021-10-01 4380000.0\n2022-01-01 8280000.0\n2022-04-01 -200000.0\n2022-07-01 -970000.0\n2022-10-01 2420000.0\n2023-01-01 7660000.0\n2023-04-01 1750000.0\n2023-07-01 5890000.0\nName: Subscribers, dtype: float64" }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "differenced_series" ] }, { "cell_type": "markdown", "id": "5b128cf2", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": 18, "id": "56fca13d", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:58.646871900Z", "start_time": "2023-11-30T16:28:57.945351800Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Cihat Emre Karataş\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:471: ValueWarning:\n", "\n", "No frequency information was provided, so inferred frequency QS-OCT will be used.\n", "\n", "C:\\Users\\Cihat Emre Karataş\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:471: ValueWarning:\n", "\n", "No frequency information was provided, so inferred frequency QS-OCT will be used.\n", "\n", "C:\\Users\\Cihat Emre Karataş\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:471: ValueWarning:\n", "\n", "No frequency information was provided, so inferred frequency QS-OCT will be used.\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " SARIMAX Results \n", "==============================================================================\n", "Dep. Variable: Subscribers No. Observations: 42\n", "Model: ARIMA(1, 1, 2) Log Likelihood -672.893\n", "Date: Thu, 30 Nov 2023 AIC 1353.786\n", "Time: 19:28:58 BIC 1360.641\n", "Sample: 04-01-2013 HQIC 1356.282\n", " - 07-01-2023 \n", "Covariance Type: opg \n", "==============================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "------------------------------------------------------------------------------\n", "ar.L1 0.9998 0.010 96.903 0.000 0.980 1.020\n", "ma.L1 -0.9625 0.218 -4.407 0.000 -1.391 -0.534\n", "ma.L2 -0.0300 0.113 -0.266 0.790 -0.251 0.191\n", "sigma2 1.165e+13 1.49e-14 7.82e+26 0.000 1.17e+13 1.17e+13\n", "===================================================================================\n", "Ljung-Box (L1) (Q): 3.31 Jarque-Bera (JB): 3.87\n", "Prob(Q): 0.07 Prob(JB): 0.14\n", "Heteroskedasticity (H): 6.31 Skew: 0.49\n", "Prob(H) (two-sided): 0.00 Kurtosis: 4.14\n", "===================================================================================\n", "\n", "Warnings:\n", "[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n", "[2] Covariance matrix is singular or near-singular, with condition number 1.89e+42. Standard errors may be unstable.\n" ] } ], "source": [ "p, d, q = 1, 1, 2\n", "model = ARIMA(time_series, order=(p, d, q))\n", "results = model.fit()\n", "print(results.summary())" ] }, { "cell_type": "code", "execution_count": 19, "id": "066d4ded", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:58.679874900Z", "start_time": "2023-11-30T16:28:58.183870100Z" } }, "outputs": [ { "data": { "text/plain": "2023-10-01 243339993\n2024-01-01 248256768\n2024-04-01 253172699\n2024-07-01 258087787\n2024-10-01 263002031\n2025-01-01 267915431\n2025-04-01 272827989\n2025-07-01 277739704\n2025-10-01 282650576\n2026-01-01 287560605\n2026-04-01 292469792\n2026-07-01 297378136\n2026-10-01 302285638\n2027-01-01 307192298\n2027-04-01 312098116\n2027-07-01 317003092\n2027-10-01 321907227\n2028-01-01 326810520\n2028-04-01 331712971\nFreq: QS-OCT, Name: predicted_mean, dtype: int32" }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "future_steps = 20\n", "predictions = results.predict(len(time_series), len(time_series) + future_steps - 2)\n", "predictions = predictions.astype(int)\n", "predictions" ] }, { "cell_type": "code", "execution_count": 20, "id": "96fae9ef", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:58.682887600Z", "start_time": "2023-11-30T16:28:58.210153900Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "data": [ { "mode": "lines", "name": "Predictions", "x": [ "2013-04-01T00:00:00", "2013-07-01T00:00:00", "2013-10-01T00:00:00", "2014-01-01T00:00:00", "2014-04-01T00:00:00", "2014-07-01T00:00:00", "2014-10-01T00:00:00", "2015-01-01T00:00:00", "2015-04-01T00:00:00", "2015-07-01T00:00:00", "2015-10-01T00:00:00", "2016-01-01T00:00:00", "2016-04-01T00:00:00", "2016-07-01T00:00:00", "2016-10-01T00:00:00", "2017-01-01T00:00:00", "2017-04-01T00:00:00", "2017-07-01T00:00:00", "2017-10-01T00:00:00", "2018-01-01T00:00:00", "2018-04-01T00:00:00", "2018-07-01T00:00:00", "2018-10-01T00:00:00", "2019-01-01T00:00:00", "2019-04-01T00:00:00", "2019-07-01T00:00:00", "2019-10-01T00:00:00", "2020-01-01T00:00:00", "2020-04-01T00:00:00", "2020-07-01T00:00:00", "2020-10-01T00:00:00", "2021-01-01T00:00:00", "2021-04-01T00:00:00", "2021-07-01T00:00:00", "2021-10-01T00:00:00", "2022-01-01T00:00:00", "2022-04-01T00:00:00", "2022-07-01T00:00:00", "2022-10-01T00:00:00", "2023-01-01T00:00:00", "2023-04-01T00:00:00", "2023-07-01T00:00:00", "2023-10-01T00:00:00", "2024-01-01T00:00:00", "2024-04-01T00:00:00", "2024-07-01T00:00:00", "2024-10-01T00:00:00", "2025-01-01T00:00:00", "2025-04-01T00:00:00", "2025-07-01T00:00:00", "2025-10-01T00:00:00", "2026-01-01T00:00:00", "2026-04-01T00:00:00", "2026-07-01T00:00:00", "2026-10-01T00:00:00", "2027-01-01T00:00:00", "2027-04-01T00:00:00", "2027-07-01T00:00:00", "2027-10-01T00:00:00", "2028-01-01T00:00:00", "2028-04-01T00:00:00" ], "y": [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 2.43339993E8, 2.48256768E8, 2.53172699E8, 2.58087787E8, 2.63002031E8, 2.67915431E8, 2.72827989E8, 2.77739704E8, 2.82650576E8, 2.87560605E8, 2.92469792E8, 2.97378136E8, 3.02285638E8, 3.07192298E8, 3.12098116E8, 3.17003092E8, 3.21907227E8, 3.2681052E8, 3.31712971E8 ], "type": "scatter" }, { "mode": "lines", "name": "Original Data", "x": [ "2013-04-01T00:00:00", "2013-07-01T00:00:00", "2013-10-01T00:00:00", "2014-01-01T00:00:00", "2014-04-01T00:00:00", "2014-07-01T00:00:00", "2014-10-01T00:00:00", "2015-01-01T00:00:00", "2015-04-01T00:00:00", "2015-07-01T00:00:00", "2015-10-01T00:00:00", "2016-01-01T00:00:00", "2016-04-01T00:00:00", "2016-07-01T00:00:00", "2016-10-01T00:00:00", "2017-01-01T00:00:00", "2017-04-01T00:00:00", "2017-07-01T00:00:00", "2017-10-01T00:00:00", "2018-01-01T00:00:00", "2018-04-01T00:00:00", "2018-07-01T00:00:00", "2018-10-01T00:00:00", "2019-01-01T00:00:00", "2019-04-01T00:00:00", "2019-07-01T00:00:00", "2019-10-01T00:00:00", "2020-01-01T00:00:00", "2020-04-01T00:00:00", "2020-07-01T00:00:00", "2020-10-01T00:00:00", "2021-01-01T00:00:00", "2021-04-01T00:00:00", "2021-07-01T00:00:00", "2021-10-01T00:00:00", "2022-01-01T00:00:00", "2022-04-01T00:00:00", "2022-07-01T00:00:00", "2022-10-01T00:00:00", "2023-01-01T00:00:00", "2023-04-01T00:00:00", "2023-07-01T00:00:00", "2023-10-01T00:00:00", "2024-01-01T00:00:00", "2024-04-01T00:00:00", "2024-07-01T00:00:00", "2024-10-01T00:00:00", "2025-01-01T00:00:00", "2025-04-01T00:00:00", "2025-07-01T00:00:00", "2025-10-01T00:00:00", "2026-01-01T00:00:00", "2026-04-01T00:00:00", "2026-07-01T00:00:00", "2026-10-01T00:00:00", "2027-01-01T00:00:00", "2027-04-01T00:00:00", "2027-07-01T00:00:00", "2027-10-01T00:00:00", "2028-01-01T00:00:00", "2028-04-01T00:00:00" ], "y": [ 3.424E7, 3.564E7, 3.801E7, 4.143E7, 4.613E7, 4.799E7, 5.065E7, 5.448E7, 5.962E7, 6.208E7, 6.602E7, 7.084E7, 7.771E7, 7.99E7, 8.328E7, 8.909E7, 9.436E7, 9.904E7, 1.0402E8, 1.1064E8, 1.189E8, 1.2435E8, 1.3042E8, 1.3926E8, 1.4886E8, 1.5156E8, 1.5833E8, 1.6709E8, 1.8286E8, 1.9295E8, 1.9515E8, 2.0366E8, 2.0764E8, 2.0918E8, 2.1356E8, 2.2184E8, 2.2164E8, 2.2067E8, 2.2309E8, 2.3075E8, 2.325E8, 2.3839E8, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ], "type": "scatter" } ], "layout": { "template": { "data": { "histogram2dcontour": [ { "type": "histogram2dcontour", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "choropleth": [ { "type": "choropleth", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "histogram2d": [ { "type": "histogram2d", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "heatmap": [ { "type": "heatmap", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "heatmapgl": [ { "type": "heatmapgl", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "contourcarpet": [ { "type": "contourcarpet", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "contour": [ { "type": "contour", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "surface": [ { "type": "surface", "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] } ], "mesh3d": [ { "type": "mesh3d", "colorbar": { "outlinewidth": 0, "ticks": "" } } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "parcoords": [ { "type": "parcoords", "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterpolargl": [ { "type": "scatterpolargl", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "scattergeo": [ { "type": "scattergeo", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterpolar": [ { "type": "scatterpolar", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "scattergl": [ { "type": "scattergl", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatter3d": [ { "type": "scatter3d", "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scattermapbox": [ { "type": "scattermapbox", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scatterternary": [ { "type": "scatterternary", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "scattercarpet": [ { "type": "scattercarpet", "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } } } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "#C8D4E3", "linecolor": "#C8D4E3", "minorgridcolor": "#C8D4E3", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "#C8D4E3", "linecolor": "#C8D4E3", "minorgridcolor": "#C8D4E3", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ], "barpolar": [ { "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "pie": [ { "automargin": true, "type": "pie" } ] }, "layout": { "autotypenumbers": "strict", "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "hovermode": "closest", "hoverlabel": { "align": "left" }, "paper_bgcolor": "white", "plot_bgcolor": "white", "polar": { "bgcolor": "white", "angularaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "" }, "radialaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "" } }, "ternary": { "bgcolor": "white", "aaxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" }, "caxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" } }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ] }, "xaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#EBF0F8", "automargin": true, "zerolinewidth": 2 }, "yaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#EBF0F8", "automargin": true, "zerolinewidth": 2 }, "scene": { "xaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 }, "yaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 }, "zaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8", "gridwidth": 2 } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "geo": { "bgcolor": "white", "landcolor": "white", "subunitcolor": "#C8D4E3", "showland": true, "showlakes": true, "lakecolor": "white" }, "title": { "x": 0.05 }, "mapbox": { "style": "light" } } }, "legend": { "x": 0.1, "y": 0.9 }, "title": { "text": "Netflix Quarterly Subscription Predictions" }, "xaxis": { "title": { "text": "Time Period" } }, "yaxis": { "title": { "text": "Subscribers" } }, "showlegend": true }, "config": { "plotlyServerURL": "https://plot.ly" } }, "text/html": "
" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create a DataFrame with the original data and predictions\n", "forecast = pd.DataFrame({'Original': time_series, 'Predictions': predictions})\n", "\n", "# Plot the original data and predictions\n", "fig = go.Figure()\n", "\n", "fig.add_trace(go.Scatter(x=forecast.index, y=forecast['Predictions'],\n", " mode='lines', name='Predictions'))\n", "\n", "fig.add_trace(go.Scatter(x=forecast.index, y=forecast['Original'],\n", " mode='lines', name='Original Data'))\n", "\n", "fig.update_layout(title='Netflix Quarterly Subscription Predictions',\n", " xaxis_title='Time Period',\n", " yaxis_title='Subscribers',\n", " legend=dict(x=0.1, y=0.9),\n", " showlegend=True)\n", "\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 21, "id": "ba263cfe", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:58.684888800Z", "start_time": "2023-11-30T16:28:58.232784800Z" } }, "outputs": [ { "data": { "text/plain": " Original Predictions\n2013-04-01 34240000.0 NaN\n2013-07-01 35640000.0 NaN\n2013-10-01 38010000.0 NaN\n2014-01-01 41430000.0 NaN\n2014-04-01 46130000.0 NaN\n... ... ...\n2027-04-01 NaN 312098116.0\n2027-07-01 NaN 317003092.0\n2027-10-01 NaN 321907227.0\n2028-01-01 NaN 326810520.0\n2028-04-01 NaN 331712971.0\n\n[61 rows x 2 columns]", "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
OriginalPredictions
2013-04-0134240000.0NaN
2013-07-0135640000.0NaN
2013-10-0138010000.0NaN
2014-01-0141430000.0NaN
2014-04-0146130000.0NaN
.........
2027-04-01NaN312098116.0
2027-07-01NaN317003092.0
2027-10-01NaN321907227.0
2028-01-01NaN326810520.0
2028-04-01NaN331712971.0
\n

61 rows × 2 columns

\n
" }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "forecast" ] }, { "cell_type": "code", "execution_count": 22, "id": "56dfbf7c", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:58.687887700Z", "start_time": "2023-11-30T16:28:58.247910400Z" } }, "outputs": [], "source": [ "with open('arima_model.pkl', 'wb') as model_file:\n", " pickle.dump(results, model_file)" ] }, { "cell_type": "code", "execution_count": 22, "id": "2e6d012b", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:58.687887700Z", "start_time": "2023-11-30T16:28:58.262859400Z" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 22, "id": "6fb8ab09", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:58.687887700Z", "start_time": "2023-11-30T16:28:58.265875700Z" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 22, "id": "580627c7", "metadata": { "ExecuteTime": { "end_time": "2023-11-30T16:28:58.688891700Z", "start_time": "2023-11-30T16:28:58.270952900Z" } }, "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.3" } }, "nbformat": 4, "nbformat_minor": 5 }