Агрегирование по неделям с окончанием в среду
В этом упражнении вы освоите универсальный приём агрегирования дневных данных до недельной частоты, причём недели будут заканчиваться в среду. Такой подход часто применяется в исследованиях фондового рынка, чтобы избежать внутринедельной сезонности.
Функция period.apply() принимает объект xts, конечные точки временного периода и функцию агрегирования, после чего применяет эту функцию к каждой группе данных между конечными точками.
Функция endpoints() может вычислять конечные точки временного периода для period.apply(), но вы также можете задавать их вручную. При этом вектор пользовательских конечных точек должен начинаться с нуля и заканчиваться общим числом агрегируемых наблюдений — точно так же, как выходные данные endpoints().
Для поиска сред каждой недели вы воспользуетесь функцией .indexwday(). Она возвращает число от 0 до 6, где воскресенье = 0.
В упражнении используются дневные данные о ставке федеральных фондов (DFF) из предыдущих упражнений.
Это упражнение является частью курса
Импорт и управление финансовыми данными в R
Инструкции к упражнению
- С помощью
.indexwday()получите дни недели из индексаDFF. Сохраните результат в переменнуюindex_weekdays. - С помощью функции
which()найдите позиции сред в вектореindex_weekdays. Сохраните результат в переменнуюwednesdays. - Дополните команду так, чтобы вектор
end_pointsначинался с 0 и заканчивался общим числом строк — как результат функцииendpoints(). - С помощью
period.apply()иend_pointsагрегируйтеDFFдо недельных средних значений. Сохраните результат в переменнуюweekly_mean.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Extract index weekdays (Sunday = 0)
# Find locations of Wednesdays
wednesdays <- ___(index_weekdays == 3)
# Create custom end points
end_points <- c(___, wednesdays, ___)
# Calculate weekly mean using custom end points