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

 

1. Теоретические сведения


1.1 Выборки с аномальными данными


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

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

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


Рис. 1. Оценка линии регрессии: 1 - без аномальной точки, 2 - с аномальной точкой


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

Однако общепринятого метода автоматического удаления выбросов не существует. Иногда удаляют значения, выходящие за границы ±2 стандартных отклонений вокруг выборочного среднего. В ряде случаев такая чистка абсолютно необходима. Однако в общем случае определение выбросов субъективно, и решение принимается индивидуально в каждом эксперименте.

Если данные резко выделяются на фоне обычных наблюдений, они могут быть исключены из выборки на предварительном этапе анализы измерений с учетом физической сущности измеряемой величины. Менее же грубые данные, находящиеся в зоне сомнений (рис. 2) распознаются сложнее и требуют применения специальных статистических процедур по обнаружению аномальных наблюдений. Но и после обнаружения аномальности данных, нельзя считать анализ завершенным и правдивым, если не дано объяснения полученным результатам[2].

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

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


Рис. 2. Разбиение данных на три группы


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


1.2 Обнаружение аномальных данных в одномерных выборках


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

Пусть наблюдения х1,… хn являются реализациями независимых случайных величин, подчиняющихся одинаковому нормальному N (µ, ?2) распределению. Нуль-гипотеза Н0 заключается в том, что M[xi] = µ, D[xi]=?2, i=1,…, n. Альтернативная гипотеза Н1 заключается в том, что одна или несколько величин имеют среднее µ+d. Это означает, что часть наблюдений описывается тем же нормальным распределением, но со сдвинутым на d средним значением, возможно, сопровождаемым изменением дисперсии. Если величина сдвига положительна, то говорят о максимальном аномальном наблюдении, иначе о минимальном[2].

1.2.1 Метод D-статистики

Пусть не известен ни факт наличия аномальных наблюдений ни место их нахождения. В этом случае для их обнаружения удобно использовать методы порядковых статистик. Одним из таких методов является метод D статистики.

Построим по выборке размерностью n вариационный ряд (т.е. отсортируем по возрастанию данные выборки). Проверим гипотезу о максимальном аномальном наблюдении, xn=max xi.

Предположим, что исследователь не имеет никакой дополнительной информации о математическом ожидании и о дисперсии значений в выборке, тогда:


Dn=(xn-xaverage)/S, где хaverage=1/n*?i=1nxi, S=?(1/n**?i=1n(xi-xaverage)2).


Распределение и процентные точки величины Dn получены К. Пирсоном и Н.В. Смирновым. Критические значения рассчитаны Н.В. Смирновым и Ф. Граббсом.

Вычисленная величина проверяется с критическим значением критерия при заданном уровне значимости (в данной курсовой работе уровень значимости равен 0,05) для данного объема выборки n. Если значение больше критического, нуль-гипотеза отвергается, значит значение существенно отклоняется от среднего и оно признается аномальным, затем исключается из выборки.

Критерий проверки минимального аномального значения реализуется по формуле D1=(xaverage-x1)/S для х1=min xi. Данная величина имеет тоже распределение, то и максимальное аномальное значение. Если нуль-гипотеза отверагется, то значение исключается из выборки.

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

При применении такой процедуры может быть возможен случай, когда аномальные значения группируются близко друг к другу, образуя скопления в отдалении от основной массы наблюдений. К таким данным последовательная процедура не чувствительна[2].


1.2.2 Метод Титьена-Мура

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

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


,


где - средняя, рассчитанная по «истинным» данным после отбрасывания из выборки наименьших (к) и наибольших - значений засоряющих совокупность данных:


.


1.2.3 Графический метод диаграмма «Ящик с усами»

Диаграмма «Ящик с усами» позволяет наглядно установить аномальные данные в выборке.

Строится вариационный ряд, определяется медиана, нижняя и верхняя квартили (Q1 и Q2) и межквартильный рамах. Находятся особые точки для определения диких данных: межквартильный размах IQR=Q2-Q1; шаг IQ*R=1,5*IQR; внутренние барьеры ?1=Q1-I*QR и ?2=Q2+I*QR; наружные барьеры Б1= Q1-2I*QR и Б2= Q2+2I*QR.

Если значения выходят за границы наружных барьеров, то они называются отскакивающими (выбросы). Наблюдения между внутренними и внешними барьерами (первыми и вторыми соответственно), называются внешними. Значения находящиеся внутри внутренних барьеров и лежащих к ним ближе всего называют примыкающими, эти значения являются «усами ящика».

При построении левый торец ящика это нижняя квартиль, правый - верхняя; минимальное значение лежащие в пределах внутренних барьеров - левый ус, максимальное - правый (примыкающие значения к левому внутреннему барьеру и к правому); медиана показывается линией внутри ящика, а отскакивающие и внешние наблюдения изображаются отдельными точками [2].


2. Описание алгоритмов верификации данных


2.1 Реализация алгоритма D-статистики


На основе теоретических сведений [2] приведенных в главе 1, руководствуясь формулами:


Dn=(xn-xaverage)/S,


где хaverage=1/n*?i=1nxi, S=?(1/n**?i=1n(xi-xaverage)2), и критическими значениями критерия Смирнова-Граббса был реализован алгоритм D-статистики для исключения аномальных данных итеративным способом.

Ниже представлена программная реализация данного алгоритма.


// сортировка шелла=Convert: ToInt32 (floor(nd/2.0))+1;(step>0)

{=1;(i<=nd-step)

{(mas[i]>mas [i+step])

{=mas[i];[i]=mas [i+step];[i+step]=temp;=1;

}=i+1;

};=Convert: ToInt32 (floor(Convert: ToDouble(step)/2.0));

};

// завершение сортировки шелла=step=0; temp=0.0;

upi=nd; dwi=1;=dmax=0.0;

flmin=flmax=true;

// цикл работы алгоритма де статистики

while (flmin||flmax)

{(flmax)

{=(mas[upi] - func_mo (dwi, upi, mas))/func_s (dwi, upi, mas, func_mo (dwi, upi, mas));(dmax<dtbl [upi-dwi+1])=false;

};(flmin)

{=(func_mo (dwi, upi, mas) - mas[dwi])/func_s (dwi, upi, mas, func_mo (dwi, upi, mas));(dmin<dtbl [upi-dwi+1])=false;

};(flmax)-;(flmin)++;(upi-dwi+1<3)

break;

};

// цикл работы алгоритма де статистики


Листинг 1 Программная реализация алгоритма D-статистики


Блок-схема алгоритма D-статистики представлена на рисунке 3.


Рис. 3. Алгоритм D статистики


2.2 Реализация алгоритма Титьена-Мура


На основе теоретических сведений [1] изложенных в главе 1, руководствуясь формулами расчета E-критерия, который используется, когда в выборке имеются предположительно грубые ошибки с наибольшими и наименьшими значениями, т.е. расположенные в верхней и в нижней части ранжированного ряда данных:


,


где - средняя, рассчитанная по «истинным» данным после отбрасывания из выборки наименьших (к) и наибольших - значений засоряющих совокупность данных:


.


Был реализован алгоритм Титьена-Мура для исключения выбранных пользователем аномальных данных из выборки.

Ниже представлена программная реализация данного алгоритма.


// сортировка шелла=Convert: ToInt32 (floor(nk/2.0))+1;(step>0)

{=1;(i<=nk-step)

{(mas[i]>mas [i+step])

{=mas[i];[i]=mas [i+step];[i+step]=temp;=1;

}=i+1;

};=Convert: ToInt32 (floor(Convert: ToDouble(step)/2.0));

};

// завершение сортировки шелла

// ++++++вычисление критерия титьена-мура+++++++++++++

i=step=1;=moint=smm1=smm2=0.0;(i<=nk)

{=movct+mas[i];++;

};=1;=movct/Convert: ToDouble(nk); // среднее ряда

i=dwi+1;(i<=(nk-upi)) // среднее ряда без аномальных значений (аномальных по предположению)

{=moint+mas[i];++;

};=1;=moint/Convert: ToDouble (nk - (dwi+upi));

i=dwi+1;(i<=(nk-upi)) // числитель для критерия

{=smm1+(mas[i] - moint)*(mas[i] - moint);++;

};=1;(i<=nk) // знаменатель

{=smm2+(mas[i] - movct)*(mas[i] - movct);

i++;

};_e=smm1/smm2;

// +++++++конец вычисления критерия титьена-мура++++++

//

Листинг 2 программная реализация алгоритма Титьена-Мура

Блок-схема алгоритма Титьена-Мура представлена на рисунке 4.


Рис. 4. Алгоритм Титьена-Мура


2.3 Реализация алгоритма построения диаграммы «Ящик с усами»


На основе теоретических сведений [2] изложенных в главе 1, руководствуясь формулами расчета

Был реализован алгоритм построения диаграммы «Ящик с усами» для обнаружения и исключения аномальных данных из выборки.

Ниже представлена программная реализация данного алгоритма.

// сортировка шелла=Convert: ToInt32 (floor(nb/2.0))+1;(step>0)

{=1;(i<=nb-step)

{(mas[i]>mas [i+step])

{=mas[i];[i]=mas [i+step];[i+step]=temp;=1;

}=i+1;

};=Convert: ToInt32 (floor(Convert: ToDouble(step)/2.0));

};

// завершение сортировки шелла=j=step=0; temp=0.0;

// вычисление значений для построения диаграммы(fmod (Convert: ToDouble(nb), 2.0)<0.000000000001) // если размер выборки четное число

{=nb/2;=(mas[i]+mas [i+1])/2.0;

}

{=(nb+1)/2;=mas[i];

};=Convert: ToInt32 ((Convert: ToDouble(nb)*25.0)/100.0);=mas[i]; q2=mas [nb-i+1];=q2-q1;=1.5*iqr;=q1-siqr; bi2=q2+siqr;=q1-2*siqr; be2=q2+2*siqr;

// завершение вычислений значений для построения диаграммы

// ++++++++++вычисление различных не стандартных значений++++++=j=step=1;(i<=nb) // примыкающие данные (усы)

{(mas[i]>bi1)

{=mas[i];;

};++;

};=nb;(i>0) // примыкающие (усы)

{(mas[i]<bi2)

{=mas[i];;

};-;

};=step=j=1;

v1=v2=sc1=sc2=0;(i<=nb) // внешние данные

{((mas[i]<bi1)&&(mas[i]>be1))

{>axvsFlexArray2->set_TextMatrix (1, j, Convert: ToString (mas[i]));=i;++;++;

};++;

};=nb;(i>0) // внешние данные

{((mas[i]>bi2)&&(mas[i]<be2))

{>axvsFlexArray2->set_TextMatrix (1, j, Convert: ToString (mas[i]));=i;++;++;

};-;

};=j=step=1;=0;(i<=nb) //anomal data

{(mas[i]<be1)

{>axvsFlexArray3->set_TextMatrix (1, j, Convert: ToString (mas[i]));=i;++;

};++;

};=nb;k=0;(i>0) //anomal data

{(mas[i]>be2)

{>axvsFlexArray3->set_TextMatrix (1, j, Convert: ToString (mas[i]));

k=i;++;

};-;

};

// +++завершение вычисления различных не стандартных значений++

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Листинг 3 программная реализация алгоритма построения диаграммы «Ящик с усами»

Блок-схема алгоритма построения диаграммы «Ящик с усами» представлена на рисунке 5.


Рис. 5 диаграмма «Ящик с усами»


3. Руководство программиста


3.1 Входные данные


Входными данными программы является ряд значений вещественного типа. Метод D статистика и метод Титьена-Мура работает только с вектором данных размерностью не более 50 элементов (обусловлено отсутствием таблиц критических значений критериев для больших размерностей). Графический метод - диаграмма «Ящик с усами» работает с количеством наблюдений не более 1000.

Для метода Титьена-Мура имеется еще два входных значения, k и k - количество аномальных данных снизу и сверху ранжированного ряда.

Для каждого из методов имеется входной текстовый файл - «input_box.txt», «input_dstat.txt», «input_ktm.txt».

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


FILE * find;^str1;_t ch;sc1;=0;=»»;='0';=1;_refresh();=fopen («input_ktm.txt», «rt»);(find!=0)

{((! feof(find))&&(ch!=65535)&&(sc1<51))

{=fgetc(find);((ch!=' ')&&(ch!=65535)&&(ch!=10))=str1+wchar_t(ch);((ch==' ')||(ch==10)||(ch==65535))

{>axfa1->set_TextMatrix (1, sc1, str1);++;=»»;

};

};(find);

};


Листинг 4 функция func_input()

Все функции ввода данных из файлов реализованы в заголовочном файле «Form1.h», это файл главной формы.

После чтения данных из файла, значения записываются в таблицу.

При выборе пункта меню любого из методов, данные из таблицы проверяются на корректность ввода с помощью функции «Func_strtofloat» входным параметром которой является строковое представление числа, а выходным значение типа «bool» true, если значение не корректно, или false, если строку можно преобразовать в число.

В листинге 5 приведен код являющийся обработчиком события выбора пункта меню «Анализ данных на основе критерия D статистики».


//init valueerrin;

int sci;prchislo;=0.0;=1;=false;

//end init value

while ((this->axfa1->get_TextMatrix (1, sci)!=»»)&&(sci<51)) // размерность по кол-ву не пустых столбцов первой строки

sci++;=sci-1;(sci<3)

errin=true; // ошибка если элементов меньше трех=sci; // размерность вектора для алгоритма де статистики=1;(sci<=nd) // проверка элементов таблицы и столбца на корректность ввода

{(fun_korrect_strfloat (this->axfa1->get_TextMatrix (1, sci))) errin=true;(! errin)

{=Convert: ToDouble (this->axfa1->get_TextMatrix (1, sci));((prchislo<-999999)||(prchislo>999999)) errin=true;

};++;

};

// фан_коррект_стрфлоат это функция проверки корректности ввода строки для преобразования

// в вещественное число, возвращает ИСТИНА если ошибка ввода; если есть хотя бы одна

// ошибка, она будет зафиксирована в переменной errin

if (! errin)

{=1;(sci<=nd)

{[sci]=Convert: ToDouble (this->axfa1->get_TextMatrix (1, sci)); // передача данных в модуль де статистики++;

};class AnomalStat: Fdstat ^fdst = gcnew (ref class AnomalStat: Fdstat);

fdst->ShowDialog();

};


Листинг 5 пункт меню «Анализ данных на основе критерия D статистики»

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


3.2 Основные функции программы


В заголовочном файле «Fdstat.h» реализовано несколько функций для обработки и визуализации данных, а также объявлено три переменных в области глобальной видимости.

Переменные вещественного типа с двойной точностью «double» «vctdstat» и «vctads» размерностью 51 элемент для хранения выборки, и аномальных значений соответственно. Переменная типа «int» «nd» хранящая размерность выборки.

Функция «func_mo» реализует расчет математического ожидания выборки, в качестве параметров принимает вектор вещественного типа длиной 51 элемент, нижнюю и верхнюю границу подсчета (целочисленного типа).

Данные с нижней границы по верхнюю границу суммируются и делятся на число наблюдений.

Функция «func_s» реализует расчет СКО выборки, в качестве параметров принимает вектор вещественного типа длиной 51 элемент, нижнюю и верхнюю границу подсчета (целочисленного типа), математическое ожидание выборки (вещественного типа).

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

Функция обработчик события «Load_Form» реализует основную работу метода D статистики. В таблицу заносятся критические значения критерия Смирнова-Граббса для уровня значимости 0,05. Затем ряд ранжируется по возрастанию с помощью сортировки Шелла (листинг 6). После ранжирования данных по возрастанию, в цикле с предусловием, рассчитывается критерий Смирнова-Граббса, и сравнивается с табличным для текущего размера выборки. Если расчетное значение превышает табличное, данное признается аномальным и исключается из выборки (цикл и его тело приведено в листинге 7).

// =Convert: ToInt32 (floor(nd/2.0))+1;(step>0)

{=1;(i<=nd-step)

{(mas[i]>mas [i+step])

{=mas[i];[i]=mas [i+step];[i+step]=temp;=1;

}=i+1;

};=Convert: ToInt32 (floor(Convert: ToDouble(step)/2.0));

};

//


Заключение


В ходе проделанной работы были реализованы алгоритмы верификации данных и разработана программа, включающая в себя:

)Метод D-статистики

2)Метод Титьена-Мура

)Графический метод - диаграмма «Ящик с усами»

Первый метод позволяет удалять аномальные значения на основе критерия Смирнова-Граббса, однако при группировке аномальных значений, возникает маскирующий эффект, который данный метод преодолеть не в силах.

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

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

аномальный статистика алгоритм приложение


1. Теоретические сведения 1.1 Выборки с аномальными данными Аномальными называются нетипичные, резко выделяющиеся наблюдения (выбросы, дикие данны

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ