私は、株式のリターンの自己相関関数を計算しています。これを行うために、私はautocorr
関数をPandasに組み込み、acf
関数はstatsmodels.tsa
によって提供するという2つの関数をテストしました。これは、次のMWEで行われます。pandas ACFとstatsmodel ACFの違いは何ですか?
この違いを占め、かつその値が使用されるべきもの:
import pandas as pd
from pandas_datareader import data
import matplotlib.pyplot as plt
import datetime
from dateutil.relativedelta import relativedelta
from statsmodels.tsa.stattools import acf, pacf
ticker = 'AAPL'
time_ago = datetime.datetime.today().date() - relativedelta(months = 6)
ticker_data = data.get_data_yahoo(ticker, time_ago)['Adj Close'].pct_change().dropna()
ticker_data_len = len(ticker_data)
ticker_data_acf_1 = acf(ticker_data)[1:32]
ticker_data_acf_2 = [ticker_data.autocorr(i) for i in range(1,32)]
test_df = pd.DataFrame([ticker_data_acf_1, ticker_data_acf_2]).T
test_df.columns = ['Pandas Autocorr', 'Statsmodels Autocorr']
test_df.index += 1
test_df.plot(kind='bar')
私は気づいた彼らは予測値が同じではありませんでしたでしたか?
デフォルトの遅れはパンダのバージョンでは '1'、statsmodelでは' – EdChum
'の場合は '40'です。統計モデルバージョンのオプションとして' unbiased = True'を試してみてください。 – user333700
あなたはプロットのラベルを逆にしました。私は 'unbiased = True'は自己相関係数を大きくするべきだと思います。 – user333700