Тест на автокорреляцию по ряду биржевых возвратов - PullRequest
0 голосов
/ 21 мая 2018

Я хотел бы провести тест на автокорреляцию (скажем, Дурбин Уотсон) с набором данных о доходности акций.В частности, у меня есть набор данных с квартальной доходностью акций, поэтому по 1 наблюдению за каждый квартал, который представляет собой возврат цены акций за 1 день после объявления прибыли в этом квартале.Пример с минимальными значениями выглядит следующим образом для 2 акций и 3 кварталов:

data = [{'date': '3/22/18', 'return': 1},{'date': '3/22/18', 'return': 1}, 
{'date': '6/22/18', 'return': 3},{'date': '6/22/18', 'return': 3},
{'date': '9/22/18', 'return': 2},{'date': '9/22/18', 'return': 2}]
df = pd.DataFrame(data, index=['s1', 's2','s1','s2','s1','s2'])

        date  return
 s1  3/22/18       1
 s2  3/22/18       1
 s1  6/22/18       3
 s2  6/22/18       3
 s1  9/22/18       2
 s2  9/22/18       2

Поскольку у меня большое количество акций, я подумал, что, возможно, имеет смысл выполнить тест отдельно для каждой акции, а затеммассив статистики тестирования DW, связанный с каждой акцией.Скажите что-то вроде этого:

  s1 0.453
  s2 1.593
  s3 3.453

Я думал использовать:

statsmodels.stats.stattools.durbin_watson (resids, axis = 0)

Но я неЯ совершенно уверен, как поступить, чтобы получить этот массив, как описано выше.Любая помощь высоко ценится.

1 Ответ

0 голосов
/ 21 мая 2018

Один из способов использования теста DW по группам заключается в следующем.Я повторно использую ваш процесс генерации данных, добавляя ряды в виде столбца, выполняю групповую работу и применяю тест непосредственно

data = [{'date': '3/22/18', 'return': 1},{'date': '3/22/18', 'return': 1}, 
{'date': '9/22/18', 'return': 3.0},{'date': '9/22/18', 'return': 3},
{'date': '6/22/18', 'return': 2},{'date': '6/22/18', 'return': 2}]
df = pd.DataFrame(data, index=['s1', 's2','s1','s2','s1','s2'])
df.reset_index(inplace=True)
df.groupby('index')['return'].apply(lambda x: 
statsmodels.stats.stattools.durbin_watson(x, axis=0))

enter image description here

...