Дата зміни інформації:

Кінда В. В., Якубець А. О. “ПОБУДОВА В СИСТЕМІ SAS ПРЕДИКТИВНОЇ МОДЕЛІ ПРОГНОЗУВАННЯ ЗЛОЧИННОСТІ НА ОСНОВІ МЕТОДУ ПОДІБНИХ ТРАЄКТОРІЙ”

ІV курс, Інститут прикладного системного аналізу,

Терентьєв О. М., 

Національний технічний університет України «Київський політехнічний інститут ім. Ігоря Сікорського»

Київ

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

Для прогнозування за методом подібних траєкторій були обрані наступні дані: тестовий графік AIR з бібліотеки SASHELP в місячному перерізі в період з січня 1949 по грудень 1960 (рис. 1).

Рис. 1. Графік тестових даних AIR

А також дані про кількість зареєстрованих злочинів, пов’язаних з наданням публічних послуг у місті Дніпро в місячному перерізі в період з січня 2002 по січень 2012 років (рис. 2). Обидва набори даних представлені у вигляді двох колонок «дата» – «значення».

Рис. 2. Графік правопорушень, пов’язаних з наданням публічних послуг у місті Дніпро

У результаті імпорту дані представлені у прийнятному для платформи SAS вигляді. Після представлення даних «вручну» треба задати параметри для роботи методу подібних траєкторій (довжина алфавіту, величина прогнозу, ширина опорного відрізка):

data tmp_calc_diff;

            set sasuser.input;

            retain prev_quantity;

            diff = prev_quantity – quantity;

            prev_quantity = quantity;

run;

Далі відбувається підрахунок перших різниць вхідного вектору та запис результатів у нову змінну diff. Суть методу полягає у визначені діапазонів, що відповідають конкретній літері алфавіту B={bk} з наступним співставленням кожної ділянки з опорним вектором <ei>. Для цього слід знайти максимальне та мінімальне значення серед даних вектору перших різниць:

          proc means data=tmp_calc_diff min max noprint;

var diff;

output out=tmp_min_max min=min max=max;

run;

data _null_;

            set tmp_min_max ;

            call symput(‘max’,max+1);

            call symput(‘min’,min-1);

run;

На основі вектора перших різниць, а також величини алфавіту визначаємо ширину інтервалів для кожної букви алфавіту з метою подальшого прогнозу. Для цього в пакеті SAS передбачено інструментарій для побудови власного (користувацького) формату даних. Для того, щоб застосувати новостворений формат до вектору перших різниць потрібно виконати наступний код:

data tmp_format_base;

            retain FMTNAME ‘MYFORMAT’ type ‘n’;

            drop var bound rank;

            var = (&max – &min) / &interv_num;

            bound = &min;

            rank = –1;

            do until(bound > &max);

                        rank + 1;

                        LABEL = put(rank, 2.);

                        START = bound;

                        bound = bound + var;

                        END = bound;

                        output;

            end;

run;

proc format cntlin=tmp_format_base cntlout=tmp_format;

data tmp_res;

            set tmp_calc_diff;

            format diff MYFORMAT10.;

run;

У результаті, отримуємо повністю сформований алфавіт з конкретними значеннями діапазонів, що однозначно задають конкретну літеру алфавіту.

Після створення алфавіту можна приступати до реалізації головної частини алгоритму – а саме пошуку відповідностей (схожої поведінки) між вхідними даними та опорним вектором:

data _null_;

          vector_base = substr(symget(‘diff_str’),3);

          vector_search = symget(‘vector’);

          res = 0;

          do until(find(vector_base, vector_search, res+1) = 0);

                   res = find(vector_base, vector_search, res+1);

                   put res=;

          end;

          put ‘end’;

run;

В результаті роботи алгоритму були побудовані прогнозні моделі, характеристики яких наведені у таблиці 1.

Таблиця 1

Статистики прогнозних моделей

Назва RMSE MAPE DW R2
Тестовий графік AIR ql=3, ww=3 9881 16,50169 0,808534 0,345968
Тестовий графік AIR ql=3, ww=7 3009 9,748089 0,996792 0,673292
Графік кількості правопорушень у м.Дніпро ql=5, ww=3 1935 114,1657 1,03231 0,72647
Графік кількості правопорушень у м.Дніпро ql=7, ww=3 960,6833 82,12633 0,960026 0,864263

Як видно з таблиці 1, за фіксованої довжині опорного вектору значення RMSE та MAPE спадають за зростання алфавіту, тобто точність прогнозу покращується; за фіксованої довжині опорного вектору значення критерію R2 наближається до одиниці при збільшенні кількості букв в алфавіті, тобто зростає точність прогнозу, за результатами роботи методу на даних числових рядах не можливо зробити остаточний висновок стосовно автокореляції за статистикою DW, доцільним є продовження досліджень в обраному напрямку.

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

  1. Довгий С.О., Бідюк П.І., Трофимчук О.М., Савенков О.І. Методи прогнозування в системах підтримки прийняття рішень. – К: Азимут-Україна, 2011. – 607 с.
  2. Терентьев А.Н., Домрачев В.Н., Костецкий Р.И. SASBase: Основы программирования (научное издание). – К: Эдельвейс, 2014. – 304 с.
  3. Компанія SAS [Електронний ресурс] : офіційний web-сайт. – Режим доступуhttp://www.sas.com/offices/europe/russia/company/index.html.
  4. Довгий С.О. Системи підтримки прийняття рішень на основі статистично-ймовірнісних методів / Довгий С.О., Бідюк П.І., Трофимчук О.М. – К.: Логос, 2014. – 419 с

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Введіть цифри, що зображені у квадратах *