Я работаю над кодированием модели волатильности HAR-RV, где я регрессирую ежедневно, еженедельно и ежемесячно, чтобы предсказать ежедневную волатильность завтрашнего дня. У меня есть 6-летняя ежедневная информация, на которую я хотел бы протестировать. Сначала я подумал, что это будет довольно просто - я использовал pandas asfreq для преобразования моих ежедневных данных в еженедельные и ежемесячные, чтобы вычислять ежедневные, еженедельные и ежемесячные pct_change, чтобы начать анализ. Проблема в том, что я пытаюсь найти функцию в python, которая позволит мне рассчитать ежемесячную и еженедельную pct_change для каждой ежедневной точки данных, чтобы на 1/24/15 у меня была неделя начиная с 17.01.2012 (-7 дней) и месяца, начинающегося 12/25/2014 (-30 дней), и для ежедневной точки данных 1/23/15 У меня будет неделя начала 1/16/2015 (-7 дней) и начало месяца 12/24/2014 (- 30 дней) и т. Д.Динамические периоды даты и времени Python
Однако, используя asfreq ('W') и asfreq ('M'), я получаю 31 ежедневную точку данных за каждый месяц (ОК) 1 ежемесячную точку данных за каждый месяц (не в порядке)) и 4 еженедельных данных за каждый месяц (не в порядке). Мне нужно 31 ежедневный пункт, 31 еженедельный баллы и 31 ежемесячный баллы за каждый месяц.
Любые указания относительно того, как я могу достичь соответствующих еженедельных и ежемесячных pct_change для каждого ежедневного дня? Вот код, который я в настоящее время с помощью:
import pandas as pd
import numpy as np
from zipline.data.loader import load_bars_from_yahoo
start = pd.Timestamp('2009-07-26')
end = pd.Timestamp('2015-01-18')
data = zp.utils.factory.load_from_yahoo(
stocks=['USO'],
start=start,
end=end,
)
daily = data
weekly = daily.asfreq('W-FRI')
monthly = daily.asfreq('M')`
Благодаря это был именно тем, что я ищу! – molivizzy