Верификация данных

 

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Саратовский государственный технический университет им. Гагарина Ю.А.

Факультет «Электронной техники и приборостроения»

Специальность «Автоматизированные системы обработки информации и управления»

Кафедра «Системотехника»






КУРСОВАЯ РАБОТА

по дисциплине «Теория информации»

на тему

Верификация данных




Работу выполнил: Катунов С.Н.

Студент группы АСУ-31

Руководитель работы

к.т.н., доцент Васильев Д.А.






Саратов - 2012


ЗАДАНИЕ


на курсовое проектирование

по дисциплине «Вычислительная математика»

Студенту учебной группы АСУ-31 Факультета ЭТиП Катунову Сергею

Николаевичу

Тема работы: Верификация данных

Целевая установка и исходные данные

Цель

Разработка программного продукта реализующего методы верификации данных.

Исходные данные

1.Словесное описание задания

. Краткие теоретические сведения о проблеме аномальности данных


№№ п.п.Перечень чертежей, подлежащих разработкеФорматКоличество1.Блок-схема алгоритма построения диаграммы «Ящик с усами»А112.Блок-схемы алгоритмов критерия D статистики и критерия Титьена-МураА11

№№ п.п.Содержание расчетно-пояснительной записки (перечень вопросов, подлежащих разработке)Консультант1.Разработка алгоритмов верификации данных2.Разработка программы реализующий алгоритм верификации данных3.Организация входных и выходных данных программы

Основная рекомендуемая литература

1.Каримов Р.Н., Шварц, «Статистика для врачей, биологов и не только» ч.1.

Руководитель курсовой работы, к.т.н., доц. Д.А. Васильев

Задание принял к исполнению «10» марта 2012 г.

Студент С.Н. Катунов

ФорматЗонаПоз.ОбозначениеНаименованиеКол.Примечание1Пояснительная запискаРазработка алгоритмов и реализация методов верификации данных1А42Графический материалБлок-схема алгоритма построения диаграммы «Ящик с усами» Блок-схемы алгоритмов D статистики и Титьена-Мура1А13Электронная версия Диск CD-R 700 MbПояснительная записка к курсовой работе в формате pdf и doc Блок-схемы алгоритмов верификации данных1



РЕФЕРАТ


Пояснительная записка содержит 34 страниц, 13 иллюстраций, 11 листингов кода приложения.

Ключевые слова: верификация, аномальность данных, критерий Титьена-Мура, критерий Смирнова-Граббса, метод D-статистики, ящик с усами, квартиль, математическое ожидание, СКО, выборка, объем, статистика, медиана, среднее, данные.

Программа разработана для анализа одномерных данных, с целью выявления в них аномальности при помощи метода D-статистики, метода Титьена-Мура, и диаграммы «Ящик с усами»




СОДЕРЖАНИЕ


Введение

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

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

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

.2.1 Метод D-статистики

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

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

Глава 2. Реализация алгоритмов верификации данных

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

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

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

Глава 3. Описание программы

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

.1.1 Входные данные

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

.1.3 Выходные данные

.2 Руководство пользователя

.2.1 Входные данные

.2.2 Выходные данные

Заключение



Введение


Статистика - отрасль знаний, в которой излагаются общие вопросы сбора, измерения и анализа массовых статистических (количественных или качественных) данных <#"justify">Статистические методы анализа данных применяются практически во всех областях деятельности человека. Их используют всегда, когда необходимо получить и обосновать какие-либо суждения о группе (объектов или субъектов) с некоторой внутренней неоднородностью.

Целесообразно выделить три вида научной и прикладной деятельности в области статистических методов анализа данных (по степени специфичности методов, сопряженной с погруженностью в конкретные проблемы):

а) разработка и исследование методов общего назначения, без учета специфики области применения;

б) разработка и исследование статистических моделей реальных явлений и процессов в соответствии с потребностями той или иной области деятельности;

в) применение статистических методов и моделей для статистического анализа конкретных данных.

Прикладная статистика <#"justify">Глава 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. Описание алгоритмов верификации данных


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


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


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


и критическими значениями критерия Смирнова-Граббса был реализован алгоритм D-статистики для исключения аномальных данных итеративным способом.

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

Листинг 1 программная реализация алгоритма 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]-_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)-[dwi])/func_s(dwi,upi,mas,func_mo(dwi,upi,mas));(dmin<dtbl[upi-dwi+1])=false;

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

break;

};

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

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

++++++++++++++++


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


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

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


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


,


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


.


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

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

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


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

++++++++++++++++

//сортировка шелла=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=moint+mas[i];

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;

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

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

++++++++++++++++


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



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


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


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

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

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


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


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

++++++++++++++++

//сортировка шелла=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)//если размер

выборки четное число

{ верификация аномальный одномерный статистический

i=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;++;

};-;

};

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

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

++++++++++++++++


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


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



Глава 3. Описание программы


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


.1.1 Входные данные

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

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

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

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

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


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

+++++++++++++++* 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);1++;

str1="";

};

};

fclose(find);

};

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

+++++++++++++++


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

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

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

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

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


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

+++++++++++++++

//init valueerrin;sci;prchislo;=0.0;=1;=false;

//end init value((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));//передача данных в модуль де статистики

sci++;

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

fdst->ShowDialog();

};

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

+++++++++++++++


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



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

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

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

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

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

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

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

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

Листинг 6 сортировка Шелла


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

+++++++++++++++=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));

};

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

+++++++++++++++


Листинг 7 цикл исключения аномальных данных


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

+++++++++++++++(flmin||flmax)

{(flmax)

{=(mas[upi]-_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)-[dwi])/func_s(dwi,upi,mas,func_mo(dwi,upi,mas));(dmin<dtbl[upi-dwi+1])=false;

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

break;

};

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

+++++++++++++++


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

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

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

Сортировка реализована аналогично сортировке в заголовочном файле «Fdstat.h».

Критические значения критерия Титьена-Мура заносятся в матрицу для уровня значимости 0,05.

Работа метода реализована в обработчике события нажатия кнопки «Анализ данных».

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

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

В листинге 8 приведен код расчета критерия Титьена-Мура.

Листинг 8 критерий Титьена-Мура:


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

++++++++++++++++

i=step=1;

movct=moint=smm1=smm2=0.0;(i<=nk)

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

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

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

по предположению)

{

moint=moint+mas[i];

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;

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

++++++++++++++++


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

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

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

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

Листинг 9 диаграмма «Ящик с усами»:


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

+++++++++++++++=j=step=0; temp=0.0;

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

if (fmod(Convert::ToDouble(nb),2.0)<0.000000000001)//если размер

выборки четное число

{

i=nb/2;

mdn=(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;++;

};-;

};

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

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

+++++++++++++++


.1.3 Выходные данные

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

Функция «func_graph» реализует рисование графика значений, и отмечает на нем аномальные данные, в качестве входных параметров принимает 4 аргумента: массив вещественного типа размером 51, и три целочисленных переменных - нижняя граница вывода, верхняя, и размер выборки.

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

В листинге 10 приведен код данной функции.

Листинг11 функция рисования графика:


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

++++++++++++++++

int sci,scj;

int numb;=scj=numb=1;(scj<51)

{[scj]=0.0;++;

};=1;>chart1->Series[0]->Points->Clear();>chart1->Series[1]->Points->Clear();>chart1->Series[2]->Points->Clear();(sci<=nn)

{((sci<nint)||(sci>uint))

{[scj]=mass[sci];++;

};++;

};=0;=nint-1+nn-uint;=sci=1;(sci<=nn)

{>chart1->Series[0]->Points->AddXY(sci,vctdstat[sci]);>chart1->Series[1]->Points->AddXY(sci,vctdstat[sci]);=1;(scj<=numb)

{(vctdstat[sci]==vctads[scj])>chart1->Series[2]->Points->AddXY(sci,vctdstat[sci]);++;

};++;

};

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

++++++++++++++++


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

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

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

Листинг 11 вывод данных в файл:


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

++++++++++++++* fout;^str1;_t ch;lens;sc1,sc2;c;="";='0';='0';=sc2=0;=nint;=fopen("output_ktm.txt", "wt");(fout!=0)

{(sc1<=nkm)

{=Convert::ToString(vctx[sc1]);=0;=str1->Length;(sc2<lens)

{=Convert::ToChar(str1->Substring(sc2,1));=Convert::ToInt32(ch);(c,fout);++;

};=' ';(c,fout);

sc1++;

};(fout);

};

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

++++++++++++++


.2 Руководство пользователя


Для запуска программы войдите в папку с установленной программой, либо запустите ярлык в меню «Мои программы», либо воспользуйтесь ярлыком на рабочем столе.

На рисунке 6 показаны фалы в папке программы. Текстовые файлы это три входных и три выходных файла для каждого из методов программы.


Рис. 6 файлы в папке с установленным приложением


Запустите приложение двойным кликом на файле AnomalStat.exe. Затем закройте всплывающее окно (рис. 7).

Рис. 7 всплывающее окно


.2.1. Входные данные

Входными данными программы является вектор значений вещественного типа. Данные значения можно ввести непосредственно в таблицу, ручным вводом (рис.8) или считать (рис.9) из одного из файлов входных данных.


Рис. 8. ручной ввод


Рис. 9. считывание данных из файла


Для редактирования текстового файла воспользуйтесь любым текстовым редактором. Количество чисел для метода D статистики и метода Титьена-Мура не должно превышать 50.

Внимание!!! Все данные вводятся последовательно через пробел, дробная часть отделяется от целой запятой.

Все значения должны находится в диапазоне от -1000000 до +1000000.

Число данных для диаграммы «Ящик с усами» не должно превышать 1000 элементов.

После ввода выберите один из пунктов меню и нажмите вкладку «Анализ данных».

Для метода Титьена-Мура требуется ввести количество аномальных данных в два поля, сверху и снизу ряда (рис.10). Сумма этих числе не должна превышать 10. Значения принимают величину от 0 до 10. Числа являются целыми.


Рис. 10. количество аномальных данных


.2.2 Выходные данные

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


Рис. 11. выходной фал метода Титьена-Мура

Аномальные данные выводятся в таблицу, и отмечаются на графике (рис. 12).


Рис. 12. Анализ данных с помощью метода D статистики


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


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



Заключение


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

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

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

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

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

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

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

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

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



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


1.Российский журнал «Вопросы оценки» под редакцией М.Ю. Колотова, номер «О повышении достоверности оценки рыночной стоимости методом сравнительного анализа» - С.В. Грибовский, Н.П. Баринов

2.Каримов, Шварц, «Статистика для врачей, биологов и не только» ч.1.


Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Саратовский государственный технический университет им

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

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

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

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

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