代码之家  ›  专栏  ›  技术社区  ›  data science

使用AutoReg命令进行预测

  •  0
  • data science  · 技术社区  · 3 年前

    以下是我在python中实现自回归模型的代码:

    import matplotlib.pyplot as plt
    import pandas as pd
    import yfinance as yfs
    import seaborn as sns
    from statsmodels.tsa.api import  acf,graphics,pacf
    from statsmodels.tsa.ar_model import AutoReg,ar_select_order
    data =yfs.download(tickers="AAPL",progress=False,start='2021-01-01',end='2023-01-01')
    data.drop(["High","Volume","Low","Close","Adj Close"],axis=1,inplace=True)
    data =data.asfreq('d')
    data.dropna(axis=0,inplace=True)
    data.reset_index(inplace=True)
    print(data.head())
    # data['percentage_change'] =data['Open'].pct_change()
    # print(data.head())
    # # data.plot()
    # # plt.show()
    # data['Open_Difference'] =data['Open'].diff()
    # print(data.head())
    # data.plot()
    # plt.show()
    model=AutoReg(data['Open'].ravel(),lags=3,old_names=False)
    model =model.fit()
    data['prediction'] =model.predict(start=len(data),end=len(data)+10)
    # print(model.summary())
    # data.plot()
    # plt.show()
    print(data.head())
    

    我正在从雅虎下载苹果的数据,想要实现自回归模型(三阶),并进行预测,下面是表:

           Date        Open
    0 2021-01-04  133.520004
    1 2021-01-05  128.889999
    2 2021-01-06  127.720001
    3 2021-01-07  128.360001
    4 2021-01-08  132.429993
    

    但代码显示错误:

    Traceback (most recent call last):
      File "C:\Users\User\PycharmProjects\Data_Science\Autoregressive_model.py", line 23, in <module>
        data['prediction'] =model.predict(start=len(data),end=len(data)+10)
      File "C:\Users\User\PycharmProjects\Data_Science\venv\lib\site-packages\pandas\core\frame.py", line 3980, in __setitem__
        self._set_item(key, value)
      File "C:\Users\User\PycharmProjects\Data_Science\venv\lib\site-packages\pandas\core\frame.py", line 4174, in _set_item
        value = self._sanitize_column(value)
      File "C:\Users\User\PycharmProjects\Data_Science\venv\lib\site-packages\pandas\core\frame.py", line 4915, in _sanitize_column
        com.require_length_match(value, self.index)
      File "C:\Users\User\PycharmProjects\Data_Science\venv\lib\site-packages\pandas\core\common.py", line 571, in require_length_match
        raise ValueError(
    ValueError: Length of values (11) does not match length of index (503)
    
    Process finished with exit code 1
    

    如何修复它,以便以图形方式显示原始和预测的时间序列?提前感谢

    0 回复  |  直到 3 年前