Как найти автокорреляцию и plot_acf на питоне, используя данные с неравными временными интервалами? - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть следующий ряд панд, где временной интервал не фиксирован. Могу ли я спросить, как найти и построить автокорреляцию за 1/3/5/10 минут? Извините, я новичок в Python ... Это торговые данные, где цена меняется. Поскольку цена может измениться в любое время, следовательно, данные времени не имеют фиксированного интервала. Но мне нужно изучить автокорреляцию через 1,3,5 и 10 минут и подумать об использовании plot_acf.

time                           Price
2019-01-07 07:45:01.064515    152.530
2019-01-07 07:45:01.110072    152.535
2019-01-07 07:45:01.116596    152.535
2019-01-07 07:45:01.116860    152.535
2019-01-07 07:45:01.116905    152.535

Это мой код:

interval = datetime.timedelta(minutes = 10)
series = pd.Series(data_first_session['fair_price'].values, index = data_first_session['time'])
acf = plot_acf(series, lags = interval)
acf.show()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-5307c2c9f4df> in <module>()
      1 interval = datetime.timedelta(minutes = 10)
      2 series = pd.Series(data_first_session['fair_price'].values, index = data_first_session['time'])
----> 3 acf = plot_acf(series, lags = interval)
      4 acf.show()

/usr/local/envs/py3env/lib/python3.5/site-packages/statsmodels/graphics/tsaplots.py in plot_acf(x, ax, lags, alpha, use_vlines, unbiased, fft, title, zero, **kwargs)
    109     fig, ax = utils.create_mpl_ax(ax)
    110 
--> 111     lags, nlags, irregular = _prepare_data_corr_plot(x, lags, zero)
    112 
    113     confint = None

/usr/local/envs/py3env/lib/python3.5/site-packages/statsmodels/graphics/tsaplots.py in _prepare_data_corr_plot(x, lags, zero)
     18     else:
     19         irregular = True
---> 20         lags = np.asanyarray(lags).astype(np.int)
     21     nlags = lags.max(0)
     22 

TypeError: int() argument must be a string, a bytes-like object or a number, not 'datetime.timedelta'
...