Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы и модели решения задачи классификации данных. Основные этапы. Учебное пособие
.pdf
Визуальный анализ позволяет сделать вывод о неплохом соответствии распределения выборочных данных нормальному закону. Для аналитической проверки гипотезы о соответствии нормальному закону распределения могут быть применены также критерии согласия: Шапиро –
Уилка, Крамера – Мизеса, Андерсона – Дарлинга, соответственно функции, реализующие критерии (для первого класса):
install.packages("nortest")
library(nortest)
shapiro.test(data1$СВЗ)
cvm.test(data1$СВЗ)
ad.test(data1$
СВЗ)
В табл. 3. представлена сводная информация по результатам расчета
критериев согласия (расчетное значение критической статистики критерия и p-value).
Таблица 3
Результаты расчета критериев согласия
Класс
Первый 0,963 0,017 0,042 0,642 0,484 0,222
Второй 0,961 0,093 0,163 0,141 0,983 0,137
Третий 0,818 <0,0001 0,649 <0,0001 4,157 <0,0001
Четвертый 0,892 0,031 0,422 0,067 2,570 0,051
Shapiro CVM AD
W p-value W p-value A p-value
61

Как следует из табл. 3, гипотеза о нормальном распределении признака СВЗ внутри классов не отвергается при уровне значимости 0,01
(p-value>0,01) для всех классов, кроме третьего. Наилучшее соответствие распределения признака СВЗ нормальному закону наблюдается
в первом и втором классе.
2.3.2. ИССЛЕДОВАНИЕ ВЗАИМОСВЯЗЕЙ ПРИЗНАКОВ
На следующем этапе исследуются корреляционные взаимосвязи
между зависимой переменной «Класс» и объясняющими переменными
(признаками) с целью выделения и выбора предикторов, которые
должны быть включены в модель классификатора. Кроме того, оцениваются корреляционные взаимосвязи между исходными признаками
для выявления сильно коррелированных признаков (явление мультиколлинеарности – наличие статистически значимых взаимосвязей
между исходными
признаками). Результаты оценки применяются для
априорного выбора методов классификации, так как ограничением применения многих методов является выполнение условия независимости
предикторных признаков, которые используются для построения модели классификатора.
Для визуальной оценки различий между классами по выбранному
количественному признаку строятся диаграммы размаха, которые позволяют сравнить основные числовые характеристики признака по
классам (например, среднее, медиану, СКО, нижний и верхний квартили,
размах). Диаграммы размаха помогают также в идентификации выбросов (аномалий) в данных, которые отображаются на графике в виде
точек.
Ниже приведен код построения диаграмм размаха для четырех при-
знаков («Возраст», ВТ1, ВТ2, «Стаж»):
par(mfrow = c(2,2))
boxplot(Возраст~Класс, data=Train, col="blue")
boxplot(ВТ1~Класс, data=Train, col="coral")
boxplot(ВТ2~
Класс, data=Train, col="green")
boxplot(Стаж~Класс, data=Train, col="lightblue")
На рис. 8 и 9 представлены диаграммы размаха для всех количе-
ственных признаков, которые иллюстрируют изменение статистических
62

характеристик признака в зависимости от значения класса. На диаграмме размаха положение центральной линии определяет значение медианы, границы прямоугольника соответствуют нижнему и верхнему
квартилю, высота прямоугольника – интерквартильный размах (),
r
q
«усы» диаграммы расположены от верхней (нижней) границы прямоугольника до наибольшего (наименьшего) значения, находящегося
в пределах 1, 5
r . Наблюдения за пределами «усов» могут быть аномаль-
q
ными выбросами. Наблюдаются визуально значимые различия в значениях числовых характеристик признаков: ВТ1; ВТ2; «Стаж»; УОС;
КВК; СВЗ по классам; сравнительно небольшая разница соответствует
признакам «Возраст» и СС.
Рис. 8. Диаграммы размаха признаков («Возраст», ВТ1, ВТ2, «Стаж»)
63

Рис. 9. Диаграммы размаха признаков (УОС, КВК, СС, СВЗ)
Для аналитической проверки статистической значимости различий
в значениях признаков по классам применяется однофакторный одномерный дисперсионный анализ (в случае нормальной распределенности
признаков) либо его непараметрический аналог – критерий Краскела –
Уоллиса. Код для проверки гипотезы о статистической незначимости
различий средних значений признака (для примера взят признак «Возраст») по классам (однофакторный дисперсионный анализ
) следующий:
model<-aov(Возраст~Класс, data=Train)
summary(model)
В результате выдается расчетное значение критической статистики
критерия (F-value) и p-value:
64

При заданном уровне значимости 0,05 гипотеза о статистической незначимости отличий средних значений признака «Возраст» по классам
не отвергается (p-value=0,244>0,05).
Для проверки гипотезы о равенстве распределений признака по
классам (распределения с одинаковой медианой) используется критерий Краскела – Уоллиса:
kruskal.test(Возраст~Класс, data=Train)
В результате выдается расчетное значение критической статистики
критерия (chi-squared) и p-value:
Гипотеза о статистической
незначимости отличий в распределении
признака «Возраст» по классам не отвергается при уровне значимости
0,05 (p-value=0,093>0,05), как и в случае использования дисперсионного
анализа.
В табл. 4 приведены результаты расчета критериев для всех количественных признаков. Анализ табл. 4 позволяет сделать вывод о статистически значимых отличиях по классам в значениях всех признаков,
кроме признака «Возраст
Результаты расчетов дисперсионного анализа и критерия
», при уровне значимости 0,05.
Таблица 4
Краскела – Уоллиса
Признак
Возраст 1,395 0,244 6,417 0,093
ВТ1 236,0 <0,0001 225,9 <0,0001
ВТ2 170,8 <0,0001 204,0 <0,0001
Стаж 412,2 <0,0001 257,5 <0,0001
УОС 697,7 <0,0001 275,3 <0,0001
КВК 259,0 <0,0001 226,9 <0,0001
СС 10,96 <0,0001 29,64 <0,0001
СВЗ 103,1 <0,0001 171,3 <0,0001
Дисперсионный анализ Критерий Краскела – Уоллиса
F-value p-value chi-squared p-value
65

Зависимая переменная «Класс» имеет порядковый тип, так как номер класса отражает степень квалификации IT-специалиста. Поэтому
для исследования взаимосвязей между номером класса и значениями количественных признаков применяется ранговый коэффициент корреляции Спирмена, также этот коэффициент позволяет оценить взаимосвязь
между количественными и порядковыми признаками. При этом используется понижение шкалы измерения
значения признака и количествен-
ный признак преобразуется к порядковому типу.
Функция для расчета коэффициента корреляции Спирмена следующая:
panel.cor <- function(x, y, digits = 2, prefix = "", cex.cor, ...)
{ par(usr = c(0, 1, 0, 1))
r <- (cor(x, y, method = "spearman"))
txt <- format(c(r, 0.123456789), digits=digits)[1]
txt <- paste(prefix, txt, sep = "")
text(0.5, 0.5, txt, cex = 1.3) }
Для визуальной оценки парной взаимосвязи между исследуемыми
признаками можно построить двумерные диаграммы рассеяния. Следующий программный код реализует построение матричного графика,
в котором над главной диагональю строятся диаграммы рассеяния
между
парой признаков, а под главной диагональю выводятся соответ-
ствующие оценки коэффициента корреляции Спирмена:
pairs(~Класс+УОС+КВК+СС+СВЗ, data=Train, pch = 21, bg=4,
lwd = 1, lower.panel = panel.cor)
На рис. 10 и 11 приведены матричные графики, анализ которых позволяет сделать вывод о сильных корреляционных взаимосвязях между
зависимой переменной «Класс» и предикторными признаками, кроме
признака «Возраст»: 0,038 (слабая связь) и признака СС (
соблюдение
сроков): 0,29 – связь средней силы. Корреляционные взаимосвязи
между некоторыми признаками также сильные; например, между временем написания тестовых программ первого (ВТ1) и второго (ВТ2)
типа коэффициент корреляции Спирмена равен 0,72, что свидетельствует о мультиколлинеарности исходных признаков.
66

Рис. 10. Матричный график («Класс», «Возраст»,
ВТ1, ВТ2, «Стаж»), функция pairs ()
Рис. 11. Матричный график («Класс», УОС,
КВК, СС, СВЗ), функция pairs ()
67

Разные варианты матричных графиков могут быть также построены с помощью функции ggpairs() из библиотеки GGally. Код для построения матричных графиков между исследуемыми признаками следующий:
install.packages("GGally")
install.packages("ggplot2")
library(GGally)
library(ggplot2)
data1<-Train[,c(11,1,2,3,4)]
data2<-Train[,c(11,5,6,7,8)]
ggpairs(data1, columns = 1:5, aes(color = Класс,alpha = 0.5))
ggpairs(data2, columns = 1:5, aes(color = Класс,alpha = 0.5))
На рис. 12 и 13 приведены матричные графики, построенные с помощью функции ggpairs(). Преимущество использования функции
ggpairs() по сравнению с базовой функцией pairs() заключается
в том,
что построенный матричный график содержит сравнительно больше информации о распределении и взаимосвязях между признаками. На матричном графике отображена следующая информация:
графики плотности распределения вероятностей для количествен-
ных признаков для каждого класса и столбиковые диаграммы для качественных признаков (главная диагональ);
диаграммы рассеяния между парами количественных признаков
с выделением цвета класса (под главной диагональю);
диаграммы размаха для каждого класса для количественных при-
знаков (первая строка);
гистограммы распределения количественных признаков по клас-
сам (первый столбец);
значения коэффициентов корреляции Пирсона с оценкой их ста-
тистической значимости для пар количественных признаков, рассчитанные по всем данным и с разделением по классам (выше главной диагонали).
68

Рис. 12. Матричный график («Класс», «Возраст», ВТ1, ВТ2, «Стаж»),
функция ggpairs()
Анализ графиков рис. 12 и 13 подтверждает выводы о силе взаимосвязи между исследуемыми признаками, которые были сделаны выше,
и позволяет более детально проанализировать корреляционные взаимосвязи между признаками внутри классов. Например, между признаками
УОС (условная оценка сложности) и СВЗ (скорость выполнения задач)
наблюдается сильная корреляция (0,626) при расчете по всей выборке,
но корреляционные
взаимосвязи слабые внутри классов. Следовательно,
69

можно сделать вывод о разном соотношении значений признаков по
классам: для первого класса наблюдаются относительно низкие значения признаков УОС и СВЗ; для второго и третьего классов – средние
значения признаков УОС и СВЗ; для четвертого класса – высокие значения рассматриваемых признаков. Однако внутри классов статистически значимых взаимосвязей между значениями признаков
УОС и СВЗ
не выявлено, за исключением третьего класса (0,251).
Рис. 13. Матричный график («Класс», УОС, КВК, СС, СВЗ), функция ggpairs()
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
