This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:data_analysis_and_interpretation:task4 [2019/01/17 08:29] andrey.suchkov |
courses:data_analysis_and_interpretation:task4 [2022/12/10 09:08] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Практическая работа №4: Изучение дискриминантного анализа ====== | + | ====== Практическая работа №4: Исследование методов кластер-анализа ====== |
===== Цель работы ===== | ===== Цель работы ===== | ||
- | ознакомиться с методами дискриминантного анализа на основе пакета Statistica. | + | Ознакомиться с методами кластер-анализа на основе языка R. |
===== Основные теоретические положения ===== | ===== Основные теоретические положения ===== | ||
- | Дискриминантный анализ используется для принятия решения о том, какие переменные различают (дискриминируют) две или более возникающие совокупности (группы). Например, некий исследователь в области образования может захотеть исследовать, какие переменные относят выпускника средней школы к одной из трех категорий: (1) поступающий в колледж, (2) поступающий в профессиональную школу или (3) отказывающийся от дальнейшего образования или профессиональной подготовки. Для этой цели исследователь может собрать данные о различных переменных, связанных с учащимися школы. После выпуска большинство учащихся естественно должно попасть в одну из названных категорий. Затем можно использовать Дискриминантный анализ для определения того, какие переменные дают наилучшее предсказание выбора учащимися дальнейшего пути.\\ | + | Термин кластерный анализ (впервые понятие введено математиком Р. Трионом, 1939) в действительности включает в себя набор различных алгоритмов классификации. Общий вопрос, задаваемый исследователями во многих областях, состоит в том, как организовать наблюдаемые данные в наглядные структуры, т.е. развернуть таксономии. Например, биологи ставят цель разбить животных на различные виды, чтобы содержательно описать различия между ними. В соответствии с современной системой, принятой в биологии, человек принадлежит к приматам, млекопитающим, амниотам, позвоночным и животным. Заметьте, что в этой классификации, чем выше уровень агрегации, тем меньше сходства между членами в соответствующем классе. Человек имеет больше сходства с другими приматами (т.е. с обезьянами), чем с <<отдаленными>> членами семейства млекопитающих (например, собаками) и т.д. |
- | Медик может регистрировать различные переменные, относящиеся к состоянию больного, чтобы выяснить, какие переменные лучше предсказывают, что пациент, вероятно, выздоровел полностью (группа 1), частично (группа 2) или совсем не выздоровел (группа 3). Биолог может записать различные характеристики сходных типов (групп) цветов, чтобы затем провести анализ дискриминантной функции, наилучшим образом разделяющей типы или группы.\\ | + | |
- | //Функции классификации.// Функции классификации предназначены для определения того, к какой группе наиболее вероятно может быть отнесен каждый объект. Имеется столько же функций классификации, сколько групп. Каждая функция позволяет вам для каждого образца и для каждой совокупности вычислить веса классификации по формуле: | + | Фактически, кластерный анализ является не столько обычным статистическим методом, сколько <<набором>> различных алгоритмов <<распределения объектов по кластерам>>. Существует точка зрения, что в отличие от многих других статистических процедур, методы кластерного анализа используются в большинстве случаев тогда, когда вы не имеете каких-либо априорных гипотез относительно классов, но все еще находитесь в описательной стадии исследования. Следует понимать, что кластерный анализ определяет <<наиболее возможно значимое решение>>. |
- | $$ | + | |
- | S_i = c_i + \sum_{j = 1}^mw_{ij}x_j. | + | //Деревья кластеризации.// Назначение алгоритма построения деревьев кластеризации заключается в постепенном объединении объектов в достаточно большие кластеры, используя меры расстояния и сходства между объектами. |
- | $$ | + | На первом шаге каждый объект является кластером. При переходе к следующему шагу группы объектов объединяются в кластеры на основе меры расстояния и выбранного метода. На каждом следующем шаге процедура повторяется для наиболее «близких» друг к другу кластеров. |
- | В этой формуле индекс $i$ обозначает соответствующую совокупность, а индекс $j$ обозначает переменную; $c_i$ являются константами для $i$-ой совокупности, $w_{ij}$ – веса для $j$-ой переменной при вычислении показателя классификации для $i$-ой совокупности; $x_j$ - наблюдаемое значение для соответствующего образца $j$-ой переменной. Величина $S_i$ является результатом показателя классификации. Переменные с наибольшими регрессионными коэффициентами вносят наибольший вклад в дискриминацию.\\ | + | Использующиеся меры расстояния между объектами: |
- | Расстояние Махаланобиса является мерой расстояния между двумя точками в пространстве, определяемым двумя или более коррелированными переменными. Например, если имеются всего две некоррелированных переменные, то можно нанести точки (образцы) на стандартную диаграмму рассеяния. Расстояние Махаланобиса между точками будет в этом случае равно расстоянию Евклида, т.е. расстоянию, измеренному, например, рулеткой. Если имеются три некоррелированные переменные, то для определения расстояния вы можно по-прежнему использовать рулетку (на 3М диаграмме). При наличии более трех переменных вы не можете более представить расстояние на диаграмме. Также и в случае, когда переменные коррелированы, то оси на графике могут рассматриваться как неортогональные (они уже не направлены под прямыми углами друг к другу). В этом случае простое определение расстояния Евклида не подходит, в то время как расстояние Махаланобиса является адекватно определенным в случае наличия корреляций. Для расчёта ошибок классификации удобнее всего представить расстояние Махалонобиса, как симметричную матрицу с нулевой главной диагональю: | + | * Евклидово расстояние: $d(x,\,y) = \|\mathbf x + \mathbf y\| = \sqrt{\sum_i(x_i - y_i)^2}$. |
- | $$ R = | + | * Манхэттенское расстояние (расстояние городских кварталов): $d(x,\,y) = \sum_i|x_i - y_i|$. |
- | \begin{pmatrix} | + | * Расстояние Чебышева: $d(x,\,y) = \max|x_i - y_i|$. |
- | 0 & r_{12}^2 & \ldots & r_{1M}^2\\ | + | Использующиеся способы объединения кластеров: |
- | r_{21}^2 & 0 & \ldots & r_{2M}^2\\ | + | * Одиночная связь (метод ближайшего соседа). В этом методе расстояние между двумя кластерами определяется расстоянием между двумя наиболее близкими объектами (ближайшими соседями) в различных кластерах; |
- | \vdots & \vdots & \ddots &\vdots\\ | + | * Полная связь (метод наиболее удаленных соседей). В этом методе расстояния между кластерами определяются наибольшим расстоянием между любыми двумя объектами в различных кластерах, то есть <<наиболее удаленными соседями>>. |
- | r_{M1}^2 & r_{M2}^2 & \ldots & 0 | + | * Невзвешенное попарное среднее. В этом методе расстояние между двумя различными кластерами вычисляется как среднее расстояние между всеми парами объектов в них. |
- | \end{pmatrix}, | + | * Метод Варда. Метод минимизирует сумму квадратов для любых двух (гипотетических) кластеров, которые могут быть сформированы на каждом шаге. |
- | $$ | + | //Метод k-means (k-средних).// Предположим, уже имеются гипотезы относительно числа кластеров (по наблюдениям или по переменным). Можно указать системе образовать ровно три кластера так, чтобы они были настолько различны, насколько это возможно. Это именно тот тип задач, которые решает алгоритм метода //k//-means. В общем случае метод //k//-means строит ровно //k// различных кластеров, расположенных на возможно больших расстояниях друг от друга. |
- | $r_{ij} = r_{ji}$, $r_{ij} = 0$ при $i = j$. Элементы матрицы можно найти как: | + | ===== Постановка задачи ===== |
- | $$ | + | ===== Порядок выполнения работы ===== |
- | r_{ij}^2 = (\mu_i - \mu_j)^T\Sigma^{-1}(\mu_i - \mu_j), | + | ===== Содержание отчёта ===== |
- | $$ | + | |
- | где $\mu_i$ и $\mu_j$ – вектора математических ожиданий для первого и второго класса соответственно, $\Sigma$ – ковариационная матрица. Вероятность ошибки можно определить следующим образом: | + | |
- | $$ | + | |
- | P(i \mid j) = \Phi\left(-\frac{r_{ij}}2\right) = 1 - \Phi\left(\frac{r_{ij}}2\right), | + | |
- | $$ | + | |
- | где $\Phi(\cdot)$ – функция ошибок.\\ | + | |
- | //Пошаговый анализ с включением.// В пошаговом анализе дискриминантных функций модель дискриминации строится по шагам. Точнее, на каждом шаге просматриваются все переменные и находится та из них, которая вносит наибольший вклад в различие между совокупностями. Эта переменная должна быть включена в модель на данном шаге, и происходит переход к следующему шагу.\\ | + | |
- | //Пошаговый анализ с исключением.// Можно также двигаться в обратном направлении, в этом случае все переменные будут сначала включены в модель, а затем на каждом шаге будут устраняться переменные, вносящие малый вклад в предсказания. Тогда в качестве результата успешного анализа можно сохранить только "важные" переменные в модели, то есть те переменные, чей вклад в дискриминацию больше остальных. Эта пошаговая процедура "руководствуется" соответствующим значением $F$ для включения и соответствующим значением $F$ для исключения. Значение $F$ статистики для переменной указывает на ее статистическую значимость при дискриминации между совокупностями, то есть, она является мерой вклада переменной в предсказание членства в совокупности. | + | |
- | ===== Общая формулировка задачи ===== | + | |
- | * Провести исследование по построению дискриминантных функции для имеющихся экспериментальных данных. | + | |
- | * Подготовить самостоятельно модельные примеры из многомерных нормальных векторов с заданными векторами математического ожидания и ковариационной матрицей. | + | |
- | * Провести эксперименты по классификации на модельных примерах аналогично описанным выше. Провести теоретический расчет ошибок классификации для модельных примеров и сравнить их с результатами, полученными в Statistica. | + | |
- | ==== Порядок выполнения работы ==== | + | |
- | === 1. Построение дискриминантных функций === | + | |
- | - В системе Statistica в панели Statistics (Анализ) → Multivariate Exploratory Techniques (Многомерный анализ) выбрать пункт Discriminant (Дискриминантный анализ). | + | |
- | - Выбрать переменные Variables, указать номер группирующей переменной и независимых переменных. | + | |
- | - В появившемся окне появляется панель с единственной закладкой Quick (Быстрый). Выбрать Variables (Переменные), в первом окне в качестве группирующей переменной указать класс (как правило, последняя переменная), во втором окне выбрать все остальные переменные. | + | |
- | - Запустить дискриминантный анализ нажатием на клавишу ОК. В окне Discriminant Function Analysis (Результаты анализа дискриминантных функций) во вкладке Quick (Быстрый) нажать «Summary: Variables in Model» (Переменные в модели). Получены результаты дискриминантного анализа. | + | |
- | - Просмотреть результаты дискриминантного анализа в окне Discriminant Function Analysis (Результаты анализа дискриминантных функций) во вкладке Classification (Классификация): | + | |
- | * Unordered List ItemVariables in model (Переменные в модели); | + | |
- | * Classification matrix (Матрица классификации); | + | |
- | * Classification cases (Классификация наблюдений); | + | |
- | * Classification functions (Функции классификации). | + | |
- | - Сохранить результаты для отчета. | + | |
- | === 2. Метод дискриминантного анализа с включением переменных === | + | |
- | - Запустить дискриминантный анализ аналогично пункту 1, выбрать переменные для анализа. Указать опцию «Advanced option» (Дополнительные параметры). | + | |
- | - В окне «Model Definition» (Определение модели) на вкладке «Quick» (Быстрый) выбрать метод «Forward stepwise» (Пошаговый с включением). На вкладке «Advanced» (Дополнительно) установить F – включения равным 4.0, а также Display results – At each step (Вывод результатов – На каждом шаге). | + | |
- | - Нажать Next, тем самым перейдя к первому шагу. | + | |
- | - Выполнить все шаги, вывести таблицы из пункта 1 в отчет. | + | |
- | - Сравнить результаты, полученные на последнем шаге с результатами из пункта 1. | + | |
- | === 3. Метод дискриминантного анализа с исключением переменных === | + | |
- | - Выполнить действия, описанные в пункте 2, со следующими изменениями: | + | |
- | * Выбрать метод «Backward stepwise» (Пошаговый с исключением). | + | |
- | * На вкладке «Advanced» (Дополнительно) установить F-исключения равным 3.9. | + | |
- | - Выполнить все шаги, вывести таблицы из пункта 1 в отчет. | + | |
- | - Сравнить результаты, полученные на последнем шаге, с результатами из пп. 1 и 2. | + | |
- | === 4. Разработка статистической модели данных === | + | |
- | - Подготовить самостоятельно модельные примеры из многомерных нормальных векторов с заданными векторами математического ожидания и ковариационной матрицей. | + | |
- | - Провести эксперименты по классификации на модельных примерах аналогично описанным выше. Провести теоретический расчет ошибок классификации для модельных примеров и сравнить их с результатами, полученными по программе Statistica. | + | |
- | == Задание на разработку статистических данных == | + | |
- | Модель представляет собой набор многомерных векторов $\vec x = (x_1,\,\dots,\ x_m)$ , $m = 2,\,3$, имеющих заданные вектора математических ожиданий $\mu_i$, $i = 1..M$ и заданные ковариационные матрицы (одинаковые по классам), которые имеют вид $\Sigma = \mathop{\mathrm{diag}}\nolimits\{\sigma_1,\,\dots,\,\sigma_m\}$. Компоненты векторов имеют нормальное распределение. Количество классов равно $M = 2,\,3$. | + | |
- | ^ № варианта ^ Размерность $m$ ^ Объём выборки $N$ по классу ^ Вектора $\mu_i$ ^ Значения $\sigma_i$ ^ Количество классов $M$ ^ | + | |
- | | 1 | 2 | 100 | $\mu_1 = (1,\,2)^T \\ \mu_2 = (1,\,-2)^T$ | $\sigma_1 = 1 \\ \sigma_2 = 1$ | 2 | | + | |
- | | 2 | 2 | 300 | $\mu_1 = (1.5,\,3)^T \\ \mu_2 = (3,\,4)^T \\ \mu_3 = (-1.5,\,-1)^T$ | $\sigma_1 = 1 \\ \sigma_2 = 1$ | 3 | | + | |
- | | 3 | 3 | 150 | $\mu_1 = (1,\,1,\,1)^T \\ \mu_2 = (2,\,2,\,2)^T$ | $\sigma_1 = 0.5 \\ \sigma_2 = 1 \\ \sigma_3 = 0.5$ | 2 | | + | |
- | | 4 | 3 | 150 | $\mu_1 = (1,\,1,\,1)^T \\ \mu_2 = (2.5,\,2.5,\,2.5)^T \\ \mu_3 = (4,\,4,\,4)^T$ | $\sigma_1 = 0.5 \\ \sigma_2 = 1 \\ \sigma_3 = 2$ | 3 | | + | |
- | | 5 | 2 | 200 | $\mu_1 = (-0.5,\,2)^T \\ \mu_2 = (-1,\,4)^T$ | $\sigma_1 = 1.5 \\ \sigma_2 = 1$ | 2 | | + | |
- | | 6 | 2 | 250 | $\mu_1 = (1,\,1)^T \\ \mu_2 = (4,\,2.5)^T \\ \mu_3 = (-1,\,3)^T$ | $\sigma_1 = 1.3 \\ \sigma_2 = 0.8$ | 3 | | + | |
- | | 7 | 3 | 100 | $\mu_1 = (0,\,0,\,0)^T \\ \mu_2 = (3,\,3,\,3)^T$ | $\sigma_1 = 1.5 \\ \sigma_2 = 1 \\ \sigma_3 = 2$ | 2 | | + | |
- | | 8 | 3 | 200 | $\mu_1 = (-1,\,-1,\,-1)^T \\ \mu_2 = (0,\,0,\,0)^T \\ \mu_3 = (2,\,2,\,2)^T$ | $\sigma_1 = 1 \\ \sigma_2 = 0.5 \\ \sigma_3 = 1$ | 3 | | + | |
- | | 9 | 2 | 250 | $\mu_1 = (1.5,\,1)^T \\ \mu_2 = (3,\,2.7)^T$ | $\sigma_1 = 1 \\ \sigma_2 = 1.2$ | 2 | | + | |
- | | 10 | 2 | 180 | $\mu_1 = (-0.9,\,2.7)^T \\ \mu_2 = (0,\,-5)^T \\ \mu_3 = (-1,\,-1)^T$ | $\sigma_1 = 0.25 \\ \sigma_2 = 2$ | 3 | | + | |
- | | 11 | 3 | 200 | $\mu_1 = (-1,\,2,\,-3)^T \\ \mu_2 = (2,\,-1,\,0)^T$ | $\sigma_1 = 0.75 \\ \sigma_2 = 0.3 \\ \sigma_3 = 1.6$ | 2 | | + | |
- | | 12 | 3 | 150 | $\mu_1 = (4,\,4.5,\,3.7)^T \\ \mu_2 = (5.2,\,4.9,\,4.1)^T \\ \mu_3 = (2.2,\,3.9,\,3.8)^T$ | $\sigma_1 = 0.3 \\ \sigma_2 = 0.5 \\ \sigma_3 = 0.6$ | 3 | | + | |