Рефераты
 

Разработка программно-технологического обеспечения статистического описания объектов посредством Visual Basic for Application Excel

тап 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.

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

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

1 Выбрать команду Сервис, Анализ данных (Tools, Data Analysis). Появляется диалоговое окно Анализ данных

2 Выбрать пункт Генерация случайных чисел (Random Number Generation). Появляется диалоговое окно Генерация случайных чисел.

3 Выбрать Нормальное распределение в списке Распредеение (Distribution).

4 Ввести число 3 в поле Число переменных (Number of Variables), что означает число столбцов, которые заполнены последовательностью.

5 Ввести число 20 в поле Число случайных чисел (Number Random Numbers), т. е. последовательность занимает 20 строк.

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

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 средства автоматизации, которые позволяют быстро и эффективно получить требуемую информацию о классификации выборки упрощенным методом К - ближайших соседей, о правильности выполнения лабораторной работы на тему «Оценка функции распределения с помощью нормальной вероятностной бумаги» из курса «Пакеты статистической обработки данных», а также аппроксимировать неизвестную функцию плотности распределения непараметрическими методами.

Таким образом, созданы обучающие средства, позволяющие

ѕ преподавателю упростить процедуру проверки правильности выполнения работ;

ѕ студентам упростить решение задачи статистического описания;

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1
Айвазян С.А., Бухштабер В.М., Енюков И.С и др. Прикладная статистика: Классификация и снижение размерности. - М.: Финансы и статистика. 1989. -605с.

2 Айвазян С.А., Енюков И.С., Мешалкин Л.Д. Прикладная статистика: основы моделирования и первичная обработка данных. - М.: Финансы и статистика. 1983. -472c.

3 Афифи А., Эйзен С. Статистический анализ. Подход с использованием ЭВМ. - М.: Мир.1982. -405с.

4 О формировании эмпирического образа данных/ Осипенко А.Н., Осипенко Н.Б.// -M.: НТИ. Сер. 2. 1990. -С.30-35.

5 Пособие для лабораторных занятий по спецкурсу «Обработка экспериментальных данных на ЭВМ» (для специальностей Н.01.01 и Н.08.01)/ Максимей И.В., Осипенко Н.Б., Осипенко А.Н. Гомель: ГГУ, 1998. -54с.

6 Мандель И.Д. Кластерный анализ. - М.: Финансы и статистика, 1988. -172с

Приложение А

Апробация программного обеспечения алгоритма прямой классификации средствами пакета анализа данных STATISTICA

Краткая характеристика пакета STATISTICA

Для анализа данных исследователь может воспользоваться готовыми пакетами анализа данных. Одним из таких пакетов статистической обработке является пакет STATISTICA.

Пакет STATISTICA является одним из наиболее мощных пакетов по статистической обработке.

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

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

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

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

ѕ электронных таблиц для ввода и задания исходных данных, а также специальных таблиц для вывода численных результатов анализа;

ѕ мощной графической системы для визуализации данных и результатов статистического анализа;

ѕ набора специализированных статистических модулей, в которых собраны группы логически связанных между собой статистических процедур;

ѕ специального инструментария для подготовки отчетов;

ѕ встроенных языков программирования SCL (STATISTICA Command Language) и STATISTICA BASIC, которые позволяют пользователю расширить стандартные возможности системы.

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

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

Опишем основные модули пакета STATISTICA, используемые в работе:

ѕ модуль диалога

ѕ модуль построения/выполнения технологических цепочек

ѕ модуль управления данными.

ѕ модуль статистических функций

ѕ модуль визуализации

1 Модуль диалога. С помощью данного модуля пользователь производит выбор необходимого ему метода обработки информации или технологической цепочки методов и выполняет настройку соответствующих параметров. Данная компонента обеспечивает удобный интерфейс с пользователем в системе Windows. Предлагается широкий спектр диалоговых окон для настройки как параметров предоставляемого набора функций (статистической обработки, визуализации результатов и т.д.), так и параметров среды общения, что позволяет настроить модуль под конкретного пользователя. Также обеспечивается возможность справки по текущей ситуации.

2 Модуль построения/выполнения технологических цепочек. Данный модуль позволяет описывать часто используемую цепочку действий по обработке информации в виде пакета команд предлагаемого SCL-языка (STATISTICA Command Language), синтаксис которого очень похож на распространенный язык Basic или Pascal. Практически все возможности пакета STATISTICA продублированы соответствующими командами-функциями, на вход которых подаются продекларированные параметры настройки. Заметим, что возможности расширены вплоть до имитации работы пользователя (запись и воспроизведение команд пользователя и имитация работы органов управления посредством SCL-команд). Модуль реализован в виде двух Windows-программ: sta_com.exe (конструктор) и sta_run.exe (процессор). Созданные технологические цепочки хранятся в базе знаний в виде текстового файла с расширением SCL и могут выполняться посредством процессора sta_run из других Windows-приложений. Эта возможность позволяет строить проблемно-ориентированный программный инструментарий, который будет более понятен и прост в использовании для специалиста, что значительно повысит эффективность его работы.

3 Модуль управления данными. 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.

4 Модуль статистических функций. Здесь предлагается широкий спектр возможностей статистического анализа данных. Из-за большого объема информации по предлагаемым методам анализа ограничимся краткой характеристикой каждого из них:

ѕ 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);

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

ѕ 2-мерная графика: гистограмма, XY-проекция, вероятностная бумага (нормальная, полунормальная), ящики с “усами”, круговые диаграммы и другое;

ѕ 3-мерная графика: проекции, гистограммы, ящики с “усами” и т.д.;

ѕ различные 3-мерные проекции;

ѕ отображение многомерной выборки в виде “лиц Чернова”, графиков Кивиата, полигонов, профилей и т.д.

Имеется возможность сохранения результатов в виде файлов данных (для таблиц), STG-файлов (для графики) либо в виде твердой копии с помощью функций печати. Используя стандартные OLE-операции можно также вставлять результаты в документы и электронные таблицы (Word, PageMaker, Exсel и другие приложения Windows, поддерживающие стандарт OLE).

Технология статистического анализа данных пакета STATISTICA

Данная работа в пакете Statistica апробирована среди студентов математического факультета группы ПОИТ-36.

Для начала работы с пакетом Statistica необходимо подготовить данные измерений в виде файла формата dBase или в Excel. Дальнейшее выполнение технологических цепочек с использованием пакета Statistica предполагает предварительный импорт данных во внутренний формат данных пакета. Для этого необходимо выполнить следующую цепочку действий:

1 Вызов пакета Statistica из Windows: \Пуск \Программы \Statistica. После этого пользователю будет предложено выбрать раздел, с которым он будет работать.

2 Выбор раздела управления данными: \Data Management MFM \Switch To \Cancel.

3 Выбор операции импорта исходных данных: \File \Import \ODBC.

4 Выбор типа импортируемого файла: \dBase Files \OK;

5 Указание пути к данным: \Выбор диска \Выбор папки \OK.

6 Указание импортируемой таблицы: \Tables \<выбор>.

7 Выбор списка рабочих полей: \Fields \<выбор> \ADD.

8 Импорт данных: \OK \<ввод имени: data > \OK. Если появиться окно диалога `File exist...', то нажать кнопку `OK'.

9 Выход: \File \Exit.

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

1 Нормирование данных: \Statistica \Data Management MFM \<выбор всех признаков> \Edit \Fill/Standardize Block \Standardize Columns. При этом осуществляется стандартная нормировка , где - среднее по признаку (столбцу) х, - стандартное отклонение по признаку х.

2 Сохранение нормированной выборки: \File \Save As \File Name: normir \OK.

3 Выбор раздела кластерного анализа: \Statistica \Cluster Analysis \Switch To.

Таким образом, следующие методы классификации ориентированы на рабочий файл `normir.sta'.

Алгоритмы прямой классификации методом иерархической классификации и методом К-средних приведены в пунктах 1.2.5 и 1.2.6.

Технологическая цепочка автоматической классификации методом иерархической классификации имеет вид:

1 Выбор метода иерархической классификации: \Joining (tree clustering).

2 Выбор признаков для классификации: \Variables \<выбор> \OK \OK.

3 В результате будет предложено графическое отражение процесса иерархической классификации. График можно распечатать (\File \Print Graph \OK) или сохранить в файле (\File \Save as). С помощью комбинации клавиш Ctrl+Ins, график можно сохранить в буфере обмена Windows и далее с помощью вставки данных буфера обмена (Shift+Ins) использовать его в редакторах отчетов.

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

5 Выход: \Ctrl+F4 \Cancel \Cancel.

Технологическая цепочка автоматической классификации методом К-средних имеет вид:

1 Выбор метода К-средних: \K-means clustering.

2 Выбор признаков для классификации: \Variables \<выбор> \OK.

3 Указание возможного количества классов: \Number of clusters: <ввод количества> \OK.

4 Просмотр признакового состава классов: \Members of each cluster & distances.

5 В результате будут выведены таблицы, отражающие состав признаков по классам.

6 Формирование выходного отчета с использованием операций обмена с буфером Windows (полученные таблицы вставляются в выходной документ).

7 Выход: \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

Страницы: 1, 2


© 2010 BANKS OF РЕФЕРАТ