Главная страница
Случайная страница
КАТЕГОРИИ:
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Порядок создания do-файла
Выделим все использовавшиеся команды в окне Command и нажмем правую кнопку мыши. В контекстном меню выберем Send to Do-file Editor (рисунок 4.73).

Рисунок 4.73 – Вид основного меню Stata перед копированием команд в редактор do-файлов
Откроется окно редактора do-файлов, в которое будут скопированы все выделенные команды (рисунок 4.74).

Рисунок 4.74 –Вид окна редактора do-файлов после вставки команд
При проведении анализа мы использовали однотипные операции, которые нужно было применить к нескольким переменным, например, стандартизация. Целесообразно в этом случае использовать цикл, который мог бы выглядеть, например, так:
forvalues i=1/5 {
egen float nx`i' = std(x`i'), mean(0) std(1)
}
Осуществляя любые операции со статистическими данными, нужно вести лог операций. Для этого используется команда log using путь к файлу лога, replace.
Например, log using " C: \stata\cluster\cluster_log1.log", replace.
Примерный вид do-файла для проведения кластерного анализа представлен на рисунке 4.75.

Рисунок 4.75 - Примерный вид do-файла для проведения кластерного анализа
Описание использованных команд представлено в таблице 4.9.
Таблица 4.9 – Описание команд в do-файле для проведения кластерного анализа
№ строки do-файла
| Команда
| Описание
| (1)
| (2)
| (3)
|
| clear
| очистить память
|
| log using " C: \stata\cluster\cluster_log1.log", replace
| открыть или перезаписать существующий файл лога по указанному адресу
|
| use " C: \stata\cluster\cluster_1.dta", replace
| использовать для анализа файл с данными по указанному пути
|
| forvalues i=1/5 {
| начать цикл forvalues
|
| egen float nx`i' = std(x`i'), mean(0) std(1)
| создать новую переменную nxi, стандартизировав переменную xi
|
| }
| закончить цикл forvalues
|
| cluster completelinkage nx1 nx2 nx3 nx4 nx5, measure(L2) name(clus_complete)
| провести классификацию методом полных связей по переменным nx1 nx2 nx3 nx4 nx5, используя в качестве метрики обычное евклидово расстояние, задав имя clus_complete
|
| cluster dendrogram clus_complete
| построить полную дендрограмму, отражаюшую объединение классов по методу с именем clus_complete
|
| graph save Graph " C: \stata\cluster\Complete_link_dendro.gph"
| сохранить дендрограмму по указанному пути
|
| cluster stop clus_complete, rule(calinski) groups(2/9)
| вывести для кластерного анализа с именем clus_complete значения индекса Калински и Харабаза при разбиении на 2, 3, …, 9 классов
|
| cluster stop clus_complete, rule(duda) groups(2/9)
| вывести для кластерного анализа с именем clus_complete значения индекса Дуды и Харта при разбиении на 2, 3, …, 9 классов rez_cl2
|
| cluster generate rez_cl2 = groups(2), name(clus_complete) ties(error)
| создать переменную rez_cl2, которая каждому объекту ставит в соответствие число 1 или 2 в зависимости от того, к какому из двух классов относится объект в результате классификации методом кластерного анализа с именем clus_complete
|
| profileplot nx1 nx2 nx3 nx4 nx5, by(rez_cl2)
| построить график средних значений переменных nx1 nx2 nx3 nx4 nx5, взяв в качестве группирующей переменной rez_cl2
|
| graph save Graph " C: \stata\cluster\Complete_link_profile2.gph"
| сохранить график средних значений по указанному пути
|
Продолжение таблицы 4.9
(1)
| (2)
| (3)
|
| mean x1 x2 x3 x4 x5, over(rez_cl2)
| вывести на экран таблицу со средними значениями переменных x1 x2 x3 x4 x5, взяв в качестве группирующей переменной rez_cl2
|
| cluster wardslinkage nx1 nx2 nx3 nx4 nx5, measure(L2) name(clus_ward)
| -//-
|
| cluster dendrogram clus_ward
| -//-
|
| graph save Graph " C: \stata\cluster\Ward_dendro2.gph"
| -//-
|
| cluster stop clus_ward, rule(calinski) groups(2/9)
| -//-
|
| cluster stop clus_ward, rule(duda) groups(2/9)
| -//-
|
| cluster generate rez_ward2 = groups(2), name(clus_ward) ties(error)
| -//-
|
| profileplot nx1 nx2 nx3 nx4 nx5, by(rez_ward2)
| -//-
|
| graph save Graph " C: \stata\cluster\Ward_profile2.gph"
| -//-
|
| mean x1 x2 x3 x4 x5, over(rez_ward2)
| -//-
|
| cluster kmeans nx1 nx2 nx3 nx4 nx5, k(2) measure(L2) name(clus_kmeans) start(group(rez_cl2)) keepcenters
| провести кластерный анализ методом k-средних по переменным nx1 nx2 nx3 nx4 nx5, разбивать на 2 класса, в качестве метрики использовать обычно евклидово расстояние, а в качестве начальных эталонов – средние значения признаков в классах, определенных переменной rez_cl2 (в нашем случае это результаты разбиения методом полных связей)
|
| profileplot nx1 nx2 nx3 nx4 nx5, by(clus_kmeans)
| -//-
|
| graph save Graph " C: \stata\cluster\kmeans_profile2.gph"
| -//-
|
| mean x1 x2 x3 x4 x5, over(clus_kmeans)
| -//-
|
| table rez_cl2 rez_ward2, contents(freq)
| построить таблицу сопряженности переменных rez_cl2 и rez_ward2 (результатов классификации методом полных связей и методом Уорда)
|
| table rez_cl2 clus_kmeans, contents(freq)
| -//-
|
| table rez_ward2 clus_kmeans, contents(freq)
| -//-
|
| save " C: \stata\cluster\cluster_1.dta", replace
| сохранить внесенные в файл с данными изменения
|
| log close
| закрыть лог
|
Для запуска do-файла используется команда File \ Do.
Вопросы к защите лабораторной работы
8. Сформулировать постановку задачи лабораторной работы.
9. Каким методом решалась задача классификации и чем обусловлен выбор этого метода?
10. Сформулировать, в чем суть выбранного метода решения задачи.
11. Какое программное средство использовалось для решения задачи?
12. Как решалась задача приведения признаков к одинаковым единицам измерения?
13. Из каких соображений задавалось расстояние между объектами?
14. Какие методы иерархических агломеративных кластер-процедур использовались при решении задачи?
15. Есть ли различия в результатах классификации муниципальных образований, полученных различными методами кластерного анализа? С чем это связано?
16. Как определялось оптимальное количество классов, на которые целесообразно разбить имеющуюся совокупность?
17. На основе какой информации была дана характеристика классам?
18. Привести наиболее и наименее типичные объекты для каждого класса, полученного методом к-средних?
19. Продемонстрировать, каким образом изменятся алгоритм работы с пакетами, выдаваемые результаты и их интерпретация в случае классификации не объектов, а признаков.
20. Как поступить в случае, если по результатам различных методов кластерного анализа один из объектов выделяется в отдельный класс? С чем это связано?
4.5 Задание, порядок выполнения и вопросы к защите лабораторной работы на тему «Параметрический дискриминантный анализ»
|