Диплом на тему Разработка программно-технологического обеспечения статистического описания объектов посредством
Работа добавлена на сайт bukvasha.net: 2015-06-30Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
Учреждение образования
«Гомельский государственный университет имени Франциска Скорны»
Математический факультет
Кафедра математических проблем управления
Допущена к защите
Зав. кафедрой_____________Максимей И.В.
«____»_____________ 200 _ г.
Разработка программно-технологического обеспечения статистического описания объектов посредством Visual Basic for Application Excel
ДИПЛОМНАЯ РАБОТА
Исполнитель:
студентка группы М-52 ______Бондарева Юлия Викторовна
Научный руководитель:
кандидат физико-
математических наук
доцент кафедры МПУ____________Осипенко Наталья Борисовна
Рецензент:
доктор технических наук,
профессор, профессор
кафедры ВМП____________Можаровский В.В.
Гомель 2007
РЕФЕРАТ
Ключевые слова: кластер – анализ, близость между объектами, расстояние, нормировка, алгоритм прямой классификации, нормальная вероятностная бумага, математическое ожидание, дисперсия, макрос, средства автоматизации, лабораторная работа.
Объект исследования: статистическое описание экспериментальных данных.
Методы исследования: метод K – ближайших соседей, метод нормальной вероятностной бумаги, непараметрические методы оценки плотности распределения
Цель дипломной работы: разработка комплекса обучающих средств для студентов, помогающих в изучении и освоении проблематики:
теории классификации на примере алгоритма прямой классификации упрощенным методом K – ближайших соседей;
оценки функции плотности распределения вероятностей с помощью непараметрических методов;
параметрической аппроксимации функции плотности распределения вероятностей с помощью нормальной вероятностной бумаги;
интерпретации полученных результатов эмпирической статистической обработки данных.
Выводы: разработаны обучающие средства, позволяющие:
преподавателю упростить процедуру проверки правильности выполнения работ;
студентам упростить решение задачи статистического описания;
студентам предоставить наглядные обучающие средства для изучения влияния нормировки, начального разбиения выборки, выбора расстояния на результаты классификации.
СОДЕРЖАНИЕ
Введение
1 Типы задач статистической обработки
1.1 Статистическая аппроксимация законов распределения
1.1.1 Гистограмма и полигон частот
1.1.2 Оценка плотности распределения вероятностей «ядерного» типа
1.2 Основные теоретические сведения по теории классификации
1.2.1 Основные понятия кластерного анализа и проблема измерения близости между объектами
1.2.2 Типы методов кластер – анализа
1.2.3 Систематизация алгоритмов
1.2.4 Алгоритмы прямой классификации
1.2.5 Алгоритм иерархической классификации.
1.2.6 Алгоритм k-средних
2 Алгоритмы методов статистического описания выборки
2.1 Алгоритмы непараметрической аппроксимации функции плотности распределения вероятностей
2.2 Алгоритм параметрической аппроксимации функции плотности распределения вероятностей на основе вероятностной бумаги
2.3 Упрощенная схема алгоритма прямой классификации
3 Статистическое описание выборки на основе VBA
3.1 Описание средств автоматизации непараметрической аппроксимации функции плотности распределения вероятностей
3.1.1 Описание средств автоматизации равноинтервальной гистограммы и полигона частот
3.1.2 Описание средств автоматизации равнонаполненной гистограммы и полигона частот.
3.1.3 Описание средств автоматизации «ядерной» функции плотности
3.2 Описание средств автоматизации параметрической аппроксимации функции плотности распределения вероятностей на основе нормальной вероятностной бумаги
3.3 Описание средств автоматизации алгоритма прямой классификации
4 Апробация средств автоматизации в виде макросов
4.1 Апробация программного обеспечения средствами встроенного пакета анализа данных Excel
4.1.1 Апробация программного обеспечения алгоритма прямой классификации
4.1.2 Апробация программного обеспечения параметрической аппроксимации функции плотности распределения вероятностей на основе нормальной вероятностной бумаги
4.1.3 Апробация программного обеспечения непараметрических методов статистической аппроксимации законов распределения
Заключение
Список использованных источников
Приложение А Апробация программного обеспечения алгоритма прямой классификации средствами пакета анализа данных STATISTICA……….
Приложение Б Текст программы макроса для параметрической аппроксимации функции плотности распределения вероятностей на основе нормальной вероятностной бумаги……………………………………….
Приложение В Текст программы макроса для алгоритма прямой классификации ………………………………………………………………..
Приложение Г Текст программы макроса для непараметрических методов статистического описания выборки...............................................................
ВВЕДЕНИЕ
Всё множество задач статистической обработки данных сводится к задачам описания и прогноза. На начальном этапе статистического исследования ставится цель определения объекта и его описания. В том случае, если объектом исследования является выборка, то методами разведочного (предмодельного) статистического анализа данных необходимо определить вероятностную и геометрическую природу обрабатываемых данных, а также выяснить, однородны ли имеющиеся эмпирические данные, т.е. целесообразно ли разбиение совокупности на части, представляющие собой кластеры. В последствии на основе этих заключений формируются адекватные реальности рабочие допущения, на основе которых осуществляется дальнейшее исследование. Поэтому стала актуальной проблема разработки средств автоматизации, позволяющих построить статистическую модель в виде эмпирического описания структуры данных, которую необходимо в ходе статистического исследования верифицировать.
Если объектом исследования является выборка, которая принадлежит к нормальному распределению, то задача статистической обработки сводится к оценке её параметров. Для оценки параметров выборки можно воспользоваться методом нормальной вероятностной бумаги. В том же случае, когда конкретный вид функции распределения неизвестен, и о виде распределения можно сделать лишь самые общие предположения, то при таких условиях можно воспользоваться аппроксимациями неизвестной функции распределения на основе выборки , называемыми непараметрическими, а именно - гистограммой и полигоном частот для статистических данных с разбиением на интервалы равной длины, или с разбиением на равнонаполненные интервалы, непараметрической оценкой функции плотности распределения вероятности для статистических данных методом прямоугольных вкладов.
Эти методы предусматривают однообразные и рутинные вычисления, поэтому стала актуальной разработка средств автоматизации проверки правильности производимых расчётов.
Работа посвящена созданию обучающих средств, помогающих студентам в изучении и освоении метода оценки параметров выборки с помощью нормальной вероятностной бумаги, непараметрических методов аппроксимации функции распределения и метода классификации экспериментальных данных упрощенным алгоритмом K – ближайших соседей.
В качестве среды реализации алгоритма был выбран встроенный пакет анализа данных Excel, потому что он является базовым компонентом Microsoft Office и доступен большинству обычных пользователей.
Постановка задачи:
Изучить литературу о типах методов кластерного анализа, об алгоритмах прямой классификации.
Изучить литературу о статистической аппроксимации законов распределения, гистограмме и полигоне частот, оценке плотности распределения вероятностей «ядерного» типа, о параметрических методах оценки плотности распределения вероятностей.
Разработать алгоритмы программной реализации: алгоритма прямой классификации упрощенным методом K – ближайших соседей, метода нормальной вероятностной бумаги и непараметрических методов аппроксимации функции плотности распределения.
Разработать макросы, позволяющие реализовать алгоритм прямой классификации упрощенным методом K – ближайших соседей.
Разработать макрос для оценки параметров выборки методом нормальной вероятностной бумаги.
Разработать макросы для непараметрических методов оценки функции плотности распределения.
Разработать обучающие средства по первичной статистической обработке данных на основе созданных макросов.
В первой главе дипломной работы сделан обзор задач статистического описания.
Во второй главе приведены алгоритмы прямой классификации упрощенным методом K – ближайших соседей, оценки параметров выборки методом нормальной вероятностной бумаги и алгоритмы непараметрической оценки функции плотности распределения.
Третья глава посвящена статистическому описанию выборки на основе Visual Basic for Application.
В четвертой главе работы описана апробация средств автоматизации в виде макросов.
1 Типы задач статистической обработки
1.1 Статистическая аппроксимация законов распределения
Первичные данные, полученные при наблюдении, обычно трудно обозримы. Для того чтобы начать анализ, в них надо внести некоторый порядок и придать им удобный для исследователя вид. В частности, для начала желательно получить представление об одномерных распределениях случайных величин, входящих в данные.
Существуют два типа задач аппроксимации распределений [2,4]. Если вид функции распределения известен, но не известны ее параметры, тогда задача сводится к параметрическому оцениванию. Бывают ситуации, когда конкретный вид функции распределения неизвестен, и о виде распределения можно сделать лишь самые общие предположения. При таких условиях аппроксимацию неизвестной функции распределения на основе выборки называют непараметрической.
1.1.1 Гистограмма и полигон частот. Классическими методами статистической аппроксимации функции плотности являются гистограмма (равноинтервальная и равнонаполненная) и полигон частот.
Выборочная функция плотности распределения или гистограмма (равноинтервальная) строится следующим образом. Делим промежуток [a,b], на котором сосредоточены данные выборки на S интервалов , равной длины h=(b-a)/S. Подсчитываем число наблюдений , попавших в интервал , соответственно. Полагаем
, (1.1)
Полигон частот получают путем сглаживания гистограммы
, , (1.2)
где - середина промежутка , -правый конец промежутка .
Очевидно, что .
Выборочная функция плотности распределения или гистограмма (равнонаполненная) строится исходя из предположения, что вся площадь под графиком оценки функции разбивается на k равных частей. Тогда площадь каждой части равна , . Для конкретной выборки рассчитываются длины интервалов , а затем, опираясь на формулу
, (1.3)
определяется . На основании полученных значений длины и высоты каждого прямоугольника гистограммы получаем оценку .
1.1.2 Оценка плотности распределения вероятностей «ядерного» типа.
Для малых выборок (N<30) гистограмма и полигон частот оказываются обычно искаженными за счет тех или иных случайных локальных отклонений, связанных с отсутствием необходимого числа объектов. Одним из способов частично ликвидировать этот пробел явилась «ядерная» аппроксимация, которая путем «размазывания» имеющихся точек заполняет на гистограмме «впадины» и срезает «пики». Отметим, что «ядерное» сглаживание учитывает особенность функции плотности распределения и потому из всех методов сглаживания является наиболее корректным.
Оценка плотности распределения для большинства методов «ядерного» типа обобщенно может быть выражена линейной суммой двух компонент: априорной и эмпирической:
(1.4)
где - априорная компонента; - составляющая эмпирической компоненты, связанная с i- той реализацией выборки; - вес априорной компоненты.
Различным методам исследования соответствуют разные значения и разные виды функции . Широко известны оценки f(x) типа (1.3) при значении . В методе прямоугольных вкладов.
(1.5)
(1.6)
(1.7)
где [a,b] -интервал изменения случайной величины x; d - ширина функции вклада.
В качестве d может быть взято, например:
(1.8)
Алгоритм ядерной аппроксимации функции плотности распределения имеет следующий вид:
Задается множество точек ;
Полученное множество точек упорядочивается по возрастанию: ;
Определяется «ядерная» аппроксимация функции плотности распределения:
(1.9)
где - количество точек исходной выборки, попавших в интервал .
Замечание: значение k берется из интервала [3; 7].
1.1.3 Оценка функции распределения с помощью нормальной вероятностной бумаги. Пусть даны N наблюдений x1,...,xN, извлеченные из генеральной совокупности с функцией распределения F(t).
Этап 1. Исходная выборка значений упорядочивается по возрастанию. В результате получается последовательность x(1) ,..., x(N).
Этап 2. Для каждого значения x(i), на плоскости отмечается точка (x(i), i/N) (см. рисунок 1.1). Для того чтобы определить расположение этой точки, находится значение Vi=Ф-1(i / N), которое откладывается по оси V.
Рисунок 1.1 – Нормальная вероятностная бумага
Этап 3. Если точки (х(i) ,i/N) в какой-то мере ложатся вдоль некоторой прямой, то можно грубо считать генеральную совокупность, из которой извлечена данная выборка, нормальной. В противном случае надо подыскать преобразование переменной, например, логарифмирование, извлечение корня и тому подобное, в результате которого выборка бы соответствовала нормальному распределению.
Этап 4. В случае принятия гипотезы о нормальности распределения осуществляется оценка параметров распределения. В качестве оценки центра берется медиана выборки, которая соответствует вероятности р=0.5. Оценка стандартного отклонения , где - оценка 0.84 квантиля распределения, полученного при V=1.
1.2 Основные теоретические сведения по теории классификации
1.2.1 Основные понятия кластерного анализа и проблема измерения близости между объектами. В общем виде задачу классификации исследуемой совокупности объектов O={Oi}, , где для каждого объекта замерены значения p параметров, т.е. каждый объект Oi описан вектором Xi = (xi1,...,xir), можно сформулировать как задачу поиска такого разбиения S заданной совокупности на непересекающиеся классы S1,....,Sk:
, Si Sj = Æ , i¹j , (1.10)
при котором функционал качества Q(S) достигает экстремального значения на множестве A допустимых правил классификации [6]. В качестве Q(S) используют критерии, минимизирующие межгрупповое сходство и одновременно максимизирующее внутригрупповое сходство. Состав множества A зависит от предварительной (априорной) выборочной информации об этих классах. Итак, задача классификации формально сводится к нахождению разбиения S*.
Q(S*) =min Q(S), S Î A (1.11)
Заметим, что при этом число k может быть и неизвестно.
При любых трактовках кластеров и для различных методов классификаций неизбежно возникает проблема измерения близости объектов. С этой проблемой связаны следующие трудности: неоднозначность выбора способа нормировки и определения расстояния между объектами.
Нормировка представляет собой переход к некоторому единообразному описанию всех признаков и связана с введением новых единиц измерения, допускающих формальное сопоставление объектов. Перечислим наиболее распространенные способы нормирования показателей (переход от исходных значений x к нормированным z):
z1 = (x -) / s , (1.12)
z2= x /, (1.13)
z3=x / x¢ , (1.14)
z4=x / xmax, (1.15)
z5=(x-)/ (xmax - xmin), (1.16)
где , s - среднее и среднеквадратичное отклонение x, соответственно;
x¢ - некоторое эталонное (нормативное) значение x;
xmin , xmax - наименьшее и наибольшее значения x.
(1.17)
Расстоянием (метрикой) d между объектами a и b в пространстве параметров называется такая величина d(a,b), которая удовлетворяет аксиомам:
A1.d(a,b)>0, d(a,a)=0 (рефлексивность); (1.18)
A2.d(a,b)=d(b,a) (симметричность); (1.19)
A3.d(a,b)+d(b,d) ³ d(a,b) (правило треугольника) (1.20)
Рассмотрим основные способы определения близости между объектами для количественных шкал.
Линейное расстояние:
(1.21)
Евклидово расстояние:
(1.22)
Обобщенное степенное расстояние Минковского:
(1.23)
Расстояние Махаланобиса:
, (1.24)
где Xi = (xi1,...,xip);
W = (wij), элементами которой являются:
- ковариационная матрица.
Содержательно линейное расстояние (1.21) оправдано, например, при многокритериальной оценке качества продукции, при нормировке по эталонам типа z3 (1.14), при определении расстояния между домами по кварталам. С его помощью лучше всего выделяют «плоские» классы, расположенные почти на гиперплоскостях, особенно, если они ортогональны каким-либо координатным осям.
Евклидово расстояние (1.22) является самой популярной метрикой в кластер-анализе. Оно отвечает интуитивным представлениям о близости. Геометрически оно лучше всего объединяет объекты в шарообразных скоплениях, которые типичны для слабо коррелированных совокупностей.
Обобщенное степенное расстояние (1.23) представляет интерес, как математическая универсальная метрика.
Расстояние Махаланобиса является своеобразной конструкцией. Если считать, что все признаки не коррелированны (т.е. wij=0, i¹j), то
, где - разница значений i-го признака у 2-х объектов, т.е. на каждой оси расстояние уменьшается пропорционально дисперсии. Это приводит к своеобразному уравниванию признаков, напоминающему процедуру нормирования z1 (1.12). Другая особенность этого расстояния в его «контекстном» характере. Матрица ковариаций W в формуле (1.23) делает расстояние между двумя точками зависимым от расстояний между другими точками.
Рисунок 1.2 - Общая схема выбора способа измерения близости между объектами
На рисунке 1.2 приведена общая схема определения способа измерения близости между объектами.
1.2.2 Типы методов кластер – анализа. Существует огромное количество алгоритмов кластер – анализа. Они отличаются вычислительными приемами и концепциями [1,6].
Точной постановки задачи кластер - анализа нет. Единая теория находится в стадии становления. Для создания теории необходимо уметь учитывать разные конфигурации точек и предъявляемые к разбиениям требования.
Требования к хорошей классификации формируются двумя способами: в терминах определений отдельных кластеров; в виде некоторого функционала, оптимальное значение которого соответствует лучшей классификации.
Ниже на рисунке приведены сочетания классов на плоскости, которые трудно четко разделить, так как необходимо учитывать разнообразные обстоятельства: расстояние между точками класса C больше, чем межклассовые расстояния некоторых точек в классах В и С, среднее значение в классах Е и F, K и H одинаковы; классы P и Q соединены цепочкой, которую надо выделить.
Рисунок 1.3– Сочетания классов на плоскости
Прежде чем строить теорию, учитывающую подобные конфигурации точек, надо осознать природу требований, предъявленных к разбиениям. Границы классов на рисунке 1.3 приведены именно такими в соответствии с интуитивными представлениями о том, что кластер - скопление точек - представляет собой некоторую целостность (образ), чем-то отличающийся от другого скопления точек. Причем кластеры могут касаться друг друга (B и C, L и M) и пересекаться (K и H). Различать подобные кластеры формальным образом трудно. Это означало бы машинную реализацию чисто человеческого процесса распознавания образов.
40-летние попытки решить задачу «структурной классификации» привели к тому, что традиционную для статистики проблему выделения однородных групп стали называть распознаванием образов без учителя (самообучением).
Основой 1-го направления решения задачи структурной классификации является:
формулировка понятия кластера в смысле такого скопления точек, которое обладает некоторым свойством, например, в котором среднее межточечное расстояние меньше среднего расстояния от данных точек до остальных;
разбиение совокупности на части, представляющие собой кластер.
Алгоритмы, ориентированные на кластеры с заранее заданными свойствами, называют процедурами прямой классификации. Сам подход называют эвристическим, но некоторые алгоритмы находят локальный экстремум определенному функционалу.
Требования к хорошей классификации предъявляют не только в терминах определения отдельных кластеров.
Они могут быть сформулированы в виде некоторого функционала, экстремальное значение которого соответствует наилучшей классификации. Это второе - оптимизационное направление. Здесь возникает чисто математические проблемы, определение свойства функционала, путем достижения оптимума, трудоемкости алгоритма. Редко в этих задачах нужен глобальный оптимум.
В кластер - анализе нет четкой связи между функционалом и действительной целью исследователя, так как она не может быть точно сформулирована в условиях исходной неопределенности в данных.
Эти два подхода: прямой и оптимизационный являются разными способами формализации представления о хорошей классификации.
Было выявлено, что некоторые эвристические процедуры оптимизируют определенные функционалы. Резкой границы между подходами нет, наоборот есть предположение, что каждая прямая процедура на самом деле доставляет экстремум какой-то функции, которую надо отыскать. И каждому функционалу соответствует свое определение кластера.
1.2.3 Систематизация алгоритмов. Ее приходится вести по нескольким качественным признакам.
1 Характер отношений, которые отыскиваются как результат классификации.
1.1 Разбиение с непересекающимися классами (отношение эквивалентности). Объекты внутри класса тождественны, объекты разных классов нет.
1.2 Разбиение с пересекающимися классами. Задаются по-разному: введение степени принадлежности объекта к классу в духе теории размытых множеств, определением вероятности принадлежности объекта к классу или перечнем объектов в зоне пересечения.
1.3 Иерархическое дерево
Процедуры классификации отыскивают целую систему вложенных разбиений. С их помощью получают и обычные разбиения, задав число классов, порог...
2 Степень участия человека в процедуре выделения кластеров.
2.1 Человек не принимает участия в работе алгоритма, т. е. машинным способом получается готовый результат, в процессе работы алгоритма он не вмешивается.
2.2 Человек участвует в процессе получения разбиения. ЭВМ выдает информацию, по которой человек принимает решение о разбиении (Это метод визуализации).
3 Характер априорных сведений (задаваемых параметров) для работы алгоритма.
3.1 Априорные сведения отсутствуют (свободная классификация). Их отсутствие необходимо для выделения естественной, а не навязанной структуры исходных данных. Очень мало таких алгоритмов, они имеют человеко-машинный характер.
3.2 Задано число классов.
3.3 Заданы пороговые значения величины близости объектов (классов).
3.4 Заданы комбинированные сведения (число классов и пороги разных типов).
4 Характер работы алгоритма. По способу построения классов: эталонный и неэталонный. По зависимости от порядка просмотра точек: последовательные и параллельные.
4.1 Остановимся на делении алгоритмов по способу построения кластеров: эталонные и неэталонные. В процедурах эталонного типа на множестве объектов задается несколько эталонов - исходных зон, полей, с которых начинает работу алгоритм. После задания (машинного или человеко-машинного) эталонов алгоритм проводит классификацию, иногда меняя эталоны определенным способом.
Существует множество процедур кластеризации, работающих по иному принципу: иерархические алгоритмы, процедуры диагонализации, разрезание графов.
4.2 Другая особенность алгоритмов - зависимость результатов от порядка просмотра точек. Она характерна для эталонных алгоритмов.
Есть процедуры, зависящие от порядка просмотра, например иерархическая. Задача определения трудоемкости алгоритмов изучена слабо. Общую классификацию процедур на быстры и медленные, требующие большой и малой памяти можно заменить делением на параллельные и последовательные процедуры.
1.2.4 Алгоритмы прямой классификации. Подавляющая часть практических исследований выполнена с помощью этих алгоритмов.
В качестве примера одного из способов точного определения кластеров приведем класс типа сгущения (типа ядра) - компактная группа. Все расстояния между объектами внутри класса меньше любого расстояния между объектами класса и остальной частью множества. С помощью такого определения нельзя различать классы, представленные на рисунке 1-3: разнотипные (B и C), пересекающиеся (К и H), большие и малые (R и Q).
1.2.5 Алгоритм иерархической классификации. Пусть X={X1, ...,Xn}, где Xi=( xi(1), ..., xi(p)) Rp.
Пусть Si - i-я группа (класс, кластер) объектов, ni - число объектов, образующих группу Si, - среднее арифметическое векторных наблюдений, входящих в Si-ую группу.
На вход агломеративного иерархического алгоритма подается разбиение S(0)= (S1(0),..., Sn(0)), где Si(0)={Xi}. Разбиение k-го уровня имеет вид S(k)= (S1(k),..., Sn-k(k)) и строится из разбиения S(k-1), k>1, путем объединения пары классов (S1*, S2*), где
(S1*, S2*)=( S1, S2) (1.25)
Итоговую иерархию s образует система вложенных разбиений . Здесь S(n-1)=X.
Отметим, что иерархическая классификация при помощи бинарного алгоритма всегда дает бинарную иерархию. Чаще всего используются в агломеративных алгоритмах следующие меры близости между классами.
Расстояние, измеряемое по приращению статистического разброса при объединении классов
(S1, S2)= Q (S1) - Q (S1) - Q (S2), (1.26)
где Q(S)=, Z=-центр класса S, - квадрат евклидова расстояния между X и Z.
Расстояние, измеряемое по принципу «ближнего соседа»
(Sl, Sm)= (1.27)
Расстояние, измеряемое по принципу «дальнего соседа»
(Sl, Sm)= (1.28)
Расстояние, измеряемое по «центрам тяжести групп»
(Sl, Sm)= d (), (1.29)
Отметим, что мера близости (1.26) обладает рядом важных свойств, которые обеспечивают широкое использование ее при решении задач классификации. В то же время расстояние по центрам тяжести (1.29) не обладает такими свойствами.
Результаты работы всех иерархических процедур оформляется в виде дендрограммы (см. рисунок 1.4). По горизонтали показаны номера объектов, а по вертикали - значения межклассовых расстояний.
Рисунок 1.4 - Дендограмма
1.2.6 Алгоритм k-средних. При решении практических задач полезно иметь набор простых быстродействующих алгоритмов классификации для выработки первых представлений о структуре данных в признаковом пространстве. Пусть исходная информация о классифицируемых объектах представлена матрицей «объект-свойство», столбцы которой задают точки p-мерного евклидова пространства.
Опишем один из наиболее известных алгоритмов, использующий понятие центра тяжести, являющийся процедурой параллельной классификации. Единственным управляющим параметром алгоритма k-средних является число классов, на которые проводится разбиение S={S1 , ... , Sk} выборки X. В результате получается несмещенное разбиение S*={S1* , ... , Sk*}.
Схема алгоритма
Выберем начальное разбиение S0=(S10,..., Sn0), где Si0- {Xi10,..., Xini0}, =0,
Пусть построено m-е разбиение Sm=(S1m,..., Snm). Вычислим набор средних em ={e1m,..., ekm}, ei m=.
Построим минимальное дистанционное разбиение, порождаемое набором em и возьмем его в качестве Sm+1=(S1m+1,..., Snm+1), т.е.
.....................................................
где - расстояние в p-мерном пространстве Rp.
Если , то переходим к пункту 2, заменив m на m+1, если , то полагаем Sm=S* и заканчиваем работу алгоритма.
Содержательно процедура алгоритма k-средних направлена на поиск разбиения S* выборки X с минимальным разбросом.
В ряде случаев начальное разбиение S0 как минимальное дистанционное разбиение, порожденное некоторым набором точек e0={e10,..., ek0}. Результат классификации зависит от выбора e0. Обычно для проверки устойчивости результата рекомендуется варьировать выбор e0.
2 Алгоритмы методов статистического описания выборки
2.1 Алгоритмы непараметрической аппроксимации функции плотности распределения вероятностей
Для реализации непараметрической аппроксимации оценки функции плотности вероятностей в среде встроенного пакета анализа данных Excel разработан макрос.
Алгоритм последовательности действий, которые выполняются при запуске макроса для построения равноинтервальной гистограммы и полигона частот, описывается следующей схемой (см. рисунок 2.1).
Рисунок 2.1 - Схема последовательности действий, производимых макросом для равноинтервальной гистограммы и полигона частот
Алгоритм последовательности действий, которые выполняются при запуске макроса для построения равнонаполненной гистограммы и полигона частот, описывается схемой, приведенной на рисунке 2.2.
Алгоритм последовательности действий, которые выполняются при запуске макроса для построения «ядерной» аппроксимации функции плотности распределения, описывается следующей схемой на рис 2.3.
Рисунок 2.2 - Схема последовательности действий, производимых макросом для равнонаполненной гистограммы и полигона частот
Рисунок 2.3 - Схема последовательности действий, производимых макросом для «ядерной» аппроксимации функции плотности распределения
2.2 Алгоритм параметрической аппроксимации функции плотности распределения вероятностей на основе нормальной вероятностной бумаги
Для реализации лабораторной работы «Оценка функции распределения с помощью нормальной вероятностной бумаги» в среде встроенного пакета анализа Excel разработан макрос.
Алгоритм последовательности действий, которые выполняются при запуске макросов, описывается следующей схемой (см. рисунок 2.4).
Рисунок 2.4 - Схема последовательности действий, производимых макросом для нормальной вероятностной бумаги
2.3 Упрощенная схема алгоритма прямой классификации
На основе изученного материала разработано схематическое описание алгоритма прямой классификации упрощенным методом K – ближайших соседей (см. рисунок 2.5).
Рисунок 2.5 – Схематическое описание алгоритма прямой классификации
3 Статистическое описание выборки на основе Visual Basic for Application
3.1 Описание средств автоматизации непараметрической аппроксимации функции плотности распределения вероятностей
Первоначально перед пользователем стоит выбор решаемой задачи: гистограмма и полигон частот для статистических данных с разбиением на интервалы равной длины (задача 1), гистограмма и полигон частот для статистических данных с разбиением на равнонаполненные интервалы (задача 2), непараметрическая оценка функции плотности распределения вероятности для статистических данных методом прямоугольных вкладов (задача 3).
3.1.1 Описание средств автоматизации равноинтервальной гистограммы и полигона частот. Действия, которые производит построенный макрос для гистограммы и полигона частот для статистических данных с разбиением на интервалы равной длины, разбиты на 4 этапа.
Этап 1. Ввод объема выборки и количества интервалов. Первоначально пользователю следует ввести информацию об объеме выборки и количестве интервалов, на которое следует разбить отрезок, в ячейки С16 и С17 соответственно. В случае если пользователь не произвел эти действия, выводится предупреждающее сообщение о необходимости ввода этих данных.
Этап 2. Сортировка данных по возрастанию. Для определения концов отрезка, в который попадают все элементы выборки, необходима сортировка выборки по возрастанию. Для продолжения дальнейшего исследования в макросе предусмотрена реализация этих действий.
Этап 3. Нахождение шага разбиения отрезка. После определения концов отрезка в макросе происходит нахождение шага разбиения отрезка на отрезки равной длины по формуле h=(b-a)/N, где b- конец отрезка, a – начало отрезка, N – число отрезков.
Этап 3. Нахождение значений для функции распределения. Значения для функции распределения в макросе находятся по формуле , где mi-- число наблюдений, попавших в интервал .
Этап 4. Занесение значения для абсцисс и ординат равноинтервальной гистограммы и полигона частот на рабочий лист. Для наглядного изображения равноинтервальной гистограммы и полигона частот на рабочий лист выводятся данный по значению абсцисс и ординат, по которым ведутся дальнейшие построения.
3.1.2 Описание средств автоматизации равнонаполненной гистограммы и полигона частот. Действия, которые производит построенный макрос гистограмма и полигон частот для статистических данных с разбиением на равнонаполненные интервалы, разбиты на 4 этапа.
Этап 1. Проверка выполнений условий, необходимых для построения гистограммы и полигона частот. После ввода элементов выборки следует проверить условия, при которых невозможно дальнейшее исследование. Это случаи, когда выборка однородна и количество элементов выборки нечетно. В случае если эти условия имеют место быть, программа выдаст сообщение о невозможности продолжения исследования. После этого исследователь может исправить недочеты и продолжить вычисления.
Этап 2. Сортировка данных по возрастанию. Для определения концов отрезка, в который попадают все элементы выборки, необходима сортировка выборки по возрастанию. Для продолжения дальнейшего исследования в макросе предусмотрена реализация этих действий.
Этап 3. Нахождение значений для функции распределения. Значения для функции распределения в макросе находятся по формуле
, где - интервал, а k - целое число из интервала [3,7].
Этап 4. Занесение значения для абсцисс и ординат равноинтервальной гистограммы и полигона частот на рабочий лист. Для наглядного изображения равноинтервальной гистограммы и полигона частот на рабочий лист выводятся данные по значению абсцисс и ординат, по которым ведутся дальнейшие построения.
3.1.3 Описание средств автоматизации «ядерной» функции плотности. Действия, которые производит построенный макрос непараметрической оценки функции плотности распределения вероятности для статистических данных методом прямоугольных вкладов, разбиты на 5 этапов.
Этап 1. Нахождение d - ширины функции вклада. На первоначальном этапе данного метода следует найти d - ширину функции вклада по формуле d=, где b – конец отрезка, a – начало отрезка, значение k берется из интервала [3; 7].
Этап 2. Сортировка данных по возрастанию. Для определения концов отрезка, в который попадают все элементы выборки, необходима сортировка выборки по возрастанию. Для продолжения дальнейшего исследования в макросе предусмотрена реализация этих действий.
Этап 3. Нахождение множества абсцисс для оценки функции плотности распределения. Для дальнейшего исследования в макросе производится разбиение отрезка точками, которые высчитываются по формулам
Этап 4. Определение «ядерной» аппроксимации функции плотности распределения. Значения для «ядерной» аппроксимации функции плотности распределения в макросе находятся по формуле
где - количество точек исходной выборки, попавших в интервал .
Этап 5. Занесение значения для абсцисс и ординат равноинтервальной гистограммы и полигона частот на рабочий лист. Для наглядного изображения равноинтервальной гистограммы и полигона частот на рабочий лист выводятся данные по значению абсцисс и ординат, по которым будет вестись дальнейшее построение.
Полный текст макроса приведен в приложении Г.
3.2 Описание средств автоматизации параметрической аппроксимации функции плотности распределения вероятностей на основе нормальной вероятностной бумаги
Действия, которые производит построенный макрос, разбиты на 4 этапа.
Этап 1. Очищение ячеек с ранее полученными оценками значений для μ и σ. Макрос необходим для проверки правильности выполнения работ с различными первоначальными данными ряда наблюдений, по которым в дальнейшем производится оценка значений для μ и σ. Поэтому разработанный макрос для удобства использования производит очищение ячеек с ранее полученными значениями.
Этап 2. Заполнение столбца с порядковым номером i членов вариационного ряда наблюдений. Первоначально дан упорядоченный по возрастанию ряд наблюдений . Для каждого члена исходного ряда в ячейки (C2:CN+1) заносится значение i, соответствующее порядковому номеру данного элемента.
Этап 3. Заполнение столбца с оценкой для функции распределения F(t). За оценку функции распределения F(t) принимают:. Значение для функции распределения членов ряда наблюдений, принятой данной оценкой, заносится в ячейки (D2:DN+1).
Этап 4. Вывод уравнения прямой, вдоль которой ложатся точки (xi,Vi). Для построения прямой программа находит значение максимального и минимального элементов ряда наблюдений и, для более простого обращения к ним в случае необходимости, происходит размещение этих значений в ячейки G2 и G3 соответственно.
Для максимального и минимального элементов находятся соответствующие значения функции , где Ф()-стандартная функция нормального распределения. Для простоты дальнейших вычислений полученные значения функции для максимального и для минимального элемента заносятся в ячейки G3 и в G4 соответственно.
По двум известным точкам происходит вывод уравнения прямой, вдоль которой ложатся точки (xi,Vi). Таким образом, искомое уравнение имеет вид:
,
где max,min – максимальный и минимальный элементы ряда наблюдений, vmin, vmax – соответствующие им значения функции V.
Этап 5. Оценка для параметров μ и σ. В качестве оценки μ берётся медиана выборки, соответствующая вероятности p=0,5. Для определения значения μ в полученное уравнение прямой подставляем значение y=0,5, и получаем точку x0,5, дающую нам искомую оценку для математического ожидания μ. Найденное значение μ для лучшей наглядности помещается в ячейку G7.
Оценка для стандартного отклонения выглядит следующим образом:
,
где x0,84 - оценка 0,84 квантиля распределения, полученного при V=1. Она производится следующими действиями.
Первоначально находится значение x0,84 в результате подстановки в полученное уравнение прямой y=0,84. σ в данном случае определяется как разность между x0,84 и ранее полученным значением математического ожидания μ. Найденное в результате значение для лучшего восприятия заносится в ячейку G8.
Полный текст макроса приведен в приложении Б.
3.3 Описание средств автоматизации алгоритма прямой классификации
Разработанные средства автоматизации алгоритма прямой классификации предназначены для использования в процессе изучения студентами азов теории классификации. Они ориентированы на выработку у студентов интуиции о влиянии характера исходных данных, а также способов измерения близости между объектами и типе нормировки на результат классификации.
Диалог с пользователем осуществляется при помощи пользовательской формы. При нажатии на соответствующие кнопки формы, происходит выполнение необходимых вычислений. Действия, которые производят разработанные макросы для кнопок, разбиты на 5 этапов.
Этап 1. Генерация выборки. Для изучения влияния характера исходных данных на результат классификации используется генерация псевдослучайных величин средствами Excel.
С помощью генератора случайных чисел можно построить последовательности с нормальным распределением. Очень многие модели, построенные с помощью этого распределения, хорошо соответствуют действительности. Чтобы построить последовательность значений нормально распределенной случайной величины, необходимо задать математическое ожидание и дисперсию.
Чтобы сгенерировать последовательность, необходимо воспользоваться функцией из встроенного пакета анализа данных:
Выбрать команду Сервис, Анализ данных (Tools, Data Analysis). Появляется диалоговое окно Анализ данных
Выбрать пункт Генерация случайных чисел (Random Number Generation). Появляется диалоговое окно Генерация случайных чисел.
Выбрать Нормальное распределение в списке Распредеение (Distribution).
Ввести число 3 в поле Число переменных (Number of Variables), что означает число столбцов, которые заполнены последовательностью.
Ввести число 20 в поле Число случайных чисел (Number Random Numbers), т. е. последовательность занимает 20 строк.
Нажать кнопку ОК. Если указанный на рабочем листе диапазон содержит другие данные, появится окно сообщения, где необходимо будет подтвердить замену данных.
Excel создаст последовательность.
Первая половина выборки в разработанном макросе сгенерирована случайным образом из нормального распределения с параметрами математическое ожидание 0 и дисперсия 1 (μ = 0, σ = 1).
Вторая половина выборки сгенерирована случайным образом из нормального распределения с параметрами математическое ожидание 2 и дисперсия 1 (μ = 2, σ = 1).
Замечание. Для изменения исходных параметров в теле макроса делаются корректировки. Например, для математического ожидания со значением 0 дисперсии со значением 1 данный фрагмент реализации в макросе выглядит следующим образом:
For i = 1 To m
Randomize
Cells(i + 1, 1) = RndN(0, 1)
Next i
For i = 1 To m
Randomize
Cells(i + 1, 2) = RndN(0, 1)
Next i
For i = 1 To m
Randomize
Cells(i + 1, 3) = RndN(0, 1)
Next i
Этап 2. Рабочие расчеты. Для классификации необходимо провести дополнительные рабочие расчеты, как-то: вычисление максимальных и средних элементов выборки, нормировка выборки.
Первоначально каждый объект заданной совокупности описан тремя признаками по двадцать элементов каждый.
Для каждых членов исходных рядов в ячейки D4, E4, F4 заносятся значения, соответствующие средним значениям.
Для каждых членов исходных рядов в ячейки D7, E7, F7 заносятся значения, соответствующие максимальным значениям.
В процессе исследования в качестве нормировок были выбраны две.
Первая из них вычисляется по формуле , вторая по формуле .
Этап 3 Расчет матриц расстояний. В качестве определения расстояния между объектами выбраны линейное и евклидово расстояния.
Этап 4 Выделение 2 классов, вывод промежуточных результатов. На этом этапе производится выделение двух классов для построенных на первом этапе исходных данных.
Начальное разбиение выборки задается двумя способами. Первый способ заключается в том, что первая половина элементов выборки принимается за первый класс, а вторая – за второй. Второй способ разбиения заключается в том, что в первый класс будут входить нечетные элементы выборки, а во второй - четные. На рабочем листе при помощи макроса реализованы следующие действия: отображено первоначальное разбиение выборки на 2 класса, промежуточные результаты по работе макроса, будет отображение конечного результата разбиения выборки на два класса. По полученным разбиениям построены графики, наглядно изображающие два класса.
Этап 5 Очищение ячеек. Начальные данные, вводимые для исследования, всегда различны. Поэтому на пользовательской форме предусмотрена кнопка, выполняющая полную очистку ячеек с ранее полученными результатами.
Полный текст макроса приведен в приложении В.
4 Апробация средств автоматизации в виде макросов
4.1 Апробация программного обеспечения средствами встроенного пакета анализа данных Excel
4.1.1 Апробация программного обеспечения алгоритма прямой классификации. Входные данные для апробации алгоритма классификации генерируются с помощью макроса, реализованного в виде кнопок: «Генерация 1 выборки», «Генерация 2 выборки» (рисунок 4.1). При необходимости изменения параметров выборок их можно изменить внутри макроса.
Рисунок 4.1 – Кнопки «Генерация 1 выборки» и «Генерация 2 выборки»
На начальном этапе построения алгоритма простой классификации в кластерном анализе ставится задача определения средних и максимальных значений среди элементов выборки и способа нормировки [1]. Для этой цели в Excel разработана кнопка «Рабочие расчеты» на пользовательской форме (см. рисунок 4.2). Для этой кнопки написан макрос, который выполняет поставленную задачу.
Рисунок 4.2 – Кнопка «Рабочие расчеты»
Рисунок 4.3 – Результат работы кнопки «Рабочие расчеты»
Как видно из рисунка 4.3 исходные объекты заносятся в ячейки А2:А21, В2:В21, С2:С21. После нажатия кнопки «Рабочие расчеты», полученная информация занесена в ячейки I3:G22, M3:N22, O3:P22.
Таким образом, при помощи макроса получены необходимые рабочие расчеты, нужные для определения матриц расстояний и совершения классификации объектов.
Для дальнейших исследований, предусмотренных алгоритмом прямой классификации, необходимо произвести расчет матриц линейного и евклидового расстояний. С этой целью на форму помещена кнопка «Матрицы расстояний» и к ней написан макрос.
Рисунок 4.4 – Кнопка «Матрицы расстояний»
После нажатия на данную кнопку на рабочий лист выводится необходимая информация.
После расчета матриц расстояний производится классификация объектов, т.е. разделение элементов выборки на два непересекающиеся классы. Эти действия выполняет макрос, написанный для кнопки «Выделение 2 классов, вывод промежуточных результатов» (см. рисунок 4.5).
Для визуализации процесса классификации автоматически строится график начального и конечного разбиения на классы (см. рисунок 4.6).
Таким образом, с помощью построенных макросов заданные совокупности объектов классифицируются методом K – ближайших соседей.
Рисунок 4.5 – Кнопка «Выделение 2 классов, вывод промежуточных результатов»
Рисунок 4.6 – Графики начального и конечного разбиения на классы
4.1.2 Апробация программного обеспечения параметрической аппроксимации функции плотности распределения вероятностей на основе нормальной вероятностной бумаги. При обработке данных на практике, после того, как исходная совокупность данных разбита на однородные группы, осуществляется оценка параметров соответствующего распределения по каждой группе. Описанию решения задачи оценки параметров нормального распределения с помощью нормальной вероятностной бумаги посвящен этот пункт.
В лабораторной работе «Оценка функции распределения с помощью нормальной вероятностной бумаги» из курса «Пакеты статистической обработки данных» требуется проверить с помощью вероятностной бумаги гипотезу о том, что статистические данные - случайная выборка из нормального распределения (с параметрами и ) и оценить значения и . Для этой цели в Excel разработана кнопка «Вычислить», а также написан макрос, который выполняет поставленную задачу (см. рисунок 4.7).
Рисунок 4.7 – Кнопка «Вычислить»
Как видно из рисунка 4.7, исходные данные размещены в ячейки А2:А22. После нажатия кнопки «Вычислить», полученная информация о функции распределения размещается в ячейки D2:D22, о порядковом номере элемента вариационного ряда в ячейки С2:С22, о функции V - в ячейки Е2:Е22. Максимальный и минимальный элементы занесены в ячейки G2:G3, соответствующие им значения функции V - в ячейки G4:G5. Оценки для значений и занесены в ячейки G7:G8. На рабочем листе также помещен график прямой, вдоль которого ложатся точки (x(i), Vi) и сглаживающий эту прямую тренд.
Таким образом, при помощи макроса получены оценки для значений математического ожидания μ и стандартного отклонения σ, которые соответствуют генеральной совокупности, из которой взят исходный ряд наблюдений.
4.1.3 Апробация программного обеспечения непараметрических методов статистической аппроксимации законов распределения. Первоначально перед пользователем стоит выбор решаемой задачи: гистограмма и полигон частот для статистических данных с разбиением на интервалы равной длины (задача 1), гистограмма и полигон частот для статистических данных с разбиением на равнонаполненные интервалы (задача 2), непараметрическая оценка функции плотности распределения вероятности для статистических данных методом прямоугольных вкладов (задача 3).
При выборе задачи 1 на рабочий лист выдаются результаты работы макроса, а именно значения длины и высоты интервалов для гистограммы и полигона частот при разбиении интервалов на участки равной длины. После этого по найденным данным автоматически построены графики гистограмма и полигон частот (см. рисунок 4.8).
Рисунок 4.8 – Равноинтервальная гистограмма и полигон частот
При выборе задачи 2 на рабочий лист выдаются результаты работы макроса, а именно значения длины и высоты интервалов для гистограммы и полигона частот при разбиении на равнонаполненные интервалы. После этого по найденным данным автоматически построены графики гистограмма и полигон частот (см. рисунок 4.9).
Рисунок 4.9 – Равнонаполненная гистограмма и полигон частот
При выборе задачи 3 на рабочий лист выдаются результат работы макроса, а именно выходной массив значений для функции ядерного типа. После этого по найденным данным автоматически построен график функции ядерного типа (см. рисунок 4.10).
Рисунок 4.10 – «Ядерная» аппроксимация
Таким образом, при помощи ряда макросов проведена первичная статистическая обработка по описанию эмпирических данных: построены равноинтервальные и равнонаполненные гистограммы и полигоны частот, а также функция ядерного типа заданной совокупности объектов.
ЗАКЛЮЧЕНИЕ
В ходе выполнения дипломной работы изучены:
краткие теоретические сведения о типах методов кластерного анализа, об алгоритмах прямой классификации;
сведения об оценке функции распределения с помощью нормальной вероятностной бумаги;
теоретические сведения о статистической аппроксимации законов распределения, гистограмме и полигоне частот, оценке плотности распределения вероятностей «ядерного» типа.
С целью более глубокого изучения задач статистического описания объектов разработаны алгоритмы и программные обеспечения посредством Visual Basic for Application в среде встроенного пакета анализа данных EXEL.
В ходе выполнения дипломной работы на основе теоретических сведений и разработанных алгоритмов программного обеспечения разработаны и реализованы в среде встроенного пакета анализа данных Microsoft Excel средства автоматизации, которые позволяют быстро и эффективно получить требуемую информацию о классификации выборки упрощенным методом К – ближайших соседей, о правильности выполнения лабораторной работы на тему «Оценка функции распределения с помощью нормальной вероятностной бумаги» из курса «Пакеты статистической обработки данных», а также аппроксимировать неизвестную функцию плотности распределения непараметрическими методами.
Таким образом, созданы обучающие средства, позволяющие
преподавателю упростить процедуру проверки правильности выполнения работ;
студентам упростить решение задачи статистического описания;
студентам предоставить наглядные обучающие средства для изучения влияния нормировки, начального разбиения выборки, выбора расстояния на результаты классификации.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Айвазян С.А., Бухштабер В.М., Енюков И.С и др. Прикладная статистика: Классификация и снижение размерности. - М.: Финансы и статистика. 1989. -605с.
Айвазян С.А., Енюков И.С., Мешалкин Л.Д. Прикладная статистика: основы моделирования и первичная обработка данных. - М.: Финансы и статистика. 1983. -472c.
Афифи А., Эйзен С. Статистический анализ. Подход с использованием ЭВМ. - М.: Мир.1982. -405с.
О формировании эмпирического образа данных/ Осипенко А.Н., Осипенко Н.Б.// -M.: НТИ. Сер. 2. 1990. -С.30-35.
Пособие для лабораторных занятий по спецкурсу «Обработка экспериментальных данных на ЭВМ» (для специальностей Н.01.01 и Н.08.01)/ Максимей И.В., Осипенко Н.Б., Осипенко А.Н. Гомель: ГГУ, 1998. -54с.
Мандель И.Д. Кластерный анализ. - М.: Финансы и статистика, 1988. -172с
Приложение А
Апробация программного обеспечения алгоритма прямой классификации средствами пакета анализа данных STATISTICA
Краткая характеристика пакета STATISTICA
Для анализа данных исследователь может воспользоваться готовыми пакетами анализа данных. Одним из таких пакетов статистической обработке является пакет STATISTICA.
Пакет STATISTICA является одним из наиболее мощных пакетов по статистической обработке.
Статистика - это наука, которая позволяет увидеть закономерности в хаосе случайных данных, выделить в них устойчивые связи и определить наши действия с тем, чтобы увеличить долю правильно принятых решений. Как все математические науки, статистика родилась из потребностей практики: подобно тому, как древние египтяне после разливов Нила вынуждены были заново измерять свои участки и для этого разработали начала геометрии, так и мы, окруженные хаотическими данными, вынуждены анализировать их. Конечно, мы стремимся интуитивно сузить пределы случайного, максимально сократить рамки неопределенности, но сделать полностью это редко когда удается. Применяя статистические методы, мы стремимся найти закономерности в случайных данных и воспользоваться найденными закономерностями.
STATISTICA - это универсальная интегрированная программная система, предназначенная для статистического анализа и визуализации данных, управления базами данных и разработки пользовательских приложений, содержащая широкий набор процедур анализа для применения в научных исследованиях, технике, бизнесе, а также специальные методы добычи данных. Помимо общих статистических и графических средств в системе имеются специализированные модули, например, для проведения социологических или биомедицинских исследований, решения технических и, что очень важно, промышленных задач: карты контроля качества, анализ процессов и планирование эксперимента. Работа со всеми модулями происходит в рамках единого программного пакета, для которого можно выбирать один из нескольких предложенных интерфейсов пользователя.
С помощью реализованных в системе STATISTICA мощных языков программирования, снабженных специальными средствами поддержки, легко создаются законченные пользовательские решения и встраиваются в различные другие приложения или вычислительные среды.
STATISTICA представляет собой интегрированную систему статистического анализа и обработки данных. Она состоит из следующих основных компонент, объединенных в рамках одной системы:
электронных таблиц для ввода и задания исходных данных, а также специальных таблиц для вывода численных результатов анализа;
мощной графической системы для визуализации данных и результатов статистического анализа;
набора специализированных статистических модулей, в которых собраны группы логически связанных между собой статистических процедур;
специального инструментария для подготовки отчетов;
встроенных языков программирования SCL (STATISTICA Command Language) и STATISTICA BASIC, которые позволяют пользователю расширить стандартные возможности системы.
В ряде случаев для проведения законченного статистического исследования не требуется дополнительное программное обеспечение - все этапы статистического анализа, начиная от ввода исходных данных и их преобразований и заканчивая подготовкой отчета или написания собственных процедур обработки, можно выполнить, используя только систему STATISTICA.
STATISTICA предоставляет пользователю уникальную среду экспериментирования, разведки, графического отображения и углубленного анализа данных, в которой статистическая обработка становится не рутинным занятием, а увлекательным исследованием с использованием новейших компьютерных технологий и современных приемов и методов.
Опишем основные модули пакета STATISTICA, используемые в работе:
модуль диалога
модуль построения/выполнения технологических цепочек
модуль управления данными.
модуль статистических функций
модуль визуализации
Модуль диалога. С помощью данного модуля пользователь производит выбор необходимого ему метода обработки информации или технологической цепочки методов и выполняет настройку соответствующих параметров. Данная компонента обеспечивает удобный интерфейс с пользователем в системе Windows. Предлагается широкий спектр диалоговых окон для настройки как параметров предоставляемого набора функций (статистической обработки, визуализации результатов и т.д.), так и параметров среды общения, что позволяет настроить модуль под конкретного пользователя. Также обеспечивается возможность справки по текущей ситуации.
Модуль построения/выполнения технологических цепочек. Данный модуль позволяет описывать часто используемую цепочку действий по обработке информации в виде пакета команд предлагаемого SCL-языка (STATISTICA Command Language), синтаксис которого очень похож на распространенный язык Basic или Pascal. Практически все возможности пакета STATISTICA продублированы соответствующими командами-функциями, на вход которых подаются продекларированные параметры настройки. Заметим, что возможности расширены вплоть до имитации работы пользователя (запись и воспроизведение команд пользователя и имитация работы органов управления посредством SCL-команд). Модуль реализован в виде двух Windows-программ: sta_com.exe (конструктор) и sta_run.exe (процессор). Созданные технологические цепочки хранятся в базе знаний в виде текстового файла с расширением SCL и могут выполняться посредством процессора sta_run из других Windows-приложений. Эта возможность позволяет строить проблемно-ориентированный программный инструментарий, который будет более понятен и прост в использовании для специалиста, что значительно повысит эффективность его работы.
Модуль управления данными. STATISTICA обеспечивает широкие возможности импорта/экспорта из различных стандартных типов баз данных как Windows, так и DOS версий (Symphony, Quattro, dBASE III+, dBASE IV, Paradox и ASCII формат). При импорте данные переводятся во внутренний формат (STA-формат), поддерживающий 32,000 переменных (признаков) и обеспечивающий более быструю обработку данных. Предлагаются возможности верификации (попадание в интервал), различные варианты ранжирования, кодировки данных (соотнесение значений по заданным категориям), создание переменных по уравнению связи признаков, нормировки, смещения значений признаков, замена пропусков на медианное значение, а также стандартные возможности редактирования данных (выделения подвыборки, копирования, удаления, добавления, перемещения, транспонирования и сортировки). Для автоматизации выполнения небольшого объема действий по управлению данными имеется встроенная версия SCL-языка – QMML (Quick Megafile Manager Language). Имеется также возможности установления DDE-связи с другими Windows-приложениями (такие как Excel, MS Word, Ami Pro, Quattro Pro), а также поддержка OLE. Модуль реализован в виде Windows-программы: sta_dat.exe.
Модуль статистических функций. Здесь предлагается широкий спектр возможностей статистического анализа данных. Из-за большого объема информации по предлагаемым методам анализа ограничимся краткой характеристикой каждого из них:
Basic Statistics – базовый статистический анализ: описательная статистика; описательная статистика для групп; t-тест для зависимых и независимых выборок; построение матрицы парных корреляций, частотных таблиц (гистограмм) и другое (реализован в виде Windows-программы sta_bas.exe);
Nonparametrics – непараметрический анализ (внутри и межгрупповые различные тесты, корреляции), обычная описательная статистика (процентили, медиана и т.д. (sta_non.exe);
Linear Regression – множественная линейная регрессия (различные методы определения), фиксированная нелинейная регрессия (полиномиальная) (sta_lin);
NonLinear Estimation – построение нелинейной регрессии (определенного пользователем вида: фиксированной экспоненциальной, ломанной линейной и др. ) с помощью различных аппроксимаций (Симплекс, Квази-Ньютона, Хук-Риверса и др.) (sta_log);
Time Series and Forecasting – анализ временных рядов и прогноз, а также различного рода сглаживания, трансформации, определение сезонных колебаний и т.д. (sta_tim);
Cluster Analysis – кластерный анализ, позволяющий выделять однородные группы с помощью метода К-средних, попарного объединения и иерархического метода (sta_clu).
Factor Analysis – факторный анализ методом выделения главных компонент, максимального правдоподобия факторов, центроидный метод, метод главных аксцис (sta_fac);
Canonical Analysis – оценка взаимосвязи признаков методом главных компонент (sta_can);
Multidimensional Scaling – многомерное шкалирование, анализ расстояний или однородности/разнородности, восстановление расстояний (sta_mul)
Reliability & Item Analysis – методы построения и анализа тестов, построения различных корреляций (Кронбач-альфа, часть-целое, множественные) (sta_rel);
Discriminant Function Analysis – дискриминантный анализ (sta_dis);
Survival Analysis – анализ процессов гибели и размножения: описание и сравнение развития; анализ таблиц развития; тест Каплан-Мейера и тесты для двух и более выборок, определение типа распределения (Вейбул, Гомпертц, ...), построение регрессионных моделей (лог-нормальная, экспоненцияльная и другие формы) (sta_sur);
Quality Control – контроль качества, анализ различных диаграмм (X, R, S, Si, CUSUM, Парето и др.) (sta_qua);
Process Analysis – анализ процессов: расчет плана по среднему, по пропорциям и Пуассоновским частотам, анализ совместности процессов и интервалов толерантности и другое (sta_pro);
Experimental Design – планирование экспериментов, построение ДФП, ЦКП и др. (sta_exp);
Модуль визуализации. Данный модуль обеспечивает отображение результатов работы статистических процедур. Предлагается два режима отображения – табличный и графический. Для графического отображения предусмотрены следующие возможности:
2-мерная графика: гистограмма, XY-проекция, вероятностная бумага (нормальная, полунормальная), ящики с “усами”, круговые диаграммы и другое;
3-мерная графика: проекции, гистограммы, ящики с “усами” и т.д.;
различные 3-мерные проекции;
отображение многомерной выборки в виде “лиц Чернова”, графиков Кивиата, полигонов, профилей и т.д.
Имеется возможность сохранения результатов в виде файлов данных (для таблиц), STG-файлов (для графики) либо в виде твердой копии с помощью функций печати. Используя стандартные OLE-операции можно также вставлять результаты в документы и электронные таблицы (Word, PageMaker, Exсel и другие приложения Windows, поддерживающие стандарт OLE).
Технология статистического анализа данных пакета STATISTICA
Данная работа в пакете Statistica апробирована среди студентов математического факультета группы ПОИТ-36.
Для начала работы с пакетом Statistica необходимо подготовить данные измерений в виде файла формата dBase или в Excel. Дальнейшее выполнение технологических цепочек с использованием пакета Statistica предполагает предварительный импорт данных во внутренний формат данных пакета. Для этого необходимо выполнить следующую цепочку действий:
Вызов пакета Statistica из Windows: \Пуск \Программы \Statistica. После этого пользователю будет предложено выбрать раздел, с которым он будет работать.
Выбор раздела управления данными: \Data Management MFM \Switch To \Cancel.
Выбор операции импорта исходных данных: \File \Import \ODBC.
Выбор типа импортируемого файла: \dBase Files \OK;
Указание пути к данным: \Выбор диска \Выбор папки \OK.
Указание импортируемой таблицы: \Tables \<выбор>.
Выбор списка рабочих полей: \Fields \<выбор> \ADD.
Импорт данных: \OK \<ввод имени: data > \OK. Если появиться окно диалога ‘File exist...’, то нажать кнопку ‘OK’.
Выход: \File \Exit.
Методы автоматической классификации требуют предварительной нормировки данных. Технологическая цепочка нормировки данных имеет вид:
Нормирование данных: \Statistica \Data Management MFM \<выбор всех признаков> \Edit \Fill/Standardize Block \Standardize Columns. При этом осуществляется стандартная нормировка , где - среднее по признаку (столбцу) х, - стандартное отклонение по признаку х.
Сохранение нормированной выборки: \File \Save As \File Name: normir \OK.
Выбор раздела кластерного анализа: \Statistica \Cluster Analysis \Switch To.
Таким образом, следующие методы классификации ориентированы на рабочий файл ‘normir.sta’.
Алгоритмы прямой классификации методом иерархической классификации и методом К-средних приведены в пунктах 1.2.5 и 1.2.6.
Технологическая цепочка автоматической классификации методом иерархической классификации имеет вид:
Выбор метода иерархической классификации: \Joining (tree clustering).
Выбор признаков для классификации: \Variables \<выбор> \OK \OK.
В результате будет предложено графическое отражение процесса иерархической классификации. График можно распечатать (\File \Print Graph \OK) или сохранить в файле (\File \Save as). С помощью комбинации клавиш Ctrl+Ins, график можно сохранить в буфере обмена Windows и далее с помощью вставки данных буфера обмена (Shift+Ins) использовать его в редакторах отчетов.
По полученной графической проекции визуально определяется состав классов, который заносится в общий отчет в виде таблицы.
Выход: \Ctrl+F4 \Cancel \Cancel.
Технологическая цепочка автоматической классификации методом К-средних имеет вид:
Выбор метода К-средних: \K-means clustering.
Выбор признаков для классификации: \Variables \<выбор> \OK.
Указание возможного количества классов: \Number of clusters: <ввод количества> \OK.
Просмотр признакового состава классов: \Members of each cluster & distances.
В результате будут выведены таблицы, отражающие состав признаков по классам.
Формирование выходного отчета с использованием операций обмена с буфером Windows (полученные таблицы вставляются в выходной документ).
Выход: \File \Exit.
Апробация программного обеспечения алгоритма прямой классификации средствами пакета анализа данных Statistica
В ряде практических случаев для проведения законченного статистического исследования не требуется разрабатывать дополнительное, а достаточно использовать стандартное программное обеспечение, например, систему STATISTICA. Все этапы статистического анализа, начиная от ввода исходных данных, их преобразования и заканчивая подготовкой отчета или написания собственных процедур обработки, можно выполнить, используя только систему STATISTICA.
Для сравнения результатов, полученных при помощи разработанных в среде пакета анализа данных EXCEL макросов для алгоритма прямой классификации упрощенным методом K – ближайших соседей, используются средства Statistica. С этой целью разработана методика и рекомендации по работе в Statistica.
В пакете анализа данных для экспериментальных данных выбран инструмент исследования Kluster analis/K – means klustering. Получены следующие результаты.
Рисунок 5.1 - Определение классов
Как видно из полученных отчетов (см. рисунки 5.1, 5.2, 5.3) к первому классу отнесены элементы выборки под порядковыми номерами 1,2,4,5,6,7,9,10, ко второму классу – 3,8,11,12,13,14.!5,16,17,18,19,20. После сравнения этих данных с результатами работы макросов, разработанных в Excel, можно заметить, что наиболее близкие результаты были получены при первоначальном разбиении выборки на две части путем присвоения к первому классу первой половины элементов, ко второму классу - второй половины выборки, независимо от выбора расстояния.
Рисунок 5.2 – Состав первого класса и расстояние для классового центра
Рисунок 5.3 – Состав первого класса и расстояние для классового центра
Приложение Б
Текст программы макроса для параметрической аппроксимации функции плотности распределения вероятностей на основе нормальной вероятностной бумаги
Function RndN(ByVal a As Single, s2 As Single) As Single
'возвр. число, нормально распределенное со средним a и дисперсией s2
Dim usum As Single
Dim i As Integer
usum = -6
For i = 1 To 12
usum = usum + Rnd
Next i
RndN = a + usum * Sqr(s2)
End Function
Private Sub CommandButton1_Click()
Dim i As Integer
Dim min As Double
Dim max As Double
Dim imax As Integer
Dim imin As Integer
Dim x084 As Double
Dim x05 As Double
Cells(7, 2) = "Ждите..."
'Очистка ячеек
n = Cells(2, 2)
For i = 2 To n + 2
Cells(i, 3) = ""
Cells(i, 4) = ""
' Cells(i, 5) = ""
Cells(i, 7) = ""
Cells(i, 8) = ""
Next i
'генерация элементов выборки 2
m = InputBox("Введите количество элементов выборки", "Ввод")
For i = 1 To m
Randomize
Cells(i + 2, 1) = RndN(0, 1)
Next i
For i = 1 To n
Application.Cells(i + 1, 3) = i
Next i
For i = 1 To n
Application.Cells(i + 1, 4) = i / n
Next i
'Построение прямой
min = Cells(2, 1)
For i = 3 To n + 1
If Cells(i, 1) < min Then min = Cells(i, 1)
Next i
max = Cells(2, 1)
For i = 2 To n
If Cells(i, 1) > max Then max = Cells(i, 1)
Next i
Cells(2, 7) = min
Cells(3, 7) = max
imin = 1
min = Application.Cells(2, 1)
For i = 3 To n
If Application.Cells(i, 1) > min Then imin = i - 1
If Application.Cells(i, 1) > min Then min = Application.Cells(i, 1)
Next i
imax = 1
max = Application.Cells(2, 1)
For i = 3 To n
If Application.Cells(i, 1) < max Then imax = i - 1
If Application.Cells(i, 1) < max Then max = Application.Cells(i, 1)
Next i
vmin = Application.Cells(imin + 1, 5)
vmax = Application.Cells(imax + 1, 5)
Application.Cells(4, 7) = vmax
Application.Cells(5, 7) = vmin
'Уравнение прямой имеет вид:
'x=(y-vmin)*(max-min)/(vmax-vmin)+min
x05 = (0.5 - vmin) * (max - min) / (vmax - vmin) + min
Cells(7, 7) = x05
x084 = (0.84 - vmin) * (max - min) / (vmax - vmin) + min
Cells(8, 7) = x084 - x05
Cells(7, 2) = "Готово."
End Sub
Приложение В
Текст программы макроса для алгоритма
прямой классификации
Private Sub CommandButton2_Click()
Dim i, j As Integer
Dim SUM As Integer
Dim flag As Integer
Dim max As Integer
Dim maxi As Double
Dim maxu As Double
Dim sr As Double
Dim sri As Double
Dim sru As Double
Dim l As Integer
Dim m As Integer
Dim jmin As Integer
Dim imin As Integer
Dim k(20) As Integer
SUM = 0
flag = 0
If OptionButton1.Value = True Then
Cells(19, 4) = "Ждите..."
n = Cells(1, 5)
' среднее по выборкам
For i = 1 To n
sr = sr + Cells(i + 1, 1)
Next i
Application.Cells(4, 4) = sr / n
For i = 1 To n
sri = sri + Cells(i + 1, 2)
Next i
Application.Cells(4, 5) = sri / n
For i = 1 To n
sru = sru + Cells(i + 1, 3)
Next i
Application.Cells(4, 6) = sru / n
'Максимальное значение
max = Cells(2, 1)
For i = 2 To n
If Cells(i, 1) > max Then max = Cells(i, 1)
Next i
Cells(7, 4) = max
maxi = Cells(2, 2)
For i = 2 To n
If Cells(i, 2) > maxi Then maxi = Cells(i, 2)
Next i
Cells(7, 5) = maxi
maxu = Cells(2, 3)
For i = 2 To n
If Cells(i, 3) > maxu Then maxu = Cells(i, 3)
Next i
Cells(7, 6) = maxu
maxu = Cells(2, 1)
For i = 2 To n
If Cells(i, 3) > maxu Then maxu = Cells(i, 1)
Next i
Cells(7, 4) = maxu
'Нормировка по формуле(6)
n = Cells(1, 5)
For i = 1 To n
Application.Cells(i + 2, 7) = Cells(i + 1, 1) / Cells(7, 4)
Next i
For i = 1 To n
Application.Cells(i + 2, 8) = Cells(i + 1, 2) / Cells(7, 5)
Next i
For i = 1 To n
Application.Cells(i + 2, 9) = Cells(i + 1, 3) / Cells(7, 6)
Next i
'по формуле (4)
n = Cells(1, 5)
For i = 1 To n
Application.Cells(i + 2, 10) = Cells(i + 1, 1) / Cells(4, 4)
Next i
For i = 1 To n
Application.Cells(i + 2, 11) = Cells(i + 1, 2) / Cells(4, 5)
Next i
For i = 1 To n
Application.Cells(i + 2, 12) = Cells(i + 1, 3) / Cells(4, 6)
Next i
Cells(19, 4) = "Готово"
GoTo metka
End If
If OptionButton5.Value = True Then
'по формуле (6)формируем матрицу расстояний
Cells(19, 4) = "Ждите..."
n = Cells(1, 5)
For i = 1 To n
For j = 1 To n
Application.Cells(j + 2, 18 + i) = Abs(Cells(j + 2, 7) - Cells(i + 2, 7)) + Abs(Cells(j + 2, 8) - Cells(i + 2, 8)) + Abs(Cells(j + 2, 9) - Cells(i + 2, 9))
Next j
Next i
'по формуле (4)формируем матрицу расстояний
n = Cells(1, 5)
For i = 1 To n
For j = 1 To n
Application.Cells(j + 24, 18 + i) = Sqr((Cells(j + 2, 10) - Cells(i + 2, 10)) * (Cells(j + 2, 10) - Cells(i + 2, 10)) + (Cells(j + 2, 11) - Cells(i + 2, 11)) * (Cells(j + 2, 11) - Cells(i + 2, 11)) + (Cells(j + 2, 12) - Cells(i + 2, 12)) * (Cells(j + 2, 12) - Cells(i + 2, 12)))
Next j
Next i
Cells(19, 4) = "Готово"
GoTo metka
End If
If OptionButton6.Value = True Then
Cells(19, 4) = "Ждите..."
'Выделение классов разделением на две части
n = Cells(1, 5)
For i = 1 To n / 2
k(i) = 1
Application.Cells(26 + i, 3) = Application.Cells(1 + i, 1)
Application.Cells(26 + i, 4) = Application.Cells(1 + i, 2)
Application.Cells(26 + i, 5) = Application.Cells(1 + i, 3)
Application.Cells(26 + i, 1) = i
Next i
For i = n / 2 + 1 To n
k(i) = 2
Application.Cells(26 + i, 3) = Application.Cells(1 + i, 1)
Application.Cells(26 + i, 4) = Application.Cells(1 + i, 2)
Application.Cells(26 + i, 5) = Application.Cells(1 + i, 3)
Application.Cells(16 + i, 2) = i
Next i
'формируем класс 1
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(2 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 1) And (k(j) = 2) Then
imin = i
jmin = j
min = Application.Cells(2 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 1
Application.Cells(25 + l, 7) = jmin
Next l
'формируем класс 2
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(2 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 2) And (k(j) = 1) Then
imin = i
jmin = j
min = Application.Cells(2 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 2
Application.Cells(30 + l, 7) = jmin
Next l
'Вывод классов на рабочий лист
l = 1
For i = 1 To n
If k(i) = 1 Then
Application.Cells(26 + l, 13) = i
Application.Cells(26 + l, 15) = Application.Cells(1 + i, 1)
Application.Cells(26 + l, 16) = Application.Cells(1 + i, 2)
Application.Cells(26 + l, 17) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
m = 1
For i = 1 To n
If k(i) = 2 Then
Application.Cells(26 + m, 14) = i
Application.Cells(36 + m, 15) = Application.Cells(1 + i, 1)
Application.Cells(36 + m, 16) = Application.Cells(1 + i, 2)
Application.Cells(36 + m, 17) = Application.Cells(1 + i, 3)
m = m + 1
End If
Next i
'Выделение классов по признаку четность
n = Cells(1, 5)
l = 1
For i = 1 To n
If i Mod 2 = 0 Then
k(i) = 1
Application.Cells(76 + l, 1) = i
Application.Cells(76 + l, 3) = Application.Cells(1 + i, 1)
Application.Cells(76 + l, 4) = Application.Cells(1 + i, 2)
Application.Cells(76 + l, 5) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
l = 1
For i = 1 To n
If i Mod 2 <> 0 Then
k(i) = 2
Application.Cells(76 + l, 2) = i
Application.Cells(86 + l, 3) = Application.Cells(1 + i, 1)
Application.Cells(86 + l, 4) = Application.Cells(1 + i, 2)
Application.Cells(86 + l, 5) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
'формируем класс 1 по признаку четность
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(2 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 1) And (k(j) = 2) Then
imin = i
jmin = j
min = Application.Cells(2 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 1
Application.Cells(75 + l, 7) = jmin
Next l
'формируем класс 2 по признаку четность
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(2 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 2) And (k(j) = 1) Then
imin = i
jmin = j
min = Application.Cells(2 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 2
Application.Cells(80 + l, 7) = jmin
Next l
'Вывод классов по признаку четность на рабочий лист
l = 1
For i = 1 To n
If k(i) = 1 Then
Application.Cells(76 + l, 13) = i
Application.Cells(76 + l, 15) = Application.Cells(1 + i, 1)
Application.Cells(76 + l, 16) = Application.Cells(1 + i, 2)
Application.Cells(76 + l, 17) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
m = 1
For i = 1 To n
If k(i) = 2 Then
Application.Cells(76 + m, 14) = i
Application.Cells(86 + m, 15) = Application.Cells(1 + i, 1)
Application.Cells(86 + m, 16) = Application.Cells(1 + i, 2)
Application.Cells(86 + m, 17) = Application.Cells(1 + i, 3)
m = m + 1
End If
Next i
'Работа с матрицей по евклидовому расстоянию
n = Cells(1, 5)
For i = 1 To n / 2
k(i) = 1
Application.Cells(126 + i, 3) = Application.Cells(1 + i, 1)
Application.Cells(126 + i, 4) = Application.Cells(1 + i, 2)
Application.Cells(126 + i, 5) = Application.Cells(1 + i, 3)
Application.Cells(126 + i, 1) = i
Next i
For i = n / 2 + 1 To n
k(i) = 2
Application.Cells(126 + i, 3) = Application.Cells(1 + i, 1)
Application.Cells(126 + i, 4) = Application.Cells(1 + i, 2)
Application.Cells(126 + i, 5) = Application.Cells(1 + i, 3)
Application.Cells(116 + i, 2) = i
Next i
'формируем класс 1
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(24 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 1) And (k(j) = 2) Then
imin = i
jmin = j
min = Application.Cells(24 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 1
Application.Cells(125 + l, 7) = jmin
Next l
'формируем класс 2
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(24 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 2) And (k(j) = 1) Then
imin = i
jmin = j
min = Application.Cells(24 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 2
Application.Cells(130 + l, 7) = jmin
Next l
'Вывод классов на рабочий лист
l = 1
For i = 1 To n
If k(i) = 1 Then
Application.Cells(126 + l, 13) = i
Application.Cells(126 + l, 15) = Application.Cells(1 + i, 1)
Application.Cells(126 + l, 16) = Application.Cells(1 + i, 2)
Application.Cells(126 + l, 17) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
m = 1
For i = 1 To n
If k(i) = 2 Then
Application.Cells(126 + m, 14) = i
Application.Cells(136 + m, 15) = Application.Cells(1 + i, 1)
Application.Cells(136 + m, 16) = Application.Cells(1 + i, 2)
Application.Cells(136 + m, 17) = Application.Cells(1 + i, 3)
m = m + 1
End If
Next i
n = Cells(1, 5)
l = 1
For i = 1 To n
If i Mod 2 = 0 Then
k(i) = 1
Application.Cells(176 + l, 1) = i
Application.Cells(176 + l, 3) = Application.Cells(1 + i, 1)
Application.Cells(176 + l, 4) = Application.Cells(1 + i, 2)
Application.Cells(176 + l, 5) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
l = 1
For i = 1 To n
If i Mod 2 <> 0 Then
k(i) = 2
Application.Cells(176 + l, 2) = i
Application.Cells(186 + l, 3) = Application.Cells(1 + i, 1)
Application.Cells(186 + l, 4) = Application.Cells(1 + i, 2)
Application.Cells(186 + l, 5) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
'формируем класс 1 по признаку четность
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(26 + j, i + 1) < min Then
If i <> j Then
If (k(i) = 1) And (k(j) = 2) Then
imin = i
jmin = j
min = Application.Cells(26 + j, i + 1)
End If
End If
End If
Next j
Next i
k(jmin) = 1
Application.Cells(175 + l, 7) = jmin
Next l
'формируем класс 2 по признаку четность
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(26 + j, i + 1) < min Then
If i <> j Then
If (k(i) = 2) And (k(j) = 1) Then
imin = i
jmin = j
min = Application.Cells(26 + j, i + 1)
End If
End If
End If
Next j
Next i
k(jmin) = 2
Application.Cells(180 + l, 7) = jmin
Next l
'Вывод классов по признаку четность на рабочий лист
l = 1
For i = 1 To n
If k(i) = 1 Then
Application.Cells(176 + l, 13) = i
Application.Cells(176 + l, 15) = Application.Cells(1 + i, 1)
Application.Cells(176 + l, 16) = Application.Cells(1 + i, 2)
Application.Cells(176 + l, 17) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
m = 1
For i = 1 To n
If k(i) = 2 Then
Application.Cells(176 + m, 14) = i
Application.Cells(186 + m, 15) = Application.Cells(1 + i, 1)
Application.Cells(186 + m, 16) = Application.Cells(1 + i, 2)
Application.Cells(186 + m, 17) = Application.Cells(1 + i, 3)
m = m + 1
End If
Next i
Cells(19, 4) = "Готово"
GoTo metka
End If
metka:
End Sub
Private Sub CommandButton3_Click()
'Очистка ячеек
Cells(19, 4) = "Ждите..."
Cells(4, 4) = ""
Cells(4, 5) = ""
Cells(4, 6) = ""
Cells(7, 4) = ""
Cells(7, 5) = ""
Cells(7, 6) = ""
For i = 2 To 20 + 2
Cells(i, 1) = ""
Cells(i, 2) = ""
Cells(i, 3) = ""
Next i
For i = 2 To 20 + 2
Cells(i + 1, 7) = ""
Cells(i + 1, 8) = ""
Cells(i + 1, 9) = ""
Next i
For i = 2 To 20 + 2
Cells(i + 1, 10) = ""
Cells(i + 1, 11) = ""
Cells(i + 1, 12) = ""
Next i
For i = 1 To 20
For j = 1 To 20
Cells(i + 2, j + 18) = ""
Next j
Next i
For i = 1 To 20
For j = 1 To 20
Cells(i + 24, j + 18) = ""
Next j
Next i
For i = 1 To 20 / 2
Cells(26 + i, 1) = ""
Cells(26 + i, 2) = ""
Cells(40 + i, 1) = ""
Cells(40 + i, 2) = ""
Cells(54 + i, 1) = ""
Cells(54 + i, 2) = ""
Cells(68 + i, 1) = ""
Cells(68 + i, 2) = ""
Cells(25 + i, 7) = ""
Cells(39 + i, 7) = ""
Cells(53 + i, 7) = ""
Cells(68 + i, 7) = ""
Next i
For i = 1 To 10
Cells(26 + i, 1) = ""
Cells(26 + i, 2) = ""
Cells(26 + i, 13) = ""
Cells(26 + i, 14) = ""
Cells(76 + i, 1) = ""
Cells(76 + i, 2) = ""
Cells(76 + i, 13) = ""
Cells(76 + i, 14) = ""
Cells(126 + i, 1) = ""
Cells(126 + i, 2) = ""
Cells(126 + i, 13) = ""
Cells(126 + i, 14) = ""
Cells(176 + i, 1) = ""
Cells(176 + i, 2) = ""
Cells(176 + i, 13) = ""
Cells(176 + i, 14) = ""
Cells(25 + i, 7) = ""
Cells(75 + i, 7) = ""
Cells(125 + i, 7) = ""
Cells(175 + i, 7) = ""
Next i
For i = 1 To 20
Cells(26 + i, 3) = ""
Cells(26 + i, 4) = ""
Cells(26 + i, 5) = ""
Cells(76 + i, 3) = ""
Cells(76 + i, 4) = ""
Cells(76 + i, 5) = ""
Cells(126 + i, 3) = ""
Cells(126 + i, 4) = ""
Cells(126 + i, 5) = ""
Cells(176 + i, 3) = ""
Cells(176 + i, 4) = ""
Cells(176 + i, 5) = ""
Cells(26 + i, 15) = ""
Cells(26 + i, 16) = ""
Cells(26 + i, 17) = ""
Cells(76 + i, 15) = ""
Cells(76 + i, 16) = ""
Cells(76 + i, 17) = ""
Cells(126 + i, 15) = ""
Cells(126 + i, 16) = ""
Cells(126 + i, 17) = ""
Cells(176 + i, 15) = ""
Cells(176 + i, 16) = ""
Cells(176 + i, 17) = ""
Cells(19, 4) = "Готово."
End Sub
Private Sub CommandButton4_Click()
UserForm1.Hide
End Sub
Private Sub CommandButton5_Click()
'генерация элементов выборки 2
m = InputBox("Введите количество элементов второй подвыборки", "Ввод")
If m > 20 Then
MsgBox "Количество элементов более 20 не обрабатывается!", 48, "Ошибка!"
GoTo metka
End If
Cells(19, 4) = "Ждите..."
For i = 1 To m
Randomize
Cells(i + 11, 1) = RndN(2, 1)
Next i
For i = 1 To m
Randomize
Cells(i + 11, 2) = RndN(2, 1)
Next i
For i = 1 To m
Randomize
Cells(i + 11, 3) = RndN(2, 1)
Next i
Cells(19, 4) = "Готово."
metka:
End Sub
Приложение Г
Текст программы макроса для непараметрических методов статистического описания выборки
Dim task As Integer
Private Sub CommandButton1_Click()
Dim n As Integer, k As Integer, i As Integer, j As Integer, _
c() As Double, t As Double
For i = 18 To 500
For j = 3 To 7
Cells(i, j) = ""
Next j
Next i
If Cells(16, 3) = "" Then
Cells(17, 5) = "Введите объем выборки в ячейку C8"
End If
If Cells(17, 3) = "" Then
Cells(17, 5) = "Введите число интервалов в ячейку C9"
End If
n = Cells(16, 3)
k = Cells(17, 3)
ReDim c(n)
For i = 1 To n
c(i) = Cells(18 + i, 1)
Next i
For i = 1 To n - 1
For j = 1 To n - i
If c(j) > c(j + 1) Then
t = c(j)
c(j) = c(j + 1)
c(j + 1) = t
End If
Next j
Next i
Select Case task
Case 1: f = EIGistPol(k, n, c)
Case 2: f = EFGist(k, n, c)
If f = -1 Then
Cells(23, 4) = "Невозможно построить равнона-"
Cells(24, 4) = "полненную гистограмму"
End If
Case 3: f = NuclAppr(k, n, c)
End Select
End Sub
Private Sub OptionButton1_Click()
task = 1
End Sub
Private Sub OptionButton2_Click()
task = 2
End Sub
Private Sub OptionButton3_Click()
task = 3
End Sub
Function EIGistPol(k As Integer, n As Integer, c() As Double) As Integer
Dim i As Integer, j As Integer, m As Integer, _
h As Double, f() As Double
h = (c(n) - c(1)) / k
ReDim f(k)
Cells(18, 3) = "EIGdeltk"
Cells(19, 3) = c(1)
Cells(18, 6) = "EIGist"
For i = 1 To k
m = 0
For j = 1 To n
If c(j) >= c(1) + (i - 1) * h And c(j) <= c(1) + i * h Then m = m + 1
Next j
f(i) = m / (n * h)
Cells(19 + i, 3) = c(1) + i * h
Cells(18 + i, 6) = f(i)
Next i
Cells(18, 4) = "EIPdeltk"
Cells(19, 4) = c(1) - h / 2
Cells(19, 7) = 0
Cells(18, 7) = "EIPol"
For i = 1 To k
Cells(19 + i, 4) = c(1) + i * h - h / 2
Cells(19 + i, 7) = f(i)
Next i
Cells(20 + k, 4) = c(n) + h / 2
Cells(20 + k, 7) = 0
EIGistPol = 1
End Function
Function EFGist(k As Integer, n As Integer, c() As Double) As Integer
Dim i As Integer, j As Integer, s As Integer, m As Integer, _
f() As Double, p() As Double
ReDim f(k)
If n Mod k = 0 Then
m = n / k
Else
Cells(20, 4) = "Множество значений выборки "
Cells(21, 4) = "нельзя разбить на указанное "
Cells(22, 4) = "число равнонаполненных интервалов"
EFGist = -1
Exit Function
End If
If c(1) = c(n) Then
Cells(20, 4) = "Построить равнонаполненные гистограмму"
Cells(20, 4) = " и полигон частот по данной выборке "
Cells(20, 4) = "нельзя, так как выборка однородна"
End If
ReDim p(k, 3)
s = 0
For i = 0 To k - 1
For j = 0 To n - i * m + s - 1
If c((i + 1) * m) <> c(i * m - s + 1) Then
p(i + 1, 1) = c(i * m - s + 1)
p(i + 1, 2) = c((i + 1) * m + j) - c(i * m - s + 1)
p(i + 1, 3) = (m + j + s) / (n * k * p(i + 1, 2))
s = -j
GoTo ni
Else
j = j + 1
End If
Next j
ni: Next i
Cells(18, 4) = "EPxGist"
Cells(18, 5) = "EPhGist"
Cells(18, 6) = "EPxPol"
Cells(18, 7) = "EPhPol"
s = 0
For i = 1 To k
Cells(18 + 4 * i - 3, 4) = p(i, 1)
Cells(18 + 4 * i - 2, 4) = p(i, 1)
Cells(18 + 4 * i - 1, 4) = p(i, 1) + p(i, 2)
Cells(18 + 4 * i, 4) = p(i, 1) + p(i, 2)
Cells(18 + 4 * i - 3, 5) = 0
Cells(18 + 4 * i - 2, 5) = p(i, 3)
Cells(18 + 4 * i - 1, 5) = p(i, 3)
Cells(18 + 4 * i, 5) = 0
Cells(18 + i, 6) = p(i, 1) + p(i, 2) / 2
Cells(18 + i, 7) = p(i, 3)
Next i
EFGist = 1
End Function
Function NuclAppr(k As Integer, n As Integer, c() As Double) As Integer
Dim i As Integer, j As Integer, _
f As Double, x() As Double, _
d As Double, cof As Double
ReDim x(n, 2)
d = (c(n) - c(1)) / k
Cells(18, 5) = "x"
Cells(18, 7) = "NAp"
For i = 1 To n
x(i, 1) = c(i) - d / 2
x(i, 2) = c(i) + d / 2
Cells(18 + 2 * i - 1, 5) = x(i, 1)
Cells(18 + 2 * i, 5) = x(i, 2)
Next i
For i = 1 To n
cof = (k - 1) / (n + 1) / (c(n) - c(1)) / k
f = 0
For j = 1 To n
If c(j) >= x(i, 1) And c(j) <= x(i, 2) Then f = f + 1
Next j
f = cof + n / (n + 1) * f / d
Cells(18 + i, 7) = f
Next i
NuclAppr = 1
End Function