{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"### [document](https://www.statsmodels.org/stable/generated/statsmodels.tsa.deterministic.CalendarFourier.html)","metadata":{}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom statsmodels.tsa.deterministic import (CalendarFourier,\n                                           CalendarSeasonality,\n                                           CalendarTimeTrend,\n                                           DeterministicProcess)","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2021-06-26T11:11:52.152368Z","iopub.execute_input":"2021-06-26T11:11:52.152704Z","iopub.status.idle":"2021-06-26T11:11:52.424500Z","shell.execute_reply.started":"2021-06-26T11:11:52.152676Z","shell.execute_reply":"2021-06-26T11:11:52.423672Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_train = pd.read_csv('../input/mlb-player-digital-engagement-forecasting/train.csv', usecols=['date'])\ndf_train.head()","metadata":{"execution":{"iopub.status.busy":"2021-06-26T11:15:55.113415Z","iopub.execute_input":"2021-06-26T11:15:55.113960Z","iopub.status.idle":"2021-06-26T11:16:24.071718Z","shell.execute_reply.started":"2021-06-26T11:15:55.113914Z","shell.execute_reply":"2021-06-26T11:16:24.070623Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_train['date'] = pd.to_datetime(df_train['date'], format=\"%Y%m%d\")\ndf_train.head()","metadata":{"execution":{"iopub.status.busy":"2021-06-26T11:16:26.360336Z","iopub.execute_input":"2021-06-26T11:16:26.360887Z","iopub.status.idle":"2021-06-26T11:16:26.368050Z","shell.execute_reply.started":"2021-06-26T11:16:26.360842Z","shell.execute_reply":"2021-06-26T11:16:26.367393Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# CalendarFourier https://www.statsmodels.org/stable/generated/statsmodels.tsa.deterministic.CalendarFourier.html\n#  freq\"A\": {\"M\": 12, \"Q\": 4},\nfourier_terms = CalendarFourier(freq='A', order=4)\ndf_fourier = fourier_terms.in_sample(df_train['date'])\ndf_fourier","metadata":{"execution":{"iopub.status.busy":"2021-06-26T11:16:35.874692Z","iopub.execute_input":"2021-06-26T11:16:35.875005Z","iopub.status.idle":"2021-06-26T11:16:35.898449Z","shell.execute_reply.started":"2021-06-26T11:16:35.874977Z","shell.execute_reply":"2021-06-26T11:16:35.897460Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_fourier[['sin(1,freq=A-DEC)','cos(1,freq=A-DEC)']].query('date < \"2019-01-01\"').plot()\ndf_fourier[['sin(2,freq=A-DEC)','cos(2,freq=A-DEC)']].query('date < \"2019-01-01\"').plot()\ndf_fourier[['sin(3,freq=A-DEC)','cos(3,freq=A-DEC)']].query('date < \"2019-01-01\"').plot()\ndf_fourier[['sin(4,freq=A-DEC)','cos(4,freq=A-DEC)']].query('date < \"2019-01-01\"').plot()","metadata":{"execution":{"iopub.status.busy":"2021-06-26T11:16:56.589936Z","iopub.execute_input":"2021-06-26T11:16:56.590254Z","iopub.status.idle":"2021-06-26T11:16:58.146575Z","shell.execute_reply.started":"2021-06-26T11:16:56.590226Z","shell.execute_reply":"2021-06-26T11:16:58.145615Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_fourier.query('date < \"2019-01-01\"').plot()","metadata":{"execution":{"iopub.status.busy":"2021-06-26T11:20:02.842657Z","iopub.execute_input":"2021-06-26T11:20:02.843051Z","iopub.status.idle":"2021-06-26T11:20:03.286874Z","shell.execute_reply.started":"2021-06-26T11:20:02.843014Z","shell.execute_reply":"2021-06-26T11:20:03.285902Z"},"trusted":true},"execution_count":null,"outputs":[]}]}