Главные компоненты временных рядов: метод 'Гусеница'

Главные компоненты временных рядов:
 
метод "Гусеница"

Под редакцией Д.Л.Данилова и А.А.Жиглявского
Санкт-Петербургский университет
1997

Описание программы "Caterpillar",
реализующей метод "Гусеница"

К.А.Браулов, Н.Э.Голяндина

Основные идеи

Опишем коротко основные идеи, положенные в основу программной реализации метода "Гусеница".

О методе "Гусеница"

Метод "Гусеница", реализованный в программе, описан и исследуется в ряде статей настоящего сборника, в частности, в разделах I.1 и V.1. Метод имеет несколько вариантов, выражающихся в наличие или отсутствии центрирования и нормирования матрицы наблюдений, построенной по ряду. Возможен также вариант, состоящий в двойном центрировании матрицы наблюдений (из каждого элемента матрицы наблюдений, соответствующей ряду, вычитается среднее по столбцам, среднее по строкам и общее среднее по всей матрице). Какие-то из этих вариантов исследованы лучше, какие-то хуже, но в программу они включены все, чтобы дать возможность пользователю поиграть со всеми вариантами.

Заметим, что при огромном многообразии реальных данных математическое обоснование метода может дать лишь некоторые базовые представления. По-настоящему научиться применять метод можно лишь, набрав большой опыт при обработке реальных данных. Программа "Гусеница" представляет собой удобное для достижения этой цели средство.

Общая структура программы

Работа программы разделена на три последовательных этапа (не считая чтения данных из файла), каждый из которых производит вычислительные действия:

  1. Преобразования ряда. К ним относится линейное преобразование, а также выделение части ряда и его прореживание.
  2. Разложение. На этом этапе проводится выбор параметра "длина гусеницы" и анализ главных компонент (АГК) матрицы наблюдений, построенной по ряду в соответствии с этим параметром.
  3. Восстановление. На этом этапе проводится восстановление ряда по выбранным главным компонентам.

Перечислим графические окна, появляющиеся в результате работы программы:

  1. Временной ряд.
  2. Информация на уровне первых двух моментов (средние, дисперсии, корреляционная (или ковариационная) функция).
  3. Собственные числа в процентах (сами числа и накопленные).
  4. Логарифмы и корни из собственных чисел.
  5. Собственные вектора.
  6. Главные компоненты.
  7. Восстановленный ряд и ряд остатков (т.е. ряд разностей между исходным рядом и восстановленным).

Заметим, что графические окна с номерами 2–6 появляются в результате работы второго этапа и относятся к результатам анализа главных компонент матрицы наблюдений, поэтому в их названиях присутствует терминология АГК.

Для того, чтобы облегчить работу с программой для начинающего пользователя, в программу был введен Навигатор, позволяющий последовательно двигаться вперед (задавая параметры и просматривая результаты, полезные при задании параметров на следующем этапе). В то же время, чтобы жесткая последовательность не мешала опытному пользователю, предусмотрена возможность просматривать результаты по выбору.

Графическое представление результатов

Важной частью реализации метода является визуальное представление результатов. Возможности современного графического интерфейса позволяют уделить графическим представлениям большое внимание.

Отметим ряд понятий и возможностей разработанной программы.

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

Так как одной гармонической составляющей ряда (периодике) соответствуют две главные компоненты, то было введено понятие парной графики, помогающее находить эти пары ГК. Для нахождения соответствующих друг другу главных компонент полезным оказалось их двухмерное изображение.

Так как пара главных компонент, соответствующая одной периодике, должна быть связана с близкими по значению собственными числами (в идеальном случае с одним и тем же собственным числом), то в программе предлагается график логарифмов и корней из собственных чисел, позволяющий лучше увидеть "ступеньки" в поведении собственных чисел.

Информация на уровне первых двух моментов дает возможность увидеть, во-первых, динамику средних характеристик ряда, а, во-вторых, увидеть по корреляционной функции основные периодики ряда.

Формат данных и выдача результатов

При написании программы "Гусеница" большое внимание было уделено способам печати и сохранения графических и текстовых результатов работы программы.

Одним из реализованных принципов является то, что график должен содержать всю информацию, по которой его можно повторить. Это очень важно для работы с программой, так как в процессе работы оказывается нужным распечатывать большое количество графиков, исследуя результаты при различных значениях параметров (длины гусеницы, номеров ГК, выбранных для восстановления). Для этого при построении графика вся информация, относящаяся к нему, в сокращенном виде записывается в строки комментариев к графику. В то же время, для чистовой печати есть возможность изменять подписи, заголовки и комментарии.

При сохранении данных та же идея реализована путем сохранения вместе с данными информации о том, в результате каких действий этот ряд был получен.

Для того, чтобы сохраненные данные можно было снова обрабатывать с помощью программы, есть возможность сохранять данные в так называемом внутреннем формате программы, который позволяет хранить текстовую информацию вместе с числовой, а также несколько рядов одинаковой длины в одном файле.

Для получения чистовых графиков в программе предусмотрены три пути. Первый - это печать графика изнутри программы с возможностью менять расположение его на листе. Второй - копирование графика в буфер обмена (это не относится к мультиграфикам) и затем печать его через, например, WORD или EXCEL. Третья возможность - это сохранение результатов в виде чисел и затем построение графика с помощью какой-либо графической программы.

Руководство пользователя

Техническая информация

Требования к компьютеру:
  • Оперативная память - не менее 2 Мб.
  • Процессор - 386 и выше.
  • Операционная система - Windows 3.1 и выше.

Необходимо также, чтобы среди шрифтов имеющейся версии Windows был шрифт с кириллицей. Если программа неправильно определит этот шрифт, нужно использовать файл инициализации. В нем переменной Name нужно присвоить имя имеющегося шрифта, отображающего русские буквы.

Требований к виртуальной памяти нет, но чем больше ее размер, тем длиннее ряд, который программа может анализировать (независимо от размера памяти максимальная длина ряда составляет 8000 точек).

На прилагаемой к книге дискете содержится выполняемый файл программы "Гусеница" и данные, используемые в разделе I.2 в качестве примеров. Полное описание содержания дискеты находится в файле readme.

Общие положения

Программа "Гусеница" имеет главное окно, которое состоит из меню, панели горячих кнопок, рабочей области и строки подсказок (рис.1). В процессе работы программы в рабочей области главного окна появляются дополнительные окна, содержащие графическую информацию, а в меню добавляются новые пункты, соответствующие активному окну. Имеется три типа дополнительных окон :
  • Окно, содержащее один график.
  • Окно, содержащее верхний и нижний график.
  • Окно, содержащее мультиграфик.

Как уже упоминалось, работа программы состоит в последовательном выполнении одного из четырех этапов: чтения временного ряда из файла и трех этапов, производящих вычислительные действия:

  1. Преобразования ряда.
  2. Разложение ряда.
  3. Восстановление ряда.

В будущем предполагается добавить этап - Прогнозирование ряда.

При движении вперед по этапам можно пропустить этап преобразования ряда, все остальные - обязательные (например, нельзя восстанавливать ряд, не выполнив его разложения). Возвращаться можно на любой этап. При этом результаты последующих этапов, если их не сохранить, будут потеряны (т.е., если после восстановления ряда выполнить преобразование, то результаты разложения и восстановления пропадут).

Перед выполнением каждого этапа, программа предлагает настроить его параметры. После успешного выполнения этапа, в главное окно добавляются дополнительные окна (Количество этих окон зависит от выполняемого этапа. Например, после разложения ряда добавляется пять окон, а после восстановления - одно).

На панели горячих кнопок есть две кнопки Навигатора. Их цель - последовательное переключение между результатами. При движении вперед, если это необходимо, предлагается выполнить очередной этап. При движении назад происходит последовательный просмотр в обратном порядке существующих результатов. На просмотр любого из уже полученных результатов (графических окон) можно попасть через пункт меню Окна (рис.2).

В самого начала работы программы ведется протокол совершаемых действий. Его можно в любой момент просмотреть, отредактировать и распечатать (см. рис.1). При выходе из программы будет предложено сохранить его. В протокол заносится следующая информация:

  • Время начала работы программы.
  • Информация о ряде.
  • Параметры преобразования.
  • Параметры разложения.
  • Параметры восстановления.
  • Информация о сохранении данных.
  • Информация о копировании графика в буфер обмена.
  • Время окончания работы программы.

Можно также просматривать текущую информацию. Ее отличие от протокола заключается в следующем: после анализа нескольких временных рядов протокол хранит информацию о всех совершенных действиях с каждым рядом, а текущая информация отображает последнюю цепочку действий с последним загруженным рядом.

Форматы файлов исходных данных

Под файлом исходных данных понимается обычный текстовый файл, содержащий информацию о данных и сами данные.

Существует два формата файлов исходных данных, используемых в программе

  • Свободный.
  • Структурированный.

Общий вид файла свободного формата:

% Название исходных данных [Необязательно]
# Строка комментария [Необязательно]
...
# Строка комментария [Необязательно]
X1, X2, X3, ... [Обязательно]

Значения временного ряда: X1, X2, X3, ... могут разделяться не только пробелами, но и символами "перевод строки", "Tab", ";", ",", "." в любом количестве. В зависимости от того, какой символ был выбран в качестве десятичного разделителя (см. далее), этот набор символов уменьшается (убирается либо "." , либо ",").

Структурированный формат, в отличие от свободного, позволяет хранить несколько временных рядов одновременно (один ряд - один столбец). Чтобы программа правильно воспринимала такой формат, необходимо непосредственно перед данными вставить строку, содержащую имена рядов. Имена рядов разделяются теми же символами, что и значения. Необходимо следить за тем, чтобы длина всех рядов совпадала.

Параметры этапов

Параметры загрузки временного ряда

После выбора пользователем файла, содержащего данные, появляется окно Формат исходных данных (рис.3). Нажав кнопку Просмотр, можно взглянуть на содержимое выбранного файла. Если файл содержит один ряд без имени, нужно выбрать в группе Формат файла переключатель Свободный. В противном случае, нужно выбрать переключатель Структурный, а в группе Названия переменных - Есть (Случай, когда формат структурный, а названий переменных нет, зарезервирован на будущее).

В большинстве случаев в качестве символа десятичного разделителя используется точка (0.1; 0.2 и т.д.), но иногда этой цели служит запятая (0,1; 0,2; ...). Чтобы сообщить программе, какой символ-разделитель используется в загружаемом файле, нужно выбрать соответствующий переключатель в группе Десятичный разделитель.

Обычно символы кириллицы в операционных системах DOS и Windows имеют разную кодировку, OEM и ANSI соответственно. Пользуясь переключателем Кодировка, можно сообщить программе, какая кодировка кириллицы используется в файле.

Если программа установит, что файл хранит несколько рядов, то после нажатия кнопки Ok будет предложено выбрать название одного ряда, который и будет анализироваться.

Параметры преобразования временного ряда

Окно Преобразования ряда содержит две страницы: Прореживание и Линейное (рис.4). Используя первую страницу, можно вырезать кусок ряда и/или проредить его (например, это может понадобится, если ряд очень длинный). Параметр От - это первая точка нового ряда, параметр До - его последняя точка, а параметр Шаг задает прореживание.

Пример:
Исходный ряд: 1, 2, 3, 4, 5, 6, 7, 8, 9
Параметры: От – 2 , До – 7, Шаг – 2
Новый ряд: 2, 4, 6

На странице Линейное можно задать параметры линейного преобразования (AX+B).

Пример:
Исходный ряд: 2, 4, 6, 7
Параметры: A =0.1, B=5
Новый ряд: 5.2, 5.4, 5.6, 5.7

Нажав кнопку Исх.ряд, можно вернуться к исходному ряду без преобразований.

После выполнения этапа преобразования, к верхней строке комментариев всех графиков добавляется краткая информация о преобразовании исходного ряда в текущий. Если было выполнено прореживание, то добавится строка Прореж.:(От, До, Шаг); если выполнялось линейное преобразование, то добавится строка Лин.:(А, В), причем параметры (От, До, Шаг, А, В) будут отображать окончательный результат всей цепочки преобразований, по которой из исходного ряда был получен текущий.

Параметры разложения временного ряда

В окне Параметры разложения можно задать длину гусеницы, центрирование (Нет/Есть/Дважды) и нормирование (Нет/Есть) матрицы наблюдений (рис.5). Нажав кнопку Дополнительно..., можно установить точность вычисления собственных чисел и собственных векторов матрицы наблюдений, а также, сколько главных компонент вычислять. Использование этих двух параметров поможет сократить время вычислений. Необходимо заметить, что при изменении параметра длина гусеницы, параметр кол-во главных компонент всегда автоматически переустанавливается.

Параметры восстановления временного ряда

Перед выполнением восстановления ряда появится окно Выбор составляющих для восстановления (рис.6). В нем можно выбрать компоненты, которые будут использоваться при восстановлении ряда. Если на этапе разложения было сказано центрировать или дважды центрировать матрицу наблюдений, то в Исходном наборе будет присутствовать Среднее-гусеничное. Для каждой главной компоненты указывается доля в процентах соответствующего собственного числа. В левом нижнем углу рассматриваемого окна выдается информация о сумме этих долей для выбранных главных компонент.

Работа с графикой

Как было сказано ранее, в программе существует три типа представления графики в дополнительных окнах. При активизации дополнительного окна какого-либо типа в меню главного окна добавляется несколько пунктов, с помощью которых можно изменить опции графики, сохранить их или загрузить новые.

В этом месте необходимо сделать некоторое отступление и объяснить, откуда программа берет опции по умолчанию. Когда выполнен какой-либо этап (см. выше) и создается очередное окно с графикой, программа ищет файл DEFLTCAT.OPT, содержащий опции всех типов графики и, если он есть, загружает опции из него. Если такого файла нет, берутся опции, "зашитые" внутрь программы. Если сохранить новые опции в файл DEFLTCAT.OPT, то при создании следующих окон с графикой будут использоваться новые опции (в уже созданных окнах ничего не изменится). Сохранение опций в файл с другим именем даст возможность впоследствии использовать их.

Состав файла, хранящего опции, следующий:

  • Опции верхнего графика.
  • Опции нижнего графика.
  • Опции двухмерного графика.
  • Опции индивидуальной мультиграфики.
  • Опции парной мультиграфики.

Следует отметить, что "Опции верхнего графика" используются во всех типах окон:

  1. В окнах, содержащих один график, как опции этого графика.
  2. В окнах, содержащих верхний и нижний графики, как опции верхнего графика.
  3. В окнах, содержащих мультиграфики, как опции одномерной графики.

Окна, содержащие один график

В программе создаются следующие представители этого типа:
  • Временной ряд
  • Собственные числа в процентах
  • Собственные числа

Необходимо отметить, что под словами окна, содержащие один график подразумевается, что окно содержит одну графическую сетку, а не одну функцию. Так, например, в окне Собственные числа в процентах отображены две функции на одной графической сетке.

При активизации этого типа окна, в меню главного окна добавляется пункт Опции, состоящий из трех подпунктов. Подпункты Сохранить... и Загрузить... были описаны выше. При выборе подпункта Графика... появится окно с опциями первого типа графики. Это окно содержит пять страниц:

  1. Ось X
  2. Ось Y
  3. Подписи
  4. Цвета
  5. Функция

Рассмотрим каждую страницу подробно.

Ось X.

Параметры группы Шкала определяют границы оси X, в которых будет показываться график. Установленный флажок Авто в этой группе означает, что программа автоматически установит максимальные границы для имеющихся графиков. Если этот флажок не установлен, можно вручную ввести левую и правую границы (параметры Миним. и Максим. соответственно).

Группа параметров Разметка позволяет работать с подписями по оси X. Флажок Показать определяет, показывать или нет подписи. После нажатия кнопки Шрифт можно установить шрифт, размер, стиль и цвет текста подписей. Вторая строка в этой группе отвечает за то, как будет размечена ось X. Если флажок Авто установлен, то программа начнет разметку с первой точки, а шаг сетки подберет целым так, чтобы подписи не накладывались друг на друга. Если флажок Авто не установлен, то место начала разметки и шаг можно менять (параметры От и с шагом соответственно) и эти значения могут быть нецелыми. В последней строке группы Разметка можно изменить точность вывода значений подписей (т.е. кол-во знаков после десятичной точки). При установленном флажке Авто точность вывода становится нулевой (т.е. выводимые значения будут целыми).

Параметр Максимальное кол-во точек на экране влияет на прокрутку графика по оси X. Если его значение больше разности параметров Максим. и Миним. группы Шкала, то прокрутки не будет. В противном случае, линейка прокрутки будет присутствовать и значение параметра Максимальное кол-во точек на экране будет определять количество одновременно видимых точек графика.

Параметры группы Сетка позволяют включать/выключать сетку по оси X, менять ее цвет и стиль.

Ось Y.

В отличие от предыдущей страницы, на этой нет параметра Максимальное кол-во точек на экране (т.е. возможность прокручивать график по вертикали отсутствует), но зато есть новый. В четвертой строке группы Разметка можно устанавливать отступ слева для графика. В автоматическом режиме этот отступ равен ширине самой длинной подписи по оси Y.

Еще одно отличие от параметров предыдущей страницы: если установить для параметра Число знаков после точки автоматический режим, то точность подберется такая, что каждая подпись будет отличаться от другой, может быть, с небольшим запасом (например, вместо двух подписей 3.1,3.1 будет 3.130, 3.150).

Описание остальных параметров идентично описанию параметров страницы Ось X.

Подписи.

Каждая графическая сетка в программе может иметь три подписи: заголовок графика и комментарий, состоящий из верхней и нижней подписей. На этой странице можно их включить /отключить, редактировать и менять шрифт. Необходимо отметить, что текст этих подписей не сохраняется при записи опций в файл, и для вновь созданных графиков эти подписи будут формироваться автоматически.

В случае, если график содержит больше одной функции, на этой странице будет появляться группа Легенды. С помощью параметров этой группы можно включить/отключить показ легенд к функциям, менять их шрифт, устанавливать ширину прямоугольника, в котором они выводятся.

Цвета.

На этой странице можно изменить цветовое оформление графика. Под внутренней областью понимается прямоугольник, в котором изображена функция и сетка. Под внешней областью - все остальное. Также здесь можно включить/отключить показ нулевых осей и устанавливать их цвет.

Функция.

На этой странице можно изменять такие параметры показа функции (или функций, если их несколько), как: показывать или нет функцию; текст легенды функции (имеет смысл только, если функций несколько); цвет, форму и размер точек функции, а также цвет, стиль и ширину линий, соединяющих эти точки.

Окна, содержащие два графика

В программе могут быть два окна данного типа:
  • Вторые моменты
  • Исходный и восстановленный ряд

При активизации этого типа окна в меню главного окна добавляются пункты: Действия и Опции. С помощью первого пункта можно выравнивать верхний и нижний графики, включать/отключать показ функций верхнего графика. С помощью второго можно задавать опции для верхнего и нижнего графика, а также сохранять и загружать их. Описание этих опции полностью совпадает с описанием опций окон, содержащих один график.

Захватив мышью жирную красную черту, разделяющую графики, можно изменять соотношение высоты между верхним и нижним графиком.

Окна, содержащие мультиграфики

Этот тип окон используется для показа набора функций одинаковой длины. В программе могут быть два окна этого типа:
  • Собственные вектора
  • Главные компоненты

Существует четыре режима, в которых может быть показан набор функций. Во-первых, каждая функция может быть показана отдельно (режим Индивидуальная графика). Во-вторых, каждая функция может изображаться в паре с другой (Парная графика) тремя способами: два одномерных графика (Пара графиков 1D), один двухмерный (График 2D с бегающей точкой), много двухмерных (Графики 2D).

При активизации окна, содержащего мультиграфики, в меню главного окна добавляются пункты: Действия, Режим и Опции. Пункт Действия содержит два подпункта: Выровнять графики и Найти пару. Первый из этих подпунктов был описан ранее. С помощью второго можно быстро находить нужную пару функций, не прибегая к прокрутке графиков. Пункт Режим позволяет выбрать один из четырех возможных режимов показа набора функций. Каждому режиму соответствует иконка, расположенная на панели горячих клавиш окна мультиграфика.

Графические опции были подробно описаны выше. Здесь мы опишем только изменения, связанные с включением обычного графика в мультиграфик и с особенностями мультиграфики.

В режиме мультиграфики часть опций относится к самим графикам (Графика 1D, Графика 2D ), часть - к их совокупности (Мультиграфика инд., Мультиграфика пар), причем некоторые графические элементы как бы раздваиваются (например, заголовки есть как у графика, так и у мультиграфика). Заметим, что опции графика для каждого мультиграфика хранятся в одном экземпляре. В связи с этим, например, заголовки формируются автоматически (текст нельзя изменить), но шрифт и цвет менять разрешается. По этой же причине у графиков отсутствуют строки комментариев.

Каждая функция, входящая в мультиграфик, может быть показана как в своем масштабе, так и в общем (с учет других графиков). Для двухмерных картинок эта возможность существует для обеих осей X и Y. Для одномерных - только для оси Y. На соответствующих страницах опций добавлен переключатель Масштаб(Общий/Свой).

С помощью пункта меню Опции|Сочетание пар можно устанавливать разные варианты сочетания пар для парной графики.

В опциях Мультиграфика инд. и Мультиграфика пар на странице Расположение можно выбрать количество строк и количество столбцов графиков при размещении их на одном экране.

Печать графиков

Существует два способа печати графиков. Первый способ - через меню главного окна. Второй - через контекстное меню графика. Это меню вызывается щелканьем правой клавишей мыши на графике (если мышь настроена для левши, то щелкнуть нужно левой). При использовании первого способа будут напечатаны все графики, изображенные в активном окне. А при втором печатается только тот график, для которого было вызвано контекстное меню.

Выбрав пункт меню Файл|Установка принтера можно установить параметры принтера (какие именно - зависит от имеющегося принтера и версии Windows).

Графики нескольких окон можно послать на печать за один раз. Для этого необходимо открыть (развернуть) нужные окна и выбрать пункт меню Файл|Распечатать все.

В программе есть возможность просмотра перед печатью. Для вызова окна просмотра нужно выбрать подпункт меню главного окна Файл|Просмотр или пункт контекстного меню Просмотр. С помощью панели горячих кнопок этого окна можно распечатывать график, изменять ориентацию листа, переключать режим просмотра (т.н. Zoom in/Zoom Out), а также изменять отступы на листе бумаги. Регулировать отступы можно также с помощью захвата мышью соответствующих пунктирных линий. Необходимо отметить, что пропорции графика при просмотре и при печати всегда такие же, какие были перед просмотром (печатью). Менять пропорции при печати можно с помощью изменений размера графического окна стандартными средствами Windows.

Копирование и сохранение графиков

Буфер обмена (т.н. ClipBoard) используется многими приложениями как универсальный способ передачи различной информации другим программам. Наша программа не является исключением. Она позволяет передавать другим программам графики в двух форматах: BitMap (.bmp) и Windows MetaFile (.wmf). Из основных отличий между ними можно выделить следующие. График в формате Windows MetaFile не искажается при сжатии/растяжении как BitMap и занимает в памяти обычно намного меньше места. В свою очередь, формат BitMap поддерживается большим количеством программ, как более простой.

Чтобы скопировать график в буфер обмена, выберите пункт контекстного меню Копировать изображение... и уточните формат, в котором нужно передать график.

Графики можно сохранять в файл двумя способами. Первый - выбрать пункт меню главного окна Файл|Сохранить изображение... . Тогда будут сохранены все графики активного окна в формате BitMap. Второй способ сохранить график - воспользоваться контекстным меню и его пунктом Сохранить изображение.... В этом случае будет сохранен только один график и формат файла можно выбирать.

Просмотр и сохранение данных

Для просмотра и сохранения данных существует два способа. С помощью первого способа можно просмотреть и сохранить все данные, принадлежащие активному окну (команда меню главного окна Просмотр|Данные). С помощью второго - данные одного графика (через пункт контекстного меню Данные и Сохранить данные... ). При попытке сохранить данные в файл независимо от способа возникает окно Параметры сохранения в файл. В нем можно установить формат, точность вывода значений в файл, кодировку символов кириллицы и, если выбран внутренний формат, редактировать комментарии к данным.

Вернуться на главную страницу

Copyright © 1996-2004 GistaT Group. All rights reserved.