Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Проекция временного ряда

Читайте также:
  1. I. Мифы современного мира
  2. IX. Религиозный символизм и обеспокоенность современного человека
  3. Актуальность темы в условиях современного кризиса ЕС
  4. Возможные причины временного ослабления родов
  5. Группы кратковременного пребывания в дошкольных образовательных учреждениях разных видов
  6. Законодательная политика Временного Правительства России 1917г.
  7. Защитная проекция

С помощью обученной сети можно выполнить так называемую проекцию временного ряда (Time Series Projection). При этом сначала сеть отработа­ет на первых двенадцати входных значениях. В результате будет получен прогноз следующего значения. Затем это спрогнозированное значение вместе с предыдущими одиннадцатью входными значениями снова пода­ется на вход сети, и та опять выдает прогноз очередного значения. Такую проекцию можно повторять произвольное число раз, хотя очевидно, чем дальше, тем хуже будет качество прогноза. Этот прием можно применять только в том случае (и в нашем примере это так), когда значение парамет­ра Горизонт - Lookahead равно единице и входные переменные являются одновременно выходными.

Откройте окно Проекция временного ряда - Time Series Projection одно­именной командой меню Run.

 

Программа ST Neural Networks может начать проекцию временного ряда либо с некоторого места текущего набора данных, либо с блока данных, заданного в окне Прогнать отдельное наблюдение - Run One-off. Мы примем вариант по умолчанию, при котором проекция начинается с первого возможного блока значений (так что прогноз можно будет сравнить со всеми фактическими данными). Здесь же можно указать, какая из выходных переменных (если их не­сколько) будет изображена на графике (в нашей задаче мы имеем всего одну выходную переменную, так что выбора нет).

Единственный управляющий параметр, который нужно выбрать - это длина проекции (Length). В нашем временном ряду 144 наблюдения, 12 из которых будут фактически удалены при пре-процессировании, поэтому сравнивать результаты можно будет самое большее на 132 шагах. Однако можно проектировать ряд и за границы имеющихся данных, только при этом не с чем будет сравнивать результат.

Установим параметр Длина - Length равным 250 и нажмем кнопку Запуск -Run. Результат окажется весьма разочаровывающим. Хотя на начальном отрезке ряда прогноз сети очень хороший, к концу его он становится все хуже и хуже, и, в конце концов, функция превращается в горизонтальную линию.

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

Откроем окно Редактор сети - Network Editor (команда Сеть - Network... меню Правка - Edit), выберем третий слой (Layer), введем для параметра Функция активации - Act fn значение Линейная - Linear, и снова обучим сеть. В таком варианте сеть работает гораздо лучше, и проекция получа­ется вполне успешной на много месяцев вперед. И все же, в конце концов, произойдет ее насыщение за счет насыщения логистических функций предыдущих слоев. Область прогноза можно увеличить также с помощью функций окна Пре/пост-процессирование - Pre/Post Processing, изменив значения Мин/средн - Min/Mean и Макс/ст. откл. - Max/SD так, чтобы про­цедура масштабирования использовала меньшую часть области отклика логистической функции (тем самым оставляя больше возможностей для экстраполяции). Например, можно задать значения Мин/средн - Min/Mean и Макс/ст.откл. - Max/SD [0,4;0,6] для входной переменной и (0,25;0,75) для выходной. Этим мы выжмем из сети немного лучший результат, в то время как более радикальное вмешательство может привести к тому, что восприимчивость сети при обучении уменьшится слишком сильно.

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

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

Давайте сделаем это. Сначала нужно создать новую сеть и выбрать для нее тип Линейная - Linear. Обучим ее с помощью функции Псевдообрат­ные - Pseudo-Invert окна Радиальная базисная функция - Radial Basis Functions. Вы обнаружите, что эта сеть делает довольно хороший прогноз и разумно проектирует ряд вперед.

Откроем окно Прогнать набор данных - Run Data Set и дадим команду Запуск - Run для всего набора данных. Во втором справа столбце таблицы выходных значений выводится ошибка, то есть разность между ожидае­мыми и прогнозируемыми значениями. Выделите этот столбец и клави­шами CTRI.+C скопируйте его в буфер обмена. Затем откройте Редактор данных - Data Set Editor, поместите полосу вставки справа от столбца единственной пока переменной и вставьте столбец остатков как новую переменную. Выделите исходную переменную, поменяйте ее тип на Не­учитываемая - Ignore и удалите первые 12 наблюдений (для них остатки не определены). Затем с помощью окна Создать сеть - Create Network создайте новую сеть - многослойный персептрон с тремя слоями - и обу­чите его методом сопряженных градиентов или Левенберга-Маркара что­бы оценить остатки.

Результаты, которые будут выведены в окне Проекция временного ряда -Time Series Projection интерпретировать теперь гораздо труднее. Однако если открыть окно Статистики регрессии - Regression Statistics и нажать кнопку Запуск - Run, можно посмотреть на долю объясненной дисперсии.

У авторов этого текста параметр Отношение ст. откл. - S.D. Ratio полу­чился равным 0,24. т.e. многослойный персептрон на три четверти пред­сказал остаток ряда. Это означает, что исходный набор данных имел во многом нелинейную структуру. Итак, можно использовать гибридные модели, где сначала строится линейный прогноз, а затем он уточняется путем оценки остатка с применением многослойного персептрона.

ГЛАВА 4


Дата добавления: 2015-11-30; просмотров: 43 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.008 сек.)