Совокупные данные о расписании к ежегодной периодичности
Методы агрегации Applyseparate к связанным переменным в timetable при поддержании непротиворечивости между агрегированными результатами при преобразовании в ежегодную периодичность. Можно использовать convert2annual агрегировать и внутриежедневные данные и агрегированные ежемесячные данные. Эти методы приводят к эквивалентным ежегодным агрегатам.
Загрузите расписание (TT) из симулированных данных о курсе акций и соответствующих логарифмических возвратов. Данные хранимы в TT зарегистрирован неоднократно в течение дня в рабочие дни Нью-Йоркской фондовой биржи (NYSE) с 1 января 2018, до 31 декабря 2020. Расписание TT также включает осведомленность бизнес-календаря NYSE. Если ваше расписание не считает в течение многих нерабочих дней (выходные, праздники и закрытия рынка), добавьте осведомленность бизнес-календаря при помощи addBusinessCalendar сначала.
load('SimulatedStock.mat','TT'); head(TT)
ans=8×2 timetable
Time Price Log_Return
____________________ ______ __________
02-Jan-2018 11:52:11 100.71 0.0070749
02-Jan-2018 13:23:09 103.11 0.023551
02-Jan-2018 14:45:30 100.24 -0.028229
02-Jan-2018 15:30:48 101.37 0.01121
03-Jan-2018 10:02:21 101.81 0.0043311
03-Jan-2018 11:22:37 100.17 -0.01624
03-Jan-2018 14:45:20 99.66 -0.0051043
03-Jan-2018 14:55:39 100.12 0.0046051
Во-первых, совокупные внутриежедневные цены и возвращаются к ежемесячной периодичности. Обеспечить непротиворечивость между ценами и возвращается за любые данные цены агрегата месяца путем создания отчетов о последней записанной цене с помощью "lastvalue" и агрегат возвращается путем подведения итогов всех логарифмических возвратов с помощью "sum".
TT1 = convert2monthly(TT,'Aggregation',["lastvalue" "sum"]); head(TT1)
ans=8×2 timetable
Time Price Log_Return
___________ ______ __________
31-Jan-2018 122.96 0.20669
28-Feb-2018 121.92 -0.008494
29-Mar-2018 108.9 -0.11294
30-Apr-2018 110.38 0.013499
31-May-2018 99.02 -0.10861
29-Jun-2018 96.24 -0.028477
31-Jul-2018 97.15 0.0094111
31-Aug-2018 101.51 0.043901
Используйте convert2annual агрегировать данные к ежегодной периодичности и сравнить результаты двух различных подходов агрегации. Первый подход вычисляет ежегодные результаты путем агрегации ежемесячного журнала, агрегируется, и второй подход вычисляет ежегодные результаты путем прямой агрегации исходных внутриежедневных данных. Заметьте, что по умолчанию, convert2annual сообщает о результатах в прошлый рабочий день декабря. Чтобы изменить месяц, который заканчивает ежегодные периоды, используйте 'EndOfYearMonth' аргумент пары "имя-значение" для convert2annual.
tt1 = convert2annual(TT1,'Aggregation',["lastvalue" "sum"]) % Monthly to annual
tt1=3×2 timetable
Time Price Log_Return
___________ ______ __________
31-Dec-2018 92.72 -0.075586
31-Dec-2019 163.65 0.56815
31-Dec-2020 274.75 0.51813
tt2 = convert2annual(TT ,'Aggregation',["lastvalue" "sum"]) % Intra-daily to semiannual
tt2=3×2 timetable
Time Price Log_Return
___________ ______ __________
31-Dec-2018 92.72 -0.075586
31-Dec-2019 163.65 0.56815
31-Dec-2020 274.75 0.51813
Результатами двух подходов является то же самое, потому что каждый ежегодный период содержит точно 12 календарных месяцев.
TT1 — Данные, чтобы агрегироваться к ежегодной периодичностиДанные, чтобы агрегироваться к ежегодной периодичности в виде расписания.
Каждая переменная может быть числовым вектором (одномерный ряд) или числовая матрица (многомерный ряд).
Примечание
NaNs указывают на отсутствующие значения.
Метки времени должны быть в порядке возрастания или убывания.
По умолчанию все дни являются рабочими днями. Если ваше расписание не считает в течение многих нерабочих дней (выходные, праздники и закрытия рынка), добавьте осведомленность бизнес-календаря при помощи addBusinessCalendar сначала. Например, следующая команда добавляет логику бизнес-календаря, чтобы включать только рабочие дни NYSE.
TT = addBusinessCalendar(TT);
Типы данных: timetable
Задайте дополнительные пары аргументов как Name1=Value1,...,NameN=ValueN, где Name имя аргумента и Value соответствующее значение. Аргументы name-value должны появиться после других аргументов, но порядок пар не имеет значения.
TT2 = convert2annual(TT1,'Aggregation',["lastvalue" "sum"])Aggregation — Метод агрегации для TT1"lastvalue"
(значение по умолчанию) | "sum"
| "prod" | "mean" | "min" | "max" | "firstvalue" | вектор символов | указатель на функцию | представляет вектор в виде строки | вектор ячейки из векторов символов или указателей на функциюМетод агрегации для TT1 определение, как к агрегированным данным за рабочие дни через год к ежегодной периодичности в виде одного из следующих методов, вектора строки из методов или длины numVariables вектор ячейки из методов, где numVariables количество переменных в TT1.
"sum" — Суммируйте значения в каждом году или день.
"mean" — Вычислите среднее значение значений в каждом году или день.
"prod" — Вычислите продукт значений в каждом году или день.
"min" — Вычислите минимум значений в каждом году или день.
"max" — Вычислите максимум значений в каждом году или день.
"firstvalue" — Используйте первое значение в каждом году или день.
"lastvalue" — Используйте последнее значение в каждом году или день.
@customfcn — Пользовательский метод агрегации, который принимает табличную переменную и возвращает числовой скаляр (для одномерного ряда) или вектор-строка (для многомерного ряда). Функция должна принять пустые входные параметры [].
Если вы задаете отдельный метод, convert2annual применяет заданный метод ко всем временным рядам в TT1. Если вы задаете вектор строки или вектор ячейки aggregation, convert2annual применяет агрегацию ( к j)TT1 (: ; J)convert2annual применяет каждый метод агрегации по одному (для получения дополнительной информации, смотрите retime). Например, считайте вход ежедневным расписанием с тремя переменными.
Time AAA BBB CCC
___________ ______ ______ ________________
01-Jan-2018 100.00 200.00 300.00 400.00
02-Jan-2018 100.03 200.06 300.09 400.12
03-Jan-2018 100.07 200.14 300.21 400.28
. . . . .
. . . . .
. . . . .
29-Dec-2018 249.16 498.32 747.48 996.64
30-Dec-2018 250.21 500.42 750.63 1000.84
31-Dec-2018 256.75 513.50 770.25 1027.00convert2annual применяет метод агрегации "lastvalue", который сообщает для каждой переменной о значениях прошлого рабочего дня каждого года. Агрегированные ежегодные результаты следующие:TT2 = convert2annual(TT1)
TT2 =
1×3 timetable
Time AAA BBB CCC
___________ ______ ______ ________________
31-Dec-2018 256.75 513.50 770.25 1027.00Все методы не используют недостающие данные (NaNs) в прямых вычислениях агрегации на каждой переменной. Однако для ситуаций, в которых отсутствующие значения появляются в первой строке TT1, отсутствующие значения могут также появиться в агрегированных результатах TT2. Чтобы обратиться к недостающим данным, запишите и задайте пользовательский метод агрегации (указатель на функцию), который поддерживает недостающие данные.
Типы данных: char | string | cell | function_handle
Daily — Суточный метод агрегации для TT1"lastvalue" (значение по умолчанию) | "sum" | "prod" | "mean" | "min" | "max" | "firstvalue" | вектор символов | указатель на функцию | представляет вектор в виде строки | вектор ячейки из векторов символов или указателей на функциюСуточный метод агрегации для TT1В виде метода агрегации, вектора строки из методов или длины numVariables вектор ячейки из методов. Для получения дополнительной информации о поддерживаемых методах и поведениях, смотрите 'Aggregation' аргумент значения имени.
Типы данных: char | string | cell | function_handle
EndOfYearMonth — Месяц, который заканчивает ежегодные периоды"December" (недели заканчиваются в пятницу) (значение по умолчанию) | целое число со значением 1 к 12 | "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December" | вектор символовМесяц, который заканчивает ежегодные периоды в виде значения в этой таблице.
| Значение | Месяц, заканчивающийся каждый год |
|---|---|
"January" или 1 | Январь |
"February" или 2 | Февраль |
"March" или 3 | Март |
"April" или 4 | Апрель |
"May" или 5 | Май |
"June" или 6 | Июнь |
"July" или 7 | Июль |
"August" или 8 | Август |
"September" или 9 | Сентябрь |
"October" или 10 | Октябрь |
"November" или 11 | Ноябрь |
"December" или 12 | Декабрь |
Типы данных: double | char | string
TT2 — Годовые данныеГодовые данные, возвращенные как расписание. Временная договоренность TT1 и TT2 то же самое.
Если переменная TT1 не имеет никаких записей рабочего дня в ежегодный период в промежутке времени выборки, convert2annual возвращает NaN в течение того переменного и ежегодного периода в TT2.
Если первый ежегодный период (year1) из TT1 содержит по крайней мере один рабочий день, первое свидание в TT2 последняя бизнес-дата year1. В противном случае, первое свидание в TT2 следующий конец даты бизнеса периода года TT1.
Если последний ежегодный период (yearT) из TT1 содержит по крайней мере один рабочий день, последнюю дату в TT2 последняя бизнес-дата yearT. В противном случае, последняя дата в TT2 предыдущий конец даты бизнеса периода года TT1.
convert2daily | convert2weekly | convert2quarterly | convert2semiannual | convert2monthly | timetable | addBusinessCalendar
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.