77205

Декомпозиция временных рядов в СУБД Oracle

Курсовая

Информатика, кибернетика и программирование

Целью данной работы являлось создание пакета процедур и функций с помощью которых можно было бы легко и эффективно манипулировать временными рядами в СУБД ORCLE. Для хранения информации о рядах создает отдельная таблица Timeseries в которой хранятся имя или идентификатор ряда...

Русский

2015-02-02

102 KB

3 чел.

Курсовая работа

Декомпозиция временных рядов в СУБД Oracle.

Подкорытов Сергей, 444гр

Научный руководитель: Графеева Н.Г.

СПбГУ

Математико-Механический факультет

2009г

Вступление.

Одним из типов информации, которую приходится обрабатывать в базах данных, являются временные ряды, то есть дискретные измерения некоторой величины. Обычно такие наблюдения проводятся через определённый фиксированный период времени (минута, час, день, месяц и т.д.). Примерами таких рядов являются потребления электроэнергии, напряжение в сети, объем пассажиропотока, курсы валют, цены на газ, нефть и т.п. К сожалению, в СУБД отсутствуют  удобные средства для хранения и исследования временных рядов.

В качестве конкретной СУБД был выбран Oracle, так как он хорош при хранении больших объемов информации, а также из-за существования языка PL\SQL, позволяющего создавать процедуры и функции.

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

Хранение данных.

Для хранения информации о рядах создает отдельная таблица Timeseries, в которой хранятся имя или идентификатор ряда, величина шага и его описание, например:

Name:

Delta:

Description:

Electro

1

Потребление электроэнергии. Шаг – 1 месяц.

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

Для хранения каждого ряда, заводится отдельная таблица с двумя полями: key и value. Поле key используется для упорядочивания значений по времени, а value хранит непосредственно сами значения. Поле key также является первичным ключом таблицы, что гарантирует упорядоченность значений (нет возможности сохранить два значения с одинаковым ключом). Для первичного ключа Oracle’ом автоматически создается индекс, который также используется для быстрого упорядочивания значений при обращении к ним.

Модели сезонности.

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

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

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

Метод скользящего среднего.

Метод скользящего среднего используется для определения тренда. Суть метода в следующем: берем первые n элементов ряда (будем называть n – величиной окна) и вычисляем их среднее значение. Пусть первое значение соответствует моменту времени , а последнее , тогда полученное среднее значение будет соответствовать . Теперь сдвинемся на один шаг, и повторим то же самое для значений , вычислив  тем самым .

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

Для этого заметим  следующее:

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

где

Выделение сезонной компоненты (для рядов шагом 1 месяц).

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

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

, где .

Полученные таким образом  являются оценками сезонных индексов,  причем

Пример

Рассмотрим потребление электроэнергии в целом по России  за период 1991 по 1999 годы. График этого ряда изображен на рисунке 1 синим цветом. Очевидно наличие четко выраженной сезонности. Желтым цветом выделен тренд оцененный методом скользящего среднего.

Рисунок

На рисунке 2 изображены оцененные сезонные индексы. На рисунке 3 синим цветом изображены исходные данные, а фиолетовым  - сумма оцененных сезонной компоненты и тренда. Видно, что оцененные значения близки к настоящим.

Рисунок

Рисунок 3

Описание процедур и функций пакета.

  •  Процедура Init()

 создает в схеме текущего пользователя таблицу Timeseries.

  •  Процедура CreateSeries(name varchar, delta number, description varchar)

Создает в схеме текущего пользователя новый ряд, то есть пользователя таблицу с именем name, и заносит в таблицу Timeseries имя и характеристики нового ряда.

  •  Процедура MovingAverage(source varchar, windowSize pls_integer, dest varchar)

Выделяет из ряда source тренд методом скользящего среднего и записывает его в таблицу dest. Параметр windowSize отвечает за размер скользящего окна. Ряды source и dest должны быть созданы заранее, с помощью процедуры CreateSeries. Если ряд dest не пуст, то результат будет дописан в конец.

  •  Процедура  Seasonal(source varchar, trend varchar, dest varchar)

Из ряда source, при помощи заранее посчитанного тренда trend, выделяет сезонную компоненту и дописывает её в таблицу dest.

  •  Процедура Kill() удаляет из базы все данные ссылки на которые хранятся в таблице Timeseries и затем её саму.
    •  Процедура AggregateSeriesByAvg(source varchar, newDelta number, dest varchar) укрупняет ряд source, беря за новые значение среднее ряда за число шагов, указанное в параметре newDelta.

Список литературы.

  1.  В. И. Суслов, Н. М. Ибрагимов, Л. П. Талышева, А. А. Цыплаков Эконометрия

Издательство: Новосибирский государственный университет, 2005 г.

2. PL/SQL User's Guide and Reference


 

А также другие работы, которые могут Вас заинтересовать

19428. Представление о программировании: язык программирования (на примере одного из языков высокого уровня) 32 KB
  Представление о программировании: язык программирования на примере одного из языков высокого уровня; примеры несложных программ с линейной ветвящейся и циклической структурой. Для представления алгоритма в виде понятном компьютеру служат языки программирования. С
19429. Основные компоненты компьютера, их функциональное назначение и принципы работы. Программный принцип работы компьютера 306 KB
  Основные компоненты компьютера их функциональное назначение и принципы работы. Программный принцип работы компьютера. С давних времен люди стремились облегчить свой труд. С этой целью создавались различные машины и механизмы усиливающие физические возможности челов...
19430. Программное обеспечение компьютера, состав и структура. Назначение операционной системы. Командное взаимодействие пользователя с компьютером 673 KB
  Программное обеспечение компьютера состав и структура. Назначение операционной системы. Командное взаимодействие пользователя с компьютером. Графический пользовательский интерфейс. В 5060е годы когда компьютер еще назывался ЭВМ электронновычислительная машина он...
19431. Понятие файла и файловой системы организации данных (папка, иерархическая структура, имя файла, тип файла, параметры файла) 76 KB
  Понятие файла и файловой системы организации данных папка иерархическая структура имя файла тип файла параметры файла. Основные операции с файлами и папками выполняемые пользователем. Понятие об архивировании и защите от вирусов. Все программы и данные хранятся в д...
19432. Информационные ресурсы общества. Основы информационной безопасности, этики и права 60.5 KB
  Информационные ресурсы общества. Основы информационной безопасности этики и права. Информационные ресурсы. Ресурс это запас или источник некоторых средств. Традиционно различают следующие виды общественных ресурсов: материальные энергетические трудовые финанс
19433. Технологии работы с текстовыми документами. Текстовые редакторы и процессоры: назначение и возможности 44 KB
  Технологии работы с текстовыми документами. Текстовые редакторы и процессоры: назначение и возможности. Основные структурные элементы текстового документа. Шрифты стили форматы. Основные приемы редактирования документа. Встраиваемые объекты. Понятие гипертекста. Дл
19434. Технологии работы с графической информацией. Растровая и векторная графика. Аппаратные средства ввода и вывода графических изображений 303 KB
  Технологии работы с графической информацией. Растровая и векторная графика. Аппаратные средства ввода и вывода графических изображений. Прикладные программы работы с графикой. Графический редактор. Основные инструменты и режимы работы. Раздел информатики занимающийс...
19435. Табличные базы данных (БД): основные понятия (поле, запись, первичный ключ записи); типы данных. Системы управления базами данных и принципы работы с ними 113.5 KB
  Табличные базы данных БД: основные понятия поле запись первичный ключ записи; типы данных. Системы управления базами данных и принципы работы с ними. Поиск удаление и сортировка данных в БД. Условия поиска логические выражения; порядок и ключи сортировки. Любой из на...
19436. Технология обработки информации в электронных таблицах (ЭТ). Структура электронной таблицы. Типы данных: числа, формулы, текст 212.5 KB
  Технология обработки информации в электронных таблицах ЭТ. Структура электронной таблицы. Типы данных: числа формулы текст. Правила записи формул. Основные встроенные функции. Абсолютные и относительные ссылки. Графическое представление данных. При работе с документ...