susanli2016 / Machine-Learning-with-Python

Python code for common Machine Learning Algorithms
4.31k stars 4.82k forks source link

ValueError: Length of endogenous variable must be larger the the number of lags used in the model and the number of observations burned in the log-likelihood calculation #42

Open Lancashire3000 opened 2 years ago

Lancashire3000 commented 2 years ago

Hi,

I tried to run Time Series Forecastings.ipynb both in Jupiter and python script. From Jupiter it seems fine. If I tried to run as a python file (paste sections one by one and run as whole), in

results.plot_diagnostics(figsize=(16, 8))
plt.show()

I got

Traceback (most recent call last):
  File "time-series.py", line 71, in <module>
    results.plot_diagnostics(figsize=(16, 8))
  File "/home/user/anaconda3/lib/python3.8/site-packages/statsmodels/tsa/statespace/mlemodel.py", line 4284, in plot_diagnostics
    raise ValueError(
ValueError: Length of endogenous variable must be larger the the number of lags used in the model and the number of observations burned in the log-likelihood calculation.

may I know what is the reason for it? Thanks

aniketDash7 commented 1 year ago

Ensure that you have enough data points for the chosen model. The number of lags used in the model and the number of burn-in observations should be less than the length of your time series. If you're specifying the number of lags or other parameters for your time series model, try reducing them to a level that is appropriate for your data. If you're testing your model on a small subsample of your data, consider using a larger portion of your data for testing. The problem you're facing can happen if you don't have enough data points for the chosen model.