{
"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 Time Period | \n Subscribers | \n Quarterly Growth Rate | \n
\n \n \n \n 0 | \n 2013-04-01 | \n 34240000 | \n NaN | \n
\n \n 1 | \n 2013-07-01 | \n 35640000 | \n 4.088785 | \n
\n \n 2 | \n 2013-10-01 | \n 38010000 | \n 6.649832 | \n
\n \n 3 | \n 2014-01-01 | \n 41430000 | \n 8.997632 | \n
\n \n 4 | \n 2014-04-01 | \n 46130000 | \n 11.344436 | \n
\n \n
\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 Time Period | \n Subscribers | \n Quarterly Growth Rate | \n Bar Color | \n
\n \n \n \n 0 | \n 2013-04-01 | \n 34240000 | \n NaN | \n red | \n
\n \n 1 | \n 2013-07-01 | \n 35640000 | \n 4.088785 | \n green | \n
\n \n 2 | \n 2013-10-01 | \n 38010000 | \n 6.649832 | \n green | \n
\n \n 3 | \n 2014-01-01 | \n 41430000 | \n 8.997632 | \n green | \n
\n \n 4 | \n 2014-04-01 | \n 46130000 | \n 11.344436 | \n green | \n
\n \n 5 | \n 2014-07-01 | \n 47990000 | \n 4.032083 | \n green | \n
\n \n 6 | \n 2014-10-01 | \n 50650000 | \n 5.542821 | \n green | \n
\n \n 7 | \n 2015-01-01 | \n 54480000 | \n 7.561698 | \n green | \n
\n \n 8 | \n 2015-04-01 | \n 59620000 | \n 9.434655 | \n green | \n
\n \n 9 | \n 2015-07-01 | \n 62080000 | \n 4.126132 | \n green | \n
\n \n 10 | \n 2015-10-01 | \n 66020000 | \n 6.346649 | \n green | \n
\n \n 11 | \n 2016-01-01 | \n 70840000 | \n 7.300818 | \n green | \n
\n \n 12 | \n 2016-04-01 | \n 77710000 | \n 9.697911 | \n green | \n
\n \n 13 | \n 2016-07-01 | \n 79900000 | \n 2.818170 | \n green | \n
\n \n 14 | \n 2016-10-01 | \n 83280000 | \n 4.230288 | \n green | \n
\n \n 15 | \n 2017-01-01 | \n 89090000 | \n 6.976465 | \n green | \n
\n \n 16 | \n 2017-04-01 | \n 94360000 | \n 5.915366 | \n green | \n
\n \n 17 | \n 2017-07-01 | \n 99040000 | \n 4.959729 | \n green | \n
\n \n 18 | \n 2017-10-01 | \n 104020000 | \n 5.028271 | \n green | \n
\n \n 19 | \n 2018-01-01 | \n 110640000 | \n 6.364161 | \n green | \n
\n \n 20 | \n 2018-04-01 | \n 118900000 | \n 7.465654 | \n green | \n
\n \n 21 | \n 2018-07-01 | \n 124350000 | \n 4.583684 | \n green | \n
\n \n 22 | \n 2018-10-01 | \n 130420000 | \n 4.881383 | \n green | \n
\n \n 23 | \n 2019-01-01 | \n 139260000 | \n 6.778102 | \n green | \n
\n \n 24 | \n 2019-04-01 | \n 148860000 | \n 6.893580 | \n green | \n
\n \n 25 | \n 2019-07-01 | \n 151560000 | \n 1.813785 | \n green | \n
\n \n 26 | \n 2019-10-01 | \n 158330000 | \n 4.466878 | \n green | \n
\n \n 27 | \n 2020-01-01 | \n 167090000 | \n 5.532748 | \n green | \n
\n \n 28 | \n 2020-04-01 | \n 182860000 | \n 9.438027 | \n green | \n
\n \n 29 | \n 2020-07-01 | \n 192950000 | \n 5.517883 | \n green | \n
\n \n 30 | \n 2020-10-01 | \n 195150000 | \n 1.140192 | \n green | \n
\n \n 31 | \n 2021-01-01 | \n 203660000 | \n 4.360748 | \n green | \n
\n \n 32 | \n 2021-04-01 | \n 207640000 | \n 1.954237 | \n green | \n
\n \n 33 | \n 2021-07-01 | \n 209180000 | \n 0.741668 | \n green | \n
\n \n 34 | \n 2021-10-01 | \n 213560000 | \n 2.093890 | \n green | \n
\n \n 35 | \n 2022-01-01 | \n 221840000 | \n 3.877131 | \n green | \n
\n \n 36 | \n 2022-04-01 | \n 221640000 | \n -0.090155 | \n red | \n
\n \n 37 | \n 2022-07-01 | \n 220670000 | \n -0.437647 | \n red | \n
\n \n 38 | \n 2022-10-01 | \n 223090000 | \n 1.096660 | \n green | \n
\n \n 39 | \n 2023-01-01 | \n 230750000 | \n 3.433592 | \n green | \n
\n \n 40 | \n 2023-04-01 | \n 232500000 | \n 0.758397 | \n green | \n
\n \n 41 | \n 2023-07-01 | \n 238390000 | \n 2.533333 | \n green | \n
\n \n
\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 Time Period | \n Subscribers | \n Quarterly Growth Rate | \n Bar Color | \n Year | \n
\n \n \n \n 0 | \n 2013-04-01 | \n 34240000 | \n NaN | \n red | \n 2013 | \n
\n \n 1 | \n 2013-07-01 | \n 35640000 | \n 4.088785 | \n green | \n 2013 | \n
\n \n 2 | \n 2013-10-01 | \n 38010000 | \n 6.649832 | \n green | \n 2013 | \n
\n \n 3 | \n 2014-01-01 | \n 41430000 | \n 8.997632 | \n green | \n 2014 | \n
\n \n 4 | \n 2014-04-01 | \n 46130000 | \n 11.344436 | \n green | \n 2014 | \n
\n \n 5 | \n 2014-07-01 | \n 47990000 | \n 4.032083 | \n green | \n 2014 | \n
\n \n 6 | \n 2014-10-01 | \n 50650000 | \n 5.542821 | \n green | \n 2014 | \n
\n \n 7 | \n 2015-01-01 | \n 54480000 | \n 7.561698 | \n green | \n 2015 | \n
\n \n 8 | \n 2015-04-01 | \n 59620000 | \n 9.434655 | \n green | \n 2015 | \n
\n \n 9 | \n 2015-07-01 | \n 62080000 | \n 4.126132 | \n green | \n 2015 | \n
\n \n 10 | \n 2015-10-01 | \n 66020000 | \n 6.346649 | \n green | \n 2015 | \n
\n \n 11 | \n 2016-01-01 | \n 70840000 | \n 7.300818 | \n green | \n 2016 | \n
\n \n 12 | \n 2016-04-01 | \n 77710000 | \n 9.697911 | \n green | \n 2016 | \n
\n \n 13 | \n 2016-07-01 | \n 79900000 | \n 2.818170 | \n green | \n 2016 | \n
\n \n 14 | \n 2016-10-01 | \n 83280000 | \n 4.230288 | \n green | \n 2016 | \n
\n \n 15 | \n 2017-01-01 | \n 89090000 | \n 6.976465 | \n green | \n 2017 | \n
\n \n 16 | \n 2017-04-01 | \n 94360000 | \n 5.915366 | \n green | \n 2017 | \n
\n \n 17 | \n 2017-07-01 | \n 99040000 | \n 4.959729 | \n green | \n 2017 | \n
\n \n 18 | \n 2017-10-01 | \n 104020000 | \n 5.028271 | \n green | \n 2017 | \n
\n \n 19 | \n 2018-01-01 | \n 110640000 | \n 6.364161 | \n green | \n 2018 | \n
\n \n 20 | \n 2018-04-01 | \n 118900000 | \n 7.465654 | \n green | \n 2018 | \n
\n \n 21 | \n 2018-07-01 | \n 124350000 | \n 4.583684 | \n green | \n 2018 | \n
\n \n 22 | \n 2018-10-01 | \n 130420000 | \n 4.881383 | \n green | \n 2018 | \n
\n \n 23 | \n 2019-01-01 | \n 139260000 | \n 6.778102 | \n green | \n 2019 | \n
\n \n 24 | \n 2019-04-01 | \n 148860000 | \n 6.893580 | \n green | \n 2019 | \n
\n \n 25 | \n 2019-07-01 | \n 151560000 | \n 1.813785 | \n green | \n 2019 | \n
\n \n 26 | \n 2019-10-01 | \n 158330000 | \n 4.466878 | \n green | \n 2019 | \n
\n \n 27 | \n 2020-01-01 | \n 167090000 | \n 5.532748 | \n green | \n 2020 | \n
\n \n 28 | \n 2020-04-01 | \n 182860000 | \n 9.438027 | \n green | \n 2020 | \n
\n \n 29 | \n 2020-07-01 | \n 192950000 | \n 5.517883 | \n green | \n 2020 | \n
\n \n 30 | \n 2020-10-01 | \n 195150000 | \n 1.140192 | \n green | \n 2020 | \n
\n \n 31 | \n 2021-01-01 | \n 203660000 | \n 4.360748 | \n green | \n 2021 | \n
\n \n 32 | \n 2021-04-01 | \n 207640000 | \n 1.954237 | \n green | \n 2021 | \n
\n \n 33 | \n 2021-07-01 | \n 209180000 | \n 0.741668 | \n green | \n 2021 | \n
\n \n 34 | \n 2021-10-01 | \n 213560000 | \n 2.093890 | \n green | \n 2021 | \n
\n \n 35 | \n 2022-01-01 | \n 221840000 | \n 3.877131 | \n green | \n 2022 | \n
\n \n 36 | \n 2022-04-01 | \n 221640000 | \n -0.090155 | \n red | \n 2022 | \n
\n \n 37 | \n 2022-07-01 | \n 220670000 | \n -0.437647 | \n red | \n 2022 | \n
\n \n 38 | \n 2022-10-01 | \n 223090000 | \n 1.096660 | \n green | \n 2022 | \n
\n \n 39 | \n 2023-01-01 | \n 230750000 | \n 3.433592 | \n green | \n 2023 | \n
\n \n 40 | \n 2023-04-01 | \n 232500000 | \n 0.758397 | \n green | \n 2023 | \n
\n \n 41 | \n 2023-07-01 | \n 238390000 | \n 2.533333 | \n green | \n 2023 | \n
\n \n
\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/MlFRUcZms7lNA3LixAnz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x19sswEA8KoTJ04oIiKippvhM76K98R6AIC/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 Original | \n Predictions | \n
\n \n \n \n 2013-04-01 | \n 34240000.0 | \n NaN | \n
\n \n 2013-07-01 | \n 35640000.0 | \n NaN | \n
\n \n 2013-10-01 | \n 38010000.0 | \n NaN | \n
\n \n 2014-01-01 | \n 41430000.0 | \n NaN | \n
\n \n 2014-04-01 | \n 46130000.0 | \n NaN | \n
\n \n ... | \n ... | \n ... | \n
\n \n 2027-04-01 | \n NaN | \n 312098116.0 | \n
\n \n 2027-07-01 | \n NaN | \n 317003092.0 | \n
\n \n 2027-10-01 | \n NaN | \n 321907227.0 | \n
\n \n 2028-01-01 | \n NaN | \n 326810520.0 | \n
\n \n 2028-04-01 | \n NaN | \n 331712971.0 | \n
\n \n
\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
}