Преобразование данных и функции преобразования частоты преобразуют ряд данных в другой формат.
Функции преобразования данных
Функция |
Цель |
---|---|
Преобразование Cox поля | |
Дифференцирование | |
Заполните отсутствующие значения | |
Фильтр | |
Серийный объект времени задержки | |
Серийный объект времени выполнения заказа | |
Периодическое среднее значение | |
Smoothdata | |
Скользящее среднее значение |
Функции преобразования частоты
Функция |
Новая частота |
---|---|
Как задано | |
Как задано | |
Ежегодный | |
Ежедневно | |
Ежемесячно | |
Ежеквартально | |
Раз в полгода | |
Еженедельно |
Как взгляд в качестве примера на boxcox
, функция преобразования Cox Поля. Эта функция преобразовывает ряд данных, содержавшийся в финансовом объекте временных рядов в другой набор ряда данных с относительно нормальными распределениями.
Сначала создайте финансовый объект временных рядов из предоставленного whirlpool.dat
файл данных.
whrl = ascii2fts('whirlpool.dat', 1, 2, [])
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In ascii2fts (line 64) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/display (line 66) whrl = desc: Whirlpool (WHR) freq: Unknown (0) 'dates: (1108)' 'Open: (1108)' 'High: (1108)' 'Low: (1108)' 'Close: (1108)' 'Volume: (1108)' '03-Jan-1995' [ 50.25] [ 50.88] [ 50.13] [ 50.38] [ 159000.00] '04-Jan-1995' [ 50.00] [ 50.13] [ 49.63] [ 49.75] [ 365800.00] '05-Jan-1995' [ 50.00] [ 50.00] [ 49.25] [ 49.88] [ 410500.00] '06-Jan-1995' [ 50.00] [ 50.25] [ 49.88] [ 50.25] [ 192900.00] '09-Jan-1995' [ 49.88] [ 50.38] [ 49.63] [ 50.38] [ 180800.00] '10-Jan-1995' [ 51.25] [ 51.25] [ 50.25] [ 50.25] [ 157800.00] '11-Jan-1995' [ 50.38] [ 50.63] [ 49.75] [ 49.75] [ 266000.00] '12-Jan-1995' [ 49.88] [ 50.13] [ 49.25] [ 49.88] [ 70000.00] '13-Jan-1995' [ 50.00] [ 50.25] [ 49.75] [ 50.13] [ 128000.00] '16-Jan-1995' [ 50.25] [ 50.38] [ 50.00] [ 50.00] [ 228200.00] ...
Заполните любые отсутствующие значения, обозначенные NaN
s в whrl
со значениями, вычисленными с помощью метода Linear:
f_whrl = fillts(whrl)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/fillts (line 213) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/display (line 66) f_whrl = desc: Filled Whirlpool (WHR) freq: Unknown (0) 'dates: (1108)' 'Open: (1108)' 'High: (1108)' 'Low: (1108)' 'Close: (1108)' 'Volume: (1108)' '03-Jan-1995' [ 50.25] [ 50.88] [ 50.13] [ 50.38] [ 159000.00] '04-Jan-1995' [ 50.00] [ 50.13] [ 49.63] [ 49.75] [ 365800.00] '05-Jan-1995' [ 50.00] [ 50.00] [ 49.25] [ 49.88] [ 410500.00] '06-Jan-1995' [ 50.00] [ 50.25] [ 49.88] [ 50.25] [ 192900.00] '09-Jan-1995' [ 49.88] [ 50.38] [ 49.63] [ 50.38] [ 180800.00] '10-Jan-1995' [ 51.25] [ 51.25] [ 50.25] [ 50.25] [ 157800.00] '11-Jan-1995' [ 50.38] [ 50.63] [ 49.75] [ 49.75] [ 266000.00] '12-Jan-1995' [ 49.88] [ 50.13] [ 49.25] [ 49.88] [ 70000.00] '13-Jan-1995' [ 50.00] [ 50.25] [ 49.75] [ 50.13] [ 128000.00] '16-Jan-1995' [ 50.25] [ 50.38] [ 50.00] [ 50.00] [ 228200.00] '17-Jan-1995' [ 51.00] [ 51.00] [ 50.00] [ 50.63] [ 196200.00] '18-Jan-1995' [ 50.50] [ 51.00] [ 50.13] [ 50.13] [ 369700.00] '19-Jan-1995' [ 50.25] [ 50.50] [ 50.00] [ 50.50] [ 254300.00] '20-Jan-1995' [ 50.50] [ 51.25] [ 50.50] [ 50.50] [ 183400.00] ...
Преобразуйте необычно распределенную заполненную серию f_whrl
данных в нормально распределенное использование преобразование Cox Поля:
bc_whrl = boxcox(f_whrl)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/boxcox (line 36) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/display (line 66) bc_whrl = desc: Box-Cox: Filled Whirlpool (WHR) freq: Unknown (0) 'dates: (1108)' 'Open: (1108)' 'High: (1108)' 'Low: (1108)' 'Close: (1108)' 'Volume: (1108)' '03-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.15] '04-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.62] '05-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.68] '06-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.26] '09-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.23] '10-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.15] '11-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.44] '12-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 8.68] '13-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.03] '16-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.36] '17-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.27] '18-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.62] '19-Jan-1995' [ 0.56] [ 0.51] [ 0.60] [ 0.60] [ 9.42]...
Сравните результат Close
ряд данных с нормальной (Гауссовой) функцией распределения вероятностей и необычно распределенным f_whrl
:
subplot(2, 1, 1); hist(f_whrl.Close); grid; title('Nonnormally Distributed Data'); subplot(2, 1, 2); hist(bc_whrl.Close); grid; title('Box-Cox Transformed Data');
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/subsref (line 106) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/hist (line 37) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/subsref (line 106) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/hist (line 37)
Преобразование Cox поля
Столбчатая диаграмма на верхней части представляет функцию распределения вероятностей заполненного ряда данных, f_whrl
, который является исходной серией whrl
данных с отсутствующими значениями, интерполированными с помощью метода Linear. Распределение скашивается к левому (не нормально распределенный). Столбчатая диаграмма на нижней части менее скашивается налево. Если вы строите Гауссову функцию распределения вероятностей (PDF) с подобным средним и стандартным отклонением, распределение преобразованных данных очень близко к (Гауссову) нормальному.
Когда вы исследуете содержимое полученного объекта bc_whrl
, вы находите одинаковый объект к исходному объекту whrl
но содержимое является преобразованным рядом данных. Если у вас есть программное обеспечение Statistics and Machine Learning Toolbox™, можно сгенерировать Гауссову PDF со средним и стандартным отклонением, равным тем из преобразованного ряда данных, и построить его как наложение к второй столбчатой диаграмме. На следующем рисунке вы видите, что это - приблизительно нормальное распределение.
Наложение гауссовой PDF
Следующий пример использует smoothts
функционируйте, чтобы сглаживать временные ряды.
Чтобы начаться, преобразуйте ibm9599.dat
, предоставленный файл данных, в финансовый объект временных рядов:
ibm = ascii2fts('ibm9599.dat', 1, 3, 2)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In ascii2fts (line 64) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/display (line 66) ibm = desc: International Business Machines Corporation (IBM) freq: Unknown (0) 'dates: (1108)' 'OPEN: (1108)' 'HIGH: (1108)' 'LOW: (1108)' 'CLOSE: (1108)' 'VOLUME: (1108)' '03-Jan-1995' [ 36.75] [ 36.91] [ 36.66] [ 36.88] [ 1167900.00] '04-Jan-1995' [ 37.00] [ 37.28] [ 36.63] [ 37.16] [ 1994700.00] '05-Jan-1995' [ 37.13] [ 37.63] [ 36.88] [ 37.00] [ 2270900.00] '06-Jan-1995' [ 37.25] [ 37.88] [ 37.03] [ 37.53] [ 3040500.00] '09-Jan-1995' [ 37.50] [ 37.91] [ 37.41] [ 37.75] [ 1713000.00] '10-Jan-1995' [ 38.00] [ 38.63] [ 37.78] [ 38.28] [ 3420800.00] '11-Jan-1995' [ 38.53] [ 38.53] [ 37.63] [ 38.00] [ 2450300.00] '12-Jan-1995' [ 37.91] [ 38.16] [ 37.75] [ 38.00] [ 2275900.00] '13-Jan-1995' [ 38.25] [ 38.41] [ 37.88] [ 38.16] [ 2030300.00] '16-Jan-1995' [ 38.16] [ 39.00] [ 38.16] [ 38.75] [ 2716000.00] '17-Jan-1995' [ 38.63] [ 39.00] [ 38.53] [ 38.75] [ 1596300.00] '18-Jan-1995' [ 38.88] [ 38.91] [ 38.28] [ 38.63] [ 1842600.00] '19-Jan-1995' [ 38.53] [ 38.78] [ 38.16] [ 38.25] [ 1713900.00]...
Заполните недостающие данные для праздников с данными, интерполированными с помощью fillts
функционируйте и Spline
fillmethod :
f_ibm = fillts(ibm, 'Spline')
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/fillts (line 213) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/display (line 66) f_ibm = desc: Filled International Business Machines Corporation (IBM) freq: Unknown (0) 'dates: (1108)' 'OPEN: (1108)' 'HIGH: (1108)' 'LOW: (1108)' 'CLOSE: (1108)' 'VOLUME: (1108)' '03-Jan-1995' [ 36.75] [ 36.91] [ 36.66] [ 36.88] [ 1167900.00] '04-Jan-1995' [ 37.00] [ 37.28] [ 36.63] [ 37.16] [ 1994700.00] '05-Jan-1995' [ 37.13] [ 37.63] [ 36.88] [ 37.00] [ 2270900.00] '06-Jan-1995' [ 37.25] [ 37.88] [ 37.03] [ 37.53] [ 3040500.00] '09-Jan-1995' [ 37.50] [ 37.91] [ 37.41] [ 37.75] [ 1713000.00] '10-Jan-1995' [ 38.00] [ 38.63] [ 37.78] [ 38.28] [ 3420800.00] '11-Jan-1995' [ 38.53] [ 38.53] [ 37.63] [ 38.00] [ 2450300.00] '12-Jan-1995' [ 37.91] [ 38.16] [ 37.75] [ 38.00] [ 2275900.00] '13-Jan-1995' [ 38.25] [ 38.41] [ 37.88] [ 38.16] [ 2030300.00] '16-Jan-1995' [ 38.16] [ 39.00] [ 38.16] [ 38.75] [ 2716000.00] '17-Jan-1995' [ 38.63] [ 39.00] [ 38.53] [ 38.75] [ 1596300.00] '18-Jan-1995' [ 38.88] [ 38.91] [ 38.28] [ 38.63] [ 1842600.00] '19-Jan-1995' [ 38.53] [ 38.78] [ 38.16] [ 38.25] [ 1713900.00] '20-Jan-1995' [ 38.13] [ 38.25] [ 37.50] [ 37.66] [ 3333400.00]...
Сглаживайте заполненный ряд данных с помощью Поля по умолчанию (прямоугольное окно) метод:
sm_ibm = smoothts(f_ibm)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/smoothts (line 44) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/display (line 66) sm_ibm = desc: Box-smoothed of Filled International Business Machines Corporation (IBM) freq: Unknown (0) 'dates: (1108)' 'OPEN: (1108)' 'HIGH: (1108)' 'LOW: (1108)' 'CLOSE: (1108)' 'VOLUME: (1108)' '03-Jan-1995' [ 22.18] [ 22.36] [ 22.03] [ 22.21] [ 1086700.00] '04-Jan-1995' [ 29.63] [ 29.94] [ 29.44] [ 29.71] [ 1694800.00] '05-Jan-1995' [ 37.13] [ 37.52] [ 36.92] [ 37.26] [ 2037400.00] '06-Jan-1995' [ 37.38] [ 37.86] [ 37.14] [ 37.54] [ 2487980.00] '09-Jan-1995' [ 37.68] [ 38.11] [ 37.34] [ 37.71] [ 2579100.00] '10-Jan-1995' [ 37.84] [ 38.22] [ 37.52] [ 37.91] [ 2580100.00] '11-Jan-1995' [ 38.04] [ 38.33] [ 37.69] [ 38.04] [ 2378060.00] '12-Jan-1995' [ 38.17] [ 38.54] [ 37.84] [ 38.24] [ 2578660.00] '13-Jan-1995' [ 38.29] [ 38.62] [ 37.99] [ 38.33] [ 2213760.00] '16-Jan-1995' [ 38.36] [ 38.69] [ 38.12] [ 38.46] [ 2092220.00] '17-Jan-1995' [ 38.49] [ 38.82] [ 38.20] [ 38.51] [ 1979820.00]...
Теперь постройте исходный и сглаживавший ряд цены закрытия для запаса IBM®:
plot(f_ibm.CLOSE('11/01/97::02/28/98'), 'r') datetick('x', 'mmmyy') hold on plot(sm_ibm.CLOSE('11/01/97::02/28/98'), 'b') hold off datetick('x', 'mmmyy') legend('Filled', 'Smoothed') title('Filled IBM Close Price vs. Smoothed Series')
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/subsref (line 106) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/plot (line 63) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/subsref (line 106) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/plot (line 63)
Сглаживавший ряд данных
Эти примеры дают вам общее представление о том, что можно сделать с финансовым объектом временных рядов. Этот тулбокс предусматривает некоторые функции MATLAB®, которые были перегружены, чтобы работать непосредственно с этими объектами. Перегруженные функции, те обычно должны были работать с данными временных рядов.
ascii2fts
| boxcox
| convertto
| datestr
| diff
| fillts
| filter
| fints
| fts2mat
| ftsbound
| lagts
| leadts
| peravg
| resamplets
| smoothts
| toannual
| todaily
| tomonthly
| toquarterly
| tosemi
| toweekly
| tsmovavg