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


 

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

46364. Активность сетей Петри. Задача о чтении/записи 1.96 MB
  Причиной рассмотрения сохранения в сети Петри было распределение ресурсов в операционной системе ЭВМ. Сеть Петри на рис. Тупик в сети Петри это переход или множество переходов которые не могут быть запущены.
46367. МОНТАЖ, ЭКСПЛУАТАЦИЯ И РЕМОНТ ГАЗОПЕРЕКАЧИВАЮЩИХ АГРЕГАТОВ ПРИРОДНОГО ГАЗА 284.5 KB
  Площадку укрупнительной сборки узлов трубопроводов и оборудования необходимо оснастить установками для автоматической сварки труб ПАУ601 ПАУ602 а также сварочными агрегатами типа АДД. В значительной степени работа газоперекачивающего агрегата зависит от качества фундамента. Рассмотрим монтаж ГПА блочноконвейерного типа на примере газоперекачивающего агрегата ГПАЦ63 А. Монтаж газоперекачивающего агрегата включает следующие технологические операции: доставку блоков ГПА в зону монтажа в пределы вылета стрелы крана; установку блоков ГПА...
46368. ФИЛОСОФСКИЕ ПРОБЛЕМЫ ФИЗИКИ И МАТЕМАТИКИ 426 KB
  Следовательно мы имеем здесь фактически окончательное доказательство единства материи. В материальном мире структурность неуничтожимо самовоспроизводится и это предстаёт уже как структурная организация или самоорганизация применительно к материи это синонимы материи. Структурность материи воспроизводится в качественно разнообразных атрибутивных формах дискретности. Это относительно отдельное дискретное автономное проявление материи.
46369. Требования к качеству подготавливаемой продукции скважин 10.22 MB
  Добыча нефти и нефтяного газа это совокупность технологических процессов осуществляемых на НГДП с целью получения этих продуктов в заданном количестве и определенного качества. При извлечении нефти из недр происходит изменение давления и температуры в результате чего продукция скважин из однофазного состояния переходит в двухфазное т. разгазированную нефть и нефтяной газ; жидкая фаза начнет состоять из нефти и пластовой воды в этом случае поток движущийся по сборным трубопроводам называют трехфазным; для получения товарной нефти и...
46370. ЭТАПЫ И ПРОЦЕДУРЫ ЭКОЛОГИЧЕСКОГО АУДИТА 927 KB
  Рекомендации по составлению договора на проведение экоаудита Практические рекомендации по проведению совещаний группы экоаудита с руководящим составом аудируемого объекта Инициирование проведения экоаудита осуществляется заказчиком клиентом на проведение экоаудита. При возникновении у клиента потребности в проведении экоаудита в той или иной области деятельности промышленного объекта связанной с воздействием на окружающую среду охраной окружающей средой и природопользованием им формулируются цели и задачи экоаудита и...
46371. Геополитика. Хрестоматия 5.07 MB
  Хрестоматия имеет целью содействовать углубленному представлению студента о влиянии природных факторов на внешнюю и внутреннюю политику государства. После распада Советского Союза произошло образование по сути дела нового государства Российской Федерации. Геополитика и безопасность Выделение специального раздела рассматривающего связь геополитики и безопасности носит как может показаться несколько искусственный характер поскольку почти все проблемы геополитики самым тесным образом связаны с безопасностью государства....
46372. Дневник-отчет о результатах производственной практики 245.5 KB
  Обучать практической ориентировке на себе; активизировать зрительноосязательное обследование ребенком своего тела учить рассматривать себя другого ребенка взрослого с соответствующим комментарием увиденного. Посетил занятий а тифлопедагога Дата Форма Тема ФИО Тифлопедагога Краткий анализ Подпись преподавателя 1 2 3 4 5 6 Группое Занятие по СБО Питание В ходе занятий решались следующие цели и задачи: познакомить детей с разновидностями хлебных изделий; показать способ приготовления теста вместе с детьми изготовить фигурное...