{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Forecasting in statsmodels\n", "\n", "This notebook describes forecasting using time series models in statsmodels.\n", "\n", "**Note**: this notebook applies only to the state space model classes, which are:\n", "\n", "- `sm.tsa.SARIMAX`\n", "- `sm.tsa.UnobservedComponents`\n", "- `sm.tsa.VARMAX`\n", "- `sm.tsa.DynamicFactor`" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:51.753038Z", "iopub.status.busy": "2024-03-18T09:23:51.752798Z", "iopub.status.idle": "2024-03-18T09:23:54.892187Z", "shell.execute_reply": "2024-03-18T09:23:54.891434Z" } }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import pandas as pd\n", "import statsmodels.api as sm\n", "import matplotlib.pyplot as plt\n", "\n", "macrodata = sm.datasets.macrodata.load_pandas().data\n", "macrodata.index = pd.period_range('1959Q1', '2009Q3', freq='Q')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic example\n", "\n", "A simple example is to use an AR(1) model to forecast inflation. Before forecasting, let's take a look at the series:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:54.898554Z", "iopub.status.busy": "2024-03-18T09:23:54.896876Z", "iopub.status.idle": "2024-03-18T09:23:55.457446Z", "shell.execute_reply": "2024-03-18T09:23:55.456729Z" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "endog = macrodata['infl']\n", "endog.plot(figsize=(15, 5))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Constructing and estimating the model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The next step is to formulate the econometric model that we want to use for forecasting. In this case, we will use an AR(1) model via the `SARIMAX` class in statsmodels.\n", "\n", "After constructing the model, we need to estimate its parameters. This is done using the `fit` method. The `summary` method produces several convenient tables showing the results." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:55.463108Z", "iopub.status.busy": "2024-03-18T09:23:55.462641Z", "iopub.status.idle": "2024-03-18T09:23:55.603444Z", "shell.execute_reply": "2024-03-18T09:23:55.602783Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RUNNING THE L-BFGS-B CODE\n", "\n", " * * *\n", "\n", "Machine precision = 2.220D-16\n", " N = 3 M = 10\n", "\n", "At X0 0 variables are exactly at the bounds\n", "\n", "At iterate 0 f= 2.32873D+00 |proj g|= 8.23649D-03\n", "\n", "At iterate 5 f= 2.32864D+00 |proj g|= 1.41994D-03\n", "\n", " * * *\n", "\n", "Tit = total number of iterations\n", "Tnf = total number of function evaluations\n", "Tnint = total number of segments explored during Cauchy searches\n", "Skip = number of BFGS updates skipped\n", "Nact = number of active bounds at final generalized Cauchy point\n", "Projg = norm of the final projected gradient\n", "F = final function value\n", "\n", " * * *\n", "\n", " N Tit Tnf Tnint Skip Nact Projg F\n", " 3 8 10 1 0 0 5.820D-06 2.329D+00\n", " F = 2.3286389358138617 \n", "\n", "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n", " SARIMAX Results \n", "==============================================================================\n", "Dep. Variable: infl No. Observations: 203\n", "Model: SARIMAX(1, 0, 0) Log Likelihood -472.714\n", "Date: Mon, 18 Mar 2024 AIC 951.427\n", "Time: 09:23:55 BIC 961.367\n", "Sample: 03-31-1959 HQIC 955.449\n", " - 09-30-2009 \n", "Covariance Type: opg \n", "==============================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "------------------------------------------------------------------------------\n", "intercept 1.3962 0.254 5.488 0.000 0.898 1.895\n", "ar.L1 0.6441 0.039 16.482 0.000 0.568 0.721\n", "sigma2 6.1519 0.397 15.487 0.000 5.373 6.930\n", "===================================================================================\n", "Ljung-Box (L1) (Q): 8.43 Jarque-Bera (JB): 68.45\n", "Prob(Q): 0.00 Prob(JB): 0.00\n", "Heteroskedasticity (H): 1.47 Skew: -0.22\n", "Prob(H) (two-sided): 0.12 Kurtosis: 5.81\n", "===================================================================================\n", "\n", "Warnings:\n", "[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " This problem is unconstrained.\n" ] } ], "source": [ "# Construct the model\n", "mod = sm.tsa.SARIMAX(endog, order=(1, 0, 0), trend='c')\n", "# Estimate the parameters\n", "res = mod.fit()\n", "\n", "print(res.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Forecasting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Out-of-sample forecasts are produced using the `forecast` or `get_forecast` methods from the results object.\n", "\n", "The `forecast` method gives only point forecasts." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:55.609820Z", "iopub.status.busy": "2024-03-18T09:23:55.608034Z", "iopub.status.idle": "2024-03-18T09:23:55.625565Z", "shell.execute_reply": "2024-03-18T09:23:55.624782Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2009Q4 3.68921\n", "Freq: Q-DEC, dtype: float64\n" ] } ], "source": [ "# The default is to get a one-step-ahead forecast:\n", "print(res.forecast())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `get_forecast` method is more general, and also allows constructing confidence intervals." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:55.631278Z", "iopub.status.busy": "2024-03-18T09:23:55.629645Z", "iopub.status.idle": "2024-03-18T09:23:55.650847Z", "shell.execute_reply": "2024-03-18T09:23:55.650240Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "infl mean mean_se mean_ci_lower mean_ci_upper\n", "2009Q4 3.68921 2.480302 -0.390523 7.768943\n" ] } ], "source": [ "# Here we construct a more complete results object.\n", "fcast_res1 = res.get_forecast()\n", "\n", "# Most results are collected in the `summary_frame` attribute.\n", "# Here we specify that we want a confidence level of 90%\n", "print(fcast_res1.summary_frame(alpha=0.10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The default confidence level is 95%, but this can be controlled by setting the `alpha` parameter, where the confidence level is defined as $(1 - \\alpha) \\times 100\\%$. In the example above, we specified a confidence level of 90%, using `alpha=0.10`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Specifying the number of forecasts\n", "\n", "Both of the functions `forecast` and `get_forecast` accept a single argument indicating how many forecasting steps are desired. One option for this argument is always to provide an integer describing the number of steps ahead you want." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:55.656263Z", "iopub.status.busy": "2024-03-18T09:23:55.654621Z", "iopub.status.idle": "2024-03-18T09:23:55.678294Z", "shell.execute_reply": "2024-03-18T09:23:55.677673Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2009Q4 3.689210\n", "2010Q1 3.772434\n", "Freq: Q-DEC, Name: predicted_mean, dtype: float64\n" ] } ], "source": [ "print(res.forecast(steps=2))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:55.684008Z", "iopub.status.busy": "2024-03-18T09:23:55.681986Z", "iopub.status.idle": "2024-03-18T09:23:55.709011Z", "shell.execute_reply": "2024-03-18T09:23:55.708296Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "infl mean mean_se mean_ci_lower mean_ci_upper\n", "2009Q4 3.689210 2.480302 -1.172092 8.550512\n", "2010Q1 3.772434 2.950274 -2.009996 9.554865\n" ] } ], "source": [ "fcast_res2 = res.get_forecast(steps=2)\n", "# Note: since we did not specify the alpha parameter, the\n", "# confidence level is at the default, 95%\n", "print(fcast_res2.summary_frame())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "However, **if your data included a Pandas index with a defined frequency** (see the section at the end on Indexes for more information), then you can alternatively specify the date through which you want forecasts to be produced:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:55.716041Z", "iopub.status.busy": "2024-03-18T09:23:55.715738Z", "iopub.status.idle": "2024-03-18T09:23:55.734442Z", "shell.execute_reply": "2024-03-18T09:23:55.733751Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2009Q4 3.689210\n", "2010Q1 3.772434\n", "2010Q2 3.826039\n", "Freq: Q-DEC, Name: predicted_mean, dtype: float64\n" ] } ], "source": [ "print(res.forecast('2010Q2'))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:55.737713Z", "iopub.status.busy": "2024-03-18T09:23:55.737423Z", "iopub.status.idle": "2024-03-18T09:23:55.761974Z", "shell.execute_reply": "2024-03-18T09:23:55.761270Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "infl mean mean_se mean_ci_lower mean_ci_upper\n", "2009Q4 3.689210 2.480302 -1.172092 8.550512\n", "2010Q1 3.772434 2.950274 -2.009996 9.554865\n", "2010Q2 3.826039 3.124571 -2.298008 9.950087\n" ] } ], "source": [ "fcast_res3 = res.get_forecast('2010Q2')\n", "print(fcast_res3.summary_frame())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting the data, forecasts, and confidence intervals\n", "\n", "Often it is useful to plot the data, the forecasts, and the confidence intervals. There are many ways to do this, but here's one example" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:55.765360Z", "iopub.status.busy": "2024-03-18T09:23:55.765043Z", "iopub.status.idle": "2024-03-18T09:23:56.545114Z", "shell.execute_reply": "2024-03-18T09:23:56.544348Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABMkAAAGsCAYAAADHUfDaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAClJ0lEQVR4nOzdd3hUdfYG8PdOT5tJ7wkJLfQQOogKggI2sGBbRUGx79oVfmtby+LaexdQsaIoiooKIhY6oZdAgPTeZtKm398fM3cgkISUaUnez/PkkSR3Zr5BIJkz57xHEEVRBBERERERERERUQ8m8/UBiIiIiIiIiIiIfI1FMiIiIiIiIiIi6vFYJCMiIiIiIiIioh6PRTIiIiIiIiIiIurxWCQjIiIiIiIiIqIej0UyIiIiIiIiIiLq8VgkIyIiIiIiIiKiHk/h6wO4m91uR1FREUJCQiAIgq+PQ0REREREREREPiSKImpraxEfHw+ZrOV+sW5XJCsqKkJSUpKvj0FERERERERERH4kPz8fiYmJLX6+2xXJQkJCADi+cK1W6+PTEBERERERERGRLxkMBiQlJblqRi3pdkUyacRSq9WySEZERERERERERABw2lguBvcTEREREREREVGPxyIZERERERERERH1eCySERERERERERFRj8ciGRERERERERER9XgskhERERERERERUY/HIhkREREREREREfV4LJIREREREREREVGPxyIZERERERERERH1eCySERERERERERFRj8ciGRERERERERER9XgskhERERERERERUY/HIhkREREREREREfV4LJIREREREREREVGPxyIZERERERERERH1eApfH4CIiIiIiIiIiPyHKIpN/tvSx07+XGsfa+vtWvt4W685+XP19fWnvT+ARTIiIiIiIiIiIq+z2+0QRbHJG4BW3z/dx+x2O+x2u+v+T/zvide29jHp4ydrrmDW1uvb+7HWPt7Wz594TV1d3WmvBTpRJPvjjz/w3HPPYfv27SguLsY333yDWbNmNTnIY489hvfeew81NTU444wz8NZbb6Ffv36t3u8bb7yB5557DiUlJUhPT8drr72GMWPGdPSYRERERERERERuJxW5pMJUa7+2Wq2w2Wyw2WywWq3NFshaK5JJRFGEIAgtnkn6nCAITX598udPvra5z5/8MZlM1qbr2vuxtnw9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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(15, 5))\n", "\n", "# Plot the data (here we are subsetting it to get a better look at the forecasts)\n", "endog.loc['1999':].plot(ax=ax)\n", "\n", "# Construct the forecasts\n", "fcast = res.get_forecast('2011Q4').summary_frame()\n", "fcast['mean'].plot(ax=ax, style='k--')\n", "ax.fill_between(fcast.index, fcast['mean_ci_lower'], fcast['mean_ci_upper'], color='k', alpha=0.1);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Note on what to expect from forecasts\n", "\n", "The forecast above may not look very impressive, as it is almost a straight line. This is because this is a very simple, univariate forecasting model. Nonetheless, keep in mind that these simple forecasting models can be extremely competitive." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prediction vs Forecasting\n", "\n", "The results objects also contain two methods that all for both in-sample fitted values and out-of-sample forecasting. They are `predict` and `get_prediction`. The `predict` method only returns point predictions (similar to `forecast`), while the `get_prediction` method also returns additional results (similar to `get_forecast`).\n", "\n", "In general, if your interest is out-of-sample forecasting, it is easier to stick to the `forecast` and `get_forecast` methods." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cross validation\n", "\n", "**Note**: some of the functions used in this section were first introduced in statsmodels v0.11.0.\n", "\n", "A common use case is to cross-validate forecasting methods by performing h-step-ahead forecasts recursively using the following process:\n", "\n", "1. Fit model parameters on a training sample\n", "2. Produce h-step-ahead forecasts from the end of that sample\n", "3. Compare forecasts against test dataset to compute error rate\n", "4. Expand the sample to include the next observation, and repeat\n", "\n", "Economists sometimes call this a pseudo-out-of-sample forecast evaluation exercise, or time-series cross-validation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will conduct a very simple exercise of this sort using the inflation dataset above. The full dataset contains 203 observations, and for expositional purposes we'll use the first 80% as our training sample and only consider one-step-ahead forecasts." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A single iteration of the above procedure looks like the following:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:56.552235Z", "iopub.status.busy": "2024-03-18T09:23:56.551950Z", "iopub.status.idle": "2024-03-18T09:23:56.657292Z", "shell.execute_reply": "2024-03-18T09:23:56.656559Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RUNNING THE L-BFGS-B CODE\n", "\n", " * * *\n", "\n", "Machine precision = 2.220D-16\n", " N = 3 M = 10\n", "\n", "At X0 0 variables are exactly at the bounds\n", "\n", "At iterate 0 f= 2.23132D+00 |proj g|= 1.09171D-02\n", "\n", "At iterate 5 f= 2.23109D+00 |proj g|= 3.93608D-05\n", "\n", " * * *\n", "\n", "Tit = total number of iterations\n", "Tnf = total number of function evaluations\n", "Tnint = total number of segments explored during Cauchy searches\n", "Skip = number of BFGS updates skipped\n", "Nact = number of active bounds at final generalized Cauchy point\n", "Projg = norm of the final projected gradient\n", "F = final function value\n", "\n", " * * *\n", "\n", " N Tit Tnf Tnint Skip Nact Projg F\n", " 3 6 8 1 0 0 7.066D-07 2.231D+00\n", " F = 2.2310884444664758 \n", "\n", "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n", "intercept 1.162076\n", "ar.L1 0.724242\n", "sigma2 5.051600\n", "dtype: float64\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " This problem is unconstrained.\n" ] } ], "source": [ "# Step 1: fit model parameters w/ training sample\n", "training_obs = int(len(endog) * 0.8)\n", "\n", "training_endog = endog[:training_obs]\n", "training_mod = sm.tsa.SARIMAX(\n", " training_endog, order=(1, 0, 0), trend='c')\n", "training_res = training_mod.fit()\n", "\n", "# Print the estimated parameters\n", "print(training_res.params)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:56.660812Z", "iopub.status.busy": "2024-03-18T09:23:56.660370Z", "iopub.status.idle": "2024-03-18T09:23:56.691953Z", "shell.execute_reply": "2024-03-18T09:23:56.691287Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " true forecast error\n", "1999Q3 3.35 2.55262 0.79738\n" ] } ], "source": [ "# Step 2: produce one-step-ahead forecasts\n", "fcast = training_res.forecast()\n", "\n", "# Step 3: compute root mean square forecasting error\n", "true = endog.reindex(fcast.index)\n", "error = true - fcast\n", "\n", "# Print out the results\n", "print(pd.concat([true.rename('true'),\n", " fcast.rename('forecast'),\n", " error.rename('error')], axis=1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To add on another observation, we can use the `append` or `extend` results methods. Either method can produce the same forecasts, but they differ in the other results that are available:\n", "\n", "- `append` is the more complete method. It always stores results for all training observations, and it optionally allows refitting the model parameters given the new observations (note that the default is *not* to refit the parameters).\n", "- `extend` is a faster method that may be useful if the training sample is very large. It *only* stores results for the new observations, and it does not allow refitting the model parameters (i.e. you have to use the parameters estimated on the previous sample).\n", "\n", "If your training sample is relatively small (less than a few thousand observations, for example) or if you want to compute the best possible forecasts, then you should use the `append` method. However, if that method is infeasible (for example, because you have a very large training sample) or if you are okay with slightly suboptimal forecasts (because the parameter estimates will be slightly stale), then you can consider the `extend` method." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A second iteration, using the `append` method and refitting the parameters, would go as follows (note again that the default for `append` does not refit the parameters, but we have overridden that with the `refit=True` argument):" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:56.695482Z", "iopub.status.busy": "2024-03-18T09:23:56.695053Z", "iopub.status.idle": "2024-03-18T09:23:56.801489Z", "shell.execute_reply": "2024-03-18T09:23:56.800787Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RUNNING THE L-BFGS-B CODE\n", "\n", " * * *\n", "\n", "Machine precision = 2.220D-16\n", " N = 3 M = 10\n", "\n", "At X0 0 variables are exactly at the bounds\n", "\n", "At iterate 0 f= 2.22839D+00 |proj g|= 2.38555D-03\n", "\n", "At iterate 5 f= 2.22838D+00 |proj g|= 9.80105D-08\n", "\n", " * * *\n", "\n", "Tit = total number of iterations\n", "Tnf = total number of function evaluations\n", "Tnint = total number of segments explored during Cauchy searches\n", "Skip = number of BFGS updates skipped\n", "Nact = number of active bounds at final generalized Cauchy point\n", "Projg = norm of the final projected gradient\n", "F = final function value\n", "\n", " * * *\n", "\n", " N Tit Tnf Tnint Skip Nact Projg F\n", " 3 5 8 1 0 0 9.801D-08 2.228D+00\n", " F = 2.2283821699856410 \n", "\n", "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " This problem is unconstrained.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "intercept 1.171544\n", "ar.L1 0.723152\n", "sigma2 5.024580\n", "dtype: float64\n" ] } ], "source": [ "# Step 1: append a new observation to the sample and refit the parameters\n", "append_res = training_res.append(endog[training_obs:training_obs + 1], refit=True)\n", "\n", "# Print the re-estimated parameters\n", "print(append_res.params)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that these estimated parameters are slightly different than those we originally estimated. With the new results object, `append_res`, we can compute forecasts starting from one observation further than the previous call:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:56.815324Z", "iopub.status.busy": "2024-03-18T09:23:56.814090Z", "iopub.status.idle": "2024-03-18T09:23:56.829930Z", "shell.execute_reply": "2024-03-18T09:23:56.829283Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " true forecast error\n", "1999Q4 2.85 3.594102 -0.744102\n" ] } ], "source": [ "# Step 2: produce one-step-ahead forecasts\n", "fcast = append_res.forecast()\n", "\n", "# Step 3: compute root mean square forecasting error\n", "true = endog.reindex(fcast.index)\n", "error = true - fcast\n", "\n", "# Print out the results\n", "print(pd.concat([true.rename('true'),\n", " fcast.rename('forecast'),\n", " error.rename('error')], axis=1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Putting it altogether, we can perform the recursive forecast evaluation exercise as follows:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:56.834530Z", "iopub.status.busy": "2024-03-18T09:23:56.833363Z", "iopub.status.idle": "2024-03-18T09:23:58.372519Z", "shell.execute_reply": "2024-03-18T09:23:58.371821Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RUNNING THE L-BFGS-B CODE\n", "\n", " * * *\n", "\n", "Machine precision = 2.220D-16\n", " N = 3 M = 10\n", "\n", "At X0 0 variables are exactly at the bounds\n", "\n", "At iterate 0 f= 2.23132D+00 |proj g|= 1.09171D-02\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "At iterate 5 f= 2.23109D+00 |proj g|= 3.93608D-05\n", "\n", " * * *\n", "\n", "Tit = total number of iterations\n", "Tnf = total number of function evaluations\n", "Tnint = total number of segments explored during Cauchy searches\n", "Skip = number of BFGS updates skipped\n", "Nact = number of active bounds at final generalized Cauchy point\n", "Projg = norm of the final projected gradient\n", "F = final function value\n", "\n", " * * *\n", "\n", " N Tit Tnf Tnint Skip Nact Projg F\n", " 3 6 8 1 0 0 7.066D-07 2.231D+00\n", " F = 2.2310884444664758 \n", "\n", "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " This problem is unconstrained.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 1999Q2 1999Q3 1999Q4 2000Q1 2000Q2\n", "1999Q3 2.552620 NaN NaN NaN NaN\n", "1999Q4 3.010790 3.588286 NaN NaN NaN\n", "2000Q1 3.342616 3.760863 3.226165 NaN NaN\n", "2000Q2 NaN 3.885850 3.498599 3.885225 NaN\n", "2000Q3 NaN NaN 3.695908 3.975918 4.196649\n" ] } ], "source": [ "# Setup forecasts\n", "nforecasts = 3\n", "forecasts = {}\n", "\n", "# Get the number of initial training observations\n", "nobs = len(endog)\n", "n_init_training = int(nobs * 0.8)\n", "\n", "# Create model for initial training sample, fit parameters\n", "init_training_endog = endog.iloc[:n_init_training]\n", "mod = sm.tsa.SARIMAX(training_endog, order=(1, 0, 0), trend='c')\n", "res = mod.fit()\n", "\n", "# Save initial forecast\n", "forecasts[training_endog.index[-1]] = res.forecast(steps=nforecasts)\n", "\n", "# Step through the rest of the sample\n", "for t in range(n_init_training, nobs):\n", " # Update the results by appending the next observation\n", " updated_endog = endog.iloc[t:t+1]\n", " res = res.append(updated_endog, refit=False)\n", " \n", " # Save the new set of forecasts\n", " forecasts[updated_endog.index[0]] = res.forecast(steps=nforecasts)\n", "\n", "# Combine all forecasts into a dataframe\n", "forecasts = pd.concat(forecasts, axis=1)\n", "\n", "print(forecasts.iloc[:5, :5])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now have a set of three forecasts made at each point in time from 1999Q2 through 2009Q3. We can construct the forecast errors by subtracting each forecast from the actual value of `endog` at that point." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:58.378475Z", "iopub.status.busy": "2024-03-18T09:23:58.376721Z", "iopub.status.idle": "2024-03-18T09:23:58.433376Z", "shell.execute_reply": "2024-03-18T09:23:58.432490Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 1999Q2 1999Q3 1999Q4 2000Q1 2000Q2\n", "1999Q3 0.797380 NaN NaN NaN NaN\n", "1999Q4 -0.160790 -0.738286 NaN NaN NaN\n", "2000Q1 0.417384 -0.000863 0.533835 NaN NaN\n", "2000Q2 NaN 0.304150 0.691401 0.304775 NaN\n", "2000Q3 NaN NaN -0.925908 -1.205918 -1.426649\n" ] } ], "source": [ "# Construct the forecast errors\n", "forecast_errors = forecasts.apply(lambda column: endog - column).reindex(forecasts.index)\n", "\n", "print(forecast_errors.iloc[:5, :5])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To evaluate our forecasts, we often want to look at a summary value like the root mean square error. Here we can compute that for each horizon by first flattening the forecast errors so that they are indexed by horizon and then computing the root mean square error fore each horizon." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:58.439687Z", "iopub.status.busy": "2024-03-18T09:23:58.437951Z", "iopub.status.idle": "2024-03-18T09:23:58.491612Z", "shell.execute_reply": "2024-03-18T09:23:58.490807Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 1999Q2 1999Q3 1999Q4 2000Q1 2000Q2\n", "horizon \n", "1 0.797380 -0.738286 0.533835 0.304775 -1.426649\n", "2 -0.160790 -0.000863 0.691401 -1.205918 -0.311464\n", "3 0.417384 0.304150 -0.925908 -0.151602 -2.384952\n" ] } ], "source": [ "# Reindex the forecasts by horizon rather than by date\n", "def flatten(column):\n", " return column.dropna().reset_index(drop=True)\n", "\n", "flattened = forecast_errors.apply(flatten)\n", "flattened.index = (flattened.index + 1).rename('horizon')\n", "\n", "print(flattened.iloc[:3, :5])" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:58.497756Z", "iopub.status.busy": "2024-03-18T09:23:58.495902Z", "iopub.status.idle": "2024-03-18T09:23:58.507258Z", "shell.execute_reply": "2024-03-18T09:23:58.506626Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "horizon\n", "1 3.292700\n", "2 3.421808\n", "3 3.280012\n", "dtype: float64\n" ] } ], "source": [ "# Compute the root mean square error\n", "rmse = (flattened**2).mean(axis=1)**0.5\n", "\n", "print(rmse)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using `extend`\n", "\n", "We can check that we get similar forecasts if we instead use the `extend` method, but that they are not exactly the same as when we use `append` with the `refit=True` argument. This is because `extend` does not re-estimate the parameters given the new observation." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:58.512823Z", "iopub.status.busy": "2024-03-18T09:23:58.511041Z", "iopub.status.idle": "2024-03-18T09:23:59.673978Z", "shell.execute_reply": "2024-03-18T09:23:59.673216Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RUNNING THE L-BFGS-B CODE\n", "\n", " * * *\n", "\n", "Machine precision = 2.220D-16\n", " N = 3 M = 10\n", "\n", "At X0 0 variables are exactly at the bounds\n", "\n", "At iterate 0 f= 2.23132D+00 |proj g|= 1.09171D-02\n", "\n", "At iterate 5 f= 2.23109D+00 |proj g|= 3.93608D-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", " * * *\n", "\n", "Tit = total number of iterations\n", "Tnf = total number of function evaluations\n", "Tnint = total number of segments explored during Cauchy searches\n", "Skip = number of BFGS updates skipped\n", "Nact = number of active bounds at final generalized Cauchy point\n", "Projg = norm of the final projected gradient\n", "F = final function value\n", "\n", " * * *\n", "\n", " N Tit Tnf Tnint Skip Nact Projg F\n", " 3 6 8 1 0 0 7.066D-07 2.231D+00\n", " F = 2.2310884444664758 \n", "\n", "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " This problem is unconstrained.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 1999Q2 1999Q3 1999Q4 2000Q1 2000Q2\n", "1999Q3 2.552620 NaN NaN NaN NaN\n", "1999Q4 3.010790 3.588286 NaN NaN NaN\n", "2000Q1 3.342616 3.760863 3.226165 NaN NaN\n", "2000Q2 NaN 3.885850 3.498599 3.885225 NaN\n", "2000Q3 NaN NaN 3.695908 3.975918 4.196649\n" ] } ], "source": [ "# Setup forecasts\n", "nforecasts = 3\n", "forecasts = {}\n", "\n", "# Get the number of initial training observations\n", "nobs = len(endog)\n", "n_init_training = int(nobs * 0.8)\n", "\n", "# Create model for initial training sample, fit parameters\n", "init_training_endog = endog.iloc[:n_init_training]\n", "mod = sm.tsa.SARIMAX(training_endog, order=(1, 0, 0), trend='c')\n", "res = mod.fit()\n", "\n", "# Save initial forecast\n", "forecasts[training_endog.index[-1]] = res.forecast(steps=nforecasts)\n", "\n", "# Step through the rest of the sample\n", "for t in range(n_init_training, nobs):\n", " # Update the results by appending the next observation\n", " updated_endog = endog.iloc[t:t+1]\n", " res = res.extend(updated_endog)\n", " \n", " # Save the new set of forecasts\n", " forecasts[updated_endog.index[0]] = res.forecast(steps=nforecasts)\n", "\n", "# Combine all forecasts into a dataframe\n", "forecasts = pd.concat(forecasts, axis=1)\n", "\n", "print(forecasts.iloc[:5, :5])" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:59.683263Z", "iopub.status.busy": "2024-03-18T09:23:59.682234Z", "iopub.status.idle": "2024-03-18T09:23:59.768461Z", "shell.execute_reply": "2024-03-18T09:23:59.767731Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 1999Q2 1999Q3 1999Q4 2000Q1 2000Q2\n", "1999Q3 0.797380 NaN NaN NaN NaN\n", "1999Q4 -0.160790 -0.738286 NaN NaN NaN\n", "2000Q1 0.417384 -0.000863 0.533835 NaN NaN\n", "2000Q2 NaN 0.304150 0.691401 0.304775 NaN\n", "2000Q3 NaN NaN -0.925908 -1.205918 -1.426649\n" ] } ], "source": [ "# Construct the forecast errors\n", "forecast_errors = forecasts.apply(lambda column: endog - column).reindex(forecasts.index)\n", "\n", "print(forecast_errors.iloc[:5, :5])" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:59.772563Z", "iopub.status.busy": "2024-03-18T09:23:59.771679Z", "iopub.status.idle": "2024-03-18T09:23:59.835069Z", "shell.execute_reply": "2024-03-18T09:23:59.834261Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 1999Q2 1999Q3 1999Q4 2000Q1 2000Q2\n", "horizon \n", "1 0.797380 -0.738286 0.533835 0.304775 -1.426649\n", "2 -0.160790 -0.000863 0.691401 -1.205918 -0.311464\n", "3 0.417384 0.304150 -0.925908 -0.151602 -2.384952\n" ] } ], "source": [ "# Reindex the forecasts by horizon rather than by date\n", "def flatten(column):\n", " return column.dropna().reset_index(drop=True)\n", "\n", "flattened = forecast_errors.apply(flatten)\n", "flattened.index = (flattened.index + 1).rename('horizon')\n", "\n", "print(flattened.iloc[:3, :5])" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:59.839021Z", "iopub.status.busy": "2024-03-18T09:23:59.838261Z", "iopub.status.idle": "2024-03-18T09:23:59.849639Z", "shell.execute_reply": "2024-03-18T09:23:59.848916Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "horizon\n", "1 3.292700\n", "2 3.421808\n", "3 3.280012\n", "dtype: float64\n" ] } ], "source": [ "# Compute the root mean square error\n", "rmse = (flattened**2).mean(axis=1)**0.5\n", "\n", "print(rmse)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By not re-estimating the parameters, our forecasts are slightly worse (the root mean square error is higher at each horizon). However, the process is faster, even with only 200 datapoints. Using the `%%timeit` cell magic on the cells above, we found a runtime of 570ms using `extend` versus 1.7s using `append` with `refit=True`. (Note that using `extend` is also faster than using `append` with `refit=False`)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Indexes\n", "\n", "Throughout this notebook, we have been making use of Pandas date indexes with an associated frequency. As you can see, this index marks our data as at a quarterly frequency, between 1959Q1 and 2009Q3." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:59.853340Z", "iopub.status.busy": "2024-03-18T09:23:59.852798Z", "iopub.status.idle": "2024-03-18T09:23:59.859934Z", "shell.execute_reply": "2024-03-18T09:23:59.859199Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PeriodIndex(['1959Q1', '1959Q2', '1959Q3', '1959Q4', '1960Q1', '1960Q2',\n", " '1960Q3', '1960Q4', '1961Q1', '1961Q2',\n", " ...\n", " '2007Q2', '2007Q3', '2007Q4', '2008Q1', '2008Q2', '2008Q3',\n", " '2008Q4', '2009Q1', '2009Q2', '2009Q3'],\n", " dtype='period[Q-DEC]', length=203)\n" ] } ], "source": [ "print(endog.index)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In most cases, if your data has an associated data/time index with a defined frequency (like quarterly, monthly, etc.), then it is best to make sure your data is a Pandas series with the appropriate index. Here are three examples of this:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:59.863655Z", "iopub.status.busy": "2024-03-18T09:23:59.862862Z", "iopub.status.idle": "2024-03-18T09:23:59.873395Z", "shell.execute_reply": "2024-03-18T09:23:59.872589Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PeriodIndex(['2000', '2001', '2002', '2003'], dtype='period[Y-DEC]')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_4487/63920926.py:2: FutureWarning: 'A' is deprecated and will be removed in a future version, please use 'Y' instead.\n", " index = pd.period_range(start='2000', periods=4, freq='A')\n" ] } ], "source": [ "# Annual frequency, using a PeriodIndex\n", "index = pd.period_range(start='2000', periods=4, freq='A')\n", "endog1 = pd.Series([1, 2, 3, 4], index=index)\n", "print(endog1.index)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:59.877194Z", "iopub.status.busy": "2024-03-18T09:23:59.876261Z", "iopub.status.idle": "2024-03-18T09:23:59.886735Z", "shell.execute_reply": "2024-03-18T09:23:59.886028Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DatetimeIndex(['2000-01-01', '2000-04-01', '2000-07-01', '2000-10-01'], dtype='datetime64[ns]', freq='QS-JAN')\n" ] } ], "source": [ "# Quarterly frequency, using a DatetimeIndex\n", "index = pd.date_range(start='2000', periods=4, freq='QS')\n", "endog2 = pd.Series([1, 2, 3, 4], index=index)\n", "print(endog2.index)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:59.890447Z", "iopub.status.busy": "2024-03-18T09:23:59.889491Z", "iopub.status.idle": "2024-03-18T09:23:59.900866Z", "shell.execute_reply": "2024-03-18T09:23:59.899991Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DatetimeIndex(['2000-01-31', '2000-02-29', '2000-03-31', '2000-04-30'], dtype='datetime64[ns]', freq='ME')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_4487/204383329.py:2: FutureWarning: 'M' is deprecated and will be removed in a future version, please use 'ME' instead.\n", " index = pd.date_range(start='2000', periods=4, freq='M')\n" ] } ], "source": [ "# Monthly frequency, using a DatetimeIndex\n", "index = pd.date_range(start='2000', periods=4, freq='M')\n", "endog3 = pd.Series([1, 2, 3, 4], index=index)\n", "print(endog3.index)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In fact, if your data has an associated date/time index, it is best to use that even if does not have a defined frequency. An example of that kind of index is as follows - notice that it has `freq=None`:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:59.905101Z", "iopub.status.busy": "2024-03-18T09:23:59.903956Z", "iopub.status.idle": "2024-03-18T09:23:59.919734Z", "shell.execute_reply": "2024-03-18T09:23:59.919021Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DatetimeIndex(['2000-01-01 10:08:00', '2000-01-01 11:32:00',\n", " '2000-01-01 17:32:00', '2000-01-02 06:15:00'],\n", " dtype='datetime64[ns]', freq=None)\n" ] } ], "source": [ "index = pd.DatetimeIndex([\n", " '2000-01-01 10:08am', '2000-01-01 11:32am',\n", " '2000-01-01 5:32pm', '2000-01-02 6:15am'])\n", "endog4 = pd.Series([0.2, 0.5, -0.1, 0.1], index=index)\n", "print(endog4.index)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can still pass this data to statsmodels' model classes, but you will get the following warning, that no frequency data was found:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:59.923524Z", "iopub.status.busy": "2024-03-18T09:23:59.922543Z", "iopub.status.idle": "2024-03-18T09:23:59.976392Z", "shell.execute_reply": "2024-03-18T09:23:59.975701Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RUNNING THE L-BFGS-B CODE\n", "\n", " * * *\n", "\n", "Machine precision = 2.220D-16\n", " N = 2 M = 10\n", "\n", "At X0 0 variables are exactly at the bounds\n", "\n", "At iterate 0 f= 1.37900D-01 |proj g|= 4.66940D-01\n", "\n", "At iterate 5 f= 1.32476D-01 |proj g|= 6.00136D-06\n", "\n", " * * *\n", "\n", "Tit = total number of iterations\n", "Tnf = total number of function evaluations\n", "Tnint = total number of segments explored during Cauchy searches\n", "Skip = number of BFGS updates skipped\n", "Nact = number of active bounds at final generalized Cauchy point\n", "Projg = norm of the final projected gradient\n", "F = final function value\n", "\n", " * * *\n", "\n", " N Tit Tnf Tnint Skip Nact Projg F\n", " 2 5 10 1 0 0 6.001D-06 1.325D-01\n", " F = 0.13247641992895681 \n", "\n", "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/statsmodels/tsa/base/tsa_model.py:465: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n", " self._init_dates(dates, freq)\n", "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/statsmodels/tsa/base/tsa_model.py:465: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n", " self._init_dates(dates, freq)\n", " This problem is unconstrained.\n" ] } ], "source": [ "mod = sm.tsa.SARIMAX(endog4)\n", "res = mod.fit()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What this means is that you cannot specify forecasting steps by dates, and the output of the `forecast` and `get_forecast` methods will not have associated dates. The reason is that without a given frequency, there is no way to determine what date each forecast should be assigned to. In the example above, there is no pattern to the date/time stamps of the index, so there is no way to determine what the next date/time should be (should it be in the morning of 2000-01-02? the afternoon? or maybe not until 2000-01-03?).\n", "\n", "For example, if we forecast one-step-ahead:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:23:59.981635Z", "iopub.status.busy": "2024-03-18T09:23:59.979995Z", "iopub.status.idle": "2024-03-18T09:24:00.003797Z", "shell.execute_reply": "2024-03-18T09:24:00.003159Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/statsmodels/tsa/base/tsa_model.py:829: FutureWarning: No supported index is available. In the next version, calling this method in a model without a supported index will result in an exception.\n", " return get_prediction_index(\n" ] }, { "data": { "text/plain": [ "4 0.011866\n", "dtype: float64" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res.forecast(1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The index associated with the new forecast is `4`, because if the given data had an integer index, that would be the next value. A warning is given letting the user know that the index is not a date/time index.\n", "\n", "If we try to specify the steps of the forecast using a date, we will get the following exception:\n", "\n", " KeyError: 'The `end` argument could not be matched to a location related to the index of the data.'\n" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "execution": { "iopub.execute_input": "2024-03-18T09:24:00.009404Z", "iopub.status.busy": "2024-03-18T09:24:00.007725Z", "iopub.status.idle": "2024-03-18T09:24:00.017890Z", "shell.execute_reply": "2024-03-18T09:24:00.017270Z" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "'The `end` argument could not be matched to a location related to the index of the data.'\n" ] } ], "source": [ "# Here we'll catch the exception to prevent printing too much of\n", "# the exception trace output in this notebook\n", "try:\n", " res.forecast('2000-01-03')\n", "except KeyError as e:\n", " print(e)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ultimately there is nothing wrong with using data that does not have an associated date/time frequency, or even using data that has no index at all, like a Numpy array. However, if you can use a Pandas series with an associated frequency, you'll have more options for specifying your forecasts and get back results with a more useful index." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 4 }