тест adfuller на стационарность и работа со словарем в списке для возврата стационарных временных рядов - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть дата-фрейм цен на акции, и я пытаюсь выполнить тест стационарности Дикки для каждой акции, используя from statsmodels.tsa.stattools import adfuller, затем я хотел бы создать список, состоящий из акций, которые проходят эту стационарность.тестовое задание.Ниже приведен код, который я использую для выполнения теста:

X = prices.values
X = log(X)
result = adfuller(X)
print('ADF Statistic: %f' % result[0])
print('p-value: %f' % result[1])
for key, value in result[4].items():
    print('\t%s: %.3f' % (key, value))

Этот код приводит к выводу, подобному следующему, например:

ADF Statistic: -2.440780
p-value: 0.130556
    1%: -3.437
    5%: -2.864
    10%: -2.568

Хотя печать result дает нам более подробную информацию(-2.441777051823896, 0.13029053843698696, 21, 978, {'1%': -3.437054035425408, '5%': -2.8644997864059363, '10%': -2.5683459429326576}, -7710.868442126897)

Вы можете видеть, что в середине результатов находится словарь, для того, чтобы акция была стационарной, первое число (result[0]) должно быть ниже, чем 3 значения в словаре.Итак, что я хочу сделать, это перебрать и сказать, если result[0] ниже, чем значения для ключей '1%', '5%' и '10%' в словаре, составляющем result[4], вернуть мне акцииимя, и я бы тогда хотел поместить его в отдельный список.Однако раньше я не встречал словарь в списке, поэтому я немного озадачен.Я, как правило, вполне доволен циклами и добавлением элементов в словари / списки, и если бы мы могли на секунду представить, что result[4] - это простое число, а не словарь, мой попытанный код будет выглядеть примерно так:

stationary_stocks = []

for stock in stocks:
   if result[0] < result[4]
   stationary_stocks.append(stock)

Однако, как мы видим выше, result[4] на самом деле словарь, и я не уверен, как попасть внутрь него, так сказать.

Итак, в заключение я хочу создать список, содержащий акции, где result[0] ниже всех значений, составляющих словарь в result[4].Любая помощь будет принята с благодарностью.Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...