77205

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

Курсовая

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

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

Русский

2015-02-02

102 KB

2 чел.

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

Декомпозиция временных рядов в СУБД 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


 

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

49118. Облачные вычисления, как относительно новые технологии 559 KB
  На сегодняшний день существует множество определений облачных вычислений. Поддержка облачных вычислений в сочетании с инвестициями в молодые компании создают быстро развивающуюся экосистему инновационных производств. Целью курсовой является анализ технологии реализации облачных вычислений в продуктах фирмы 1С.
49119. Программирование Sepam 20 443 KB
  В ходе выполнения лабораторной работы я ознакомилась и научилась программировать реле Sepam 20. Оно осуществляет защиту от всех основных типов аварийных режимов, имеет удобный интерфейс для программирования и ряд преимуществ перед старыми аппаратами.
49120. Изучение характеристик сигналов электроэнцефалографических, электромиографических, реографических и электрокардиографических исследований 1.04 MB
  В данной курсовой работе разработан алгоритм обработки и анализа биомедицинского сигнала. В пояснительной записке приведены основные характеристики исследуемого и образцового сигналов, их спектральный анализ, а так же фильтрация реального сигнала и его сжатие.
49121. Государственная регистрация, учет и оценка земель колхоза «Заветы Ленина» отделение 1 Котельничского района, Кировской области 2.44 MB
  Организация учета земель в землевладении землепользовании8 Первичный учет земель Текущий учет земель. Учет с обременениями в использовании Учет земель в административном районе с использованием компьютерных технологий.
49122. Методы локализации неисправностей на аппаратуре СВ и РМ 179.5 KB
  В данном варианте тракт прохождения сигнала включает следующие устройства: а ПОУ СВ; б ВчУ. б Вычислительное устройство ВчУ является основным операционным устройством СВ предназначенным для обработки цифровой и логической информации реагирования на сигналы прерывания внешних устройств и управления программами устройства обмена. ВчУ конструктивно состоит из двух блоков: двухъярусный блок ВчУ1; одноярусный блок ВчУ2. Тракт передачи сигнала в нашем случае включает следующие составные элементы ВчУ: Схема взаимодействия с ПОУ Сх...
49123. АНАЛИЗ И ДИАГНОСТИКА ФИНАНСОВО-ХОЗЯЙСТВЕННОЙ ДЕЯТЕЛЬНОСТИ ПРЕДПРИЯТИЯ. МЕТОДИЧЕСКИЕ УКАЗАНИЯ 1.45 MB
  Третья глава курсовой работы также может содержать предложения по совершенствованию методики анализа планирования прогнозирования и управления применению компьютерных методов сбора хранения и обработки информации использованию современных информационных технологий в профессиональной деятельности экономиста использованию передового отечественного и зарубежного опыта. руб. руб. руб.
49124. МАТЕМАТИЧЕСКИЕ ЗАДАЧИ И КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ В ЭЛЕКТРОЭНЕРГЕТИКЕ 189.58 KB
  В данном курсе лекции рассматриваются вопросы режимов электрических систем, т.е. излагаются некоторые математические методы и приемы, непосредственно применяемые в электрических системах. Так, например, не рассматриваются режимы электрических станций
49126. Исследование факторов формирования патриотических ориентаций личности 132 KB
  Исходя из вышесказанного, следует отметить, что формирование гражданского патриотизма, уважение к символике государства на сегодняшний день в России не являются определяющими элементами в воспитании личности. Необходимо смещение вектора общественного развития в сторону воспитания патриотизма