Лабораторные работы r анализ данных. Факторный анализ в R

Предположим, у вас есть большой набор утверждений (напр., «человек — это звучит гордо», «все люди — сёстры», «худой мир лучше доброй ссоры» и пр.), своё отношение к которым респонденты оценивали по одинаковому шаблону (напр., «согласен / не знаю / не согласен»). Можно, конечно, в статье дать таблички по каждому пункту, но можно попытаться найти что-то, что объединяет одну часть пунктов в более общую категорию, другую — в ещё одну категорию (безусловно, может оказаться и так, что ваши утверждения ничего не объединяет). Факторный анализ — это один из инструментов, который позволяет найти это общее, если оно там, конечно, есть.

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

Это одновременно сильное и слабое место. Сильное потому, что большой массив данных упрощается и его легче анализировать. А слабое потому, что сильная корреляция, как известно, не указывает на причинность и реальные связи — компьютер покажет вам нечто, но что это значит, насколько находка разумна и правдоподобна, судить только вам. Как написано в одной умной книге «to interpret the factors, which is more like voodoo than science».

Однако перейдём к примеру.

Итак, в 2013 г. Центр социальных экспертиз по заказу ВОО «Гей-Альянс Украины» опрашивал обычных людей (800 чел.) на предмет гомофобии (отчёт). Среди прочего, в опроснике фигурировали и пункты, к гомофобии прямого отношения не имеющие, напр. о доверии к разнообразным политическим и социальным институтам. Вопрос звучал так: «Какой уровень Вашего доверия к следующим социальным институтам? (Дайте один наиболее подходящий ответ по каждой строке)» с вариантами ответов «5. Совсем не доверяю — 4. Скорее не доверяю — 3. Трудно сказать, доверяю или нет — 2. Скорее доверяю — 1. Полностью доверяю». Список институтов, к которым респондент выражал своё отношение, таков:

1. Семье и родственникам
2. Соседям
3. Коллегам
4. Церкви и духовенству
5. Астрологам
6. Средствам массовой информации (телевидение, радио, газеты)
7. Политическим партиям
8. Налоговой инспекции
9. Милиции
10. Прокуратуре
11. Судам
12. Президенту
13. Верховной Раде
14. Правительству
15. Местным органам власти
16. Банкам
17. Страховым компаниям
18. Благотворительным фондам, общественным организациям

Как провести факторный анализ этих данных? (предположим, что таблица с ответами называется dovira)
Присоединяем массив:

>attach(dovira)

Вначале следует убедиться, что в загруженном массиве нет пропусков и ошибок ввода:

>which(is.na(dovira)==T)
integer(0)
>summary(dovira)
p1
Min. :1.000
1st Qu.:2.000
Median:2.000
Mean:2.711
3rd Qu.:4.000
Max. :5.000 ... ... ...

Как видим, всё в порядке (для того, чтобы не загромождать изложение, в выводе оставлен только первый вопрос).
Команда, выполняющая факторный анализ, входит в набор пакетов, устанавливаемых по умолчанию. Она очень проста:

>factanal(dovira,6)
Call:
factanal(x = dovira, factors = 6)

Uniquenesses:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
0.431 0.195 0.379 0.614 0.047 0.672 0.506 0.285 0.174 0.106 0.186 0.215 0.112 0.082 0.464 0.288 0.204 Factor1 Factor2 Factor3 Factor4 Factor5 Factor6
1 -0.407 -0.324 0.489 -0.106 -0.213
2 0.879 0.131 -0.112
3 0.784
4 -0.128 0.540 -0.170 0.193
5 0.125 0.171 0.133 0.943
6 0.265 0.122 0.252 0.393 0.139
7 0.522 0.382 0.148 0.151 0.175
8 0.395 0.673
-0.119 0.204 0.182 0.131
9 0.329 0.817 0.181
10 0.297 0.865 -0.113 0.145 0.122
11 0.353 0.769 -0.104 0.277
12 0.805 0.320 0.111
13 0.853 0.318 -0.144 0.151 0.121
14 0.902 0.250 0.125
15 0.582 0.230 0.181 0.325
16 0.196 0.414 0.667 0.139 0.184
17 0.243 0.351 0.694 0.160 0.317
18 0.162 0.109 0.228 0.608
Factor1 Factor2 Factor3 Factor4 Factor5 3.662 3.399 2.079 0.324 1.275 0.765
ProportionVar 0.203 0.189 0.116 0.074 0.071 0.043
CumulativeVar 0.203 0.392 0.508 0.581 0.652 0.695
Test of the hypothesis that 6 factors are sufficient.
The chi square statistic is 257.27 on 60 degrees of freedom.
The p-value is 2.95e-26

Посмотрим на результаты.

Вначале в выводе повторяется отданная машине команда, потом идёт табличка «уникальностей», т. е. долей общей дисперсии, вносимых каждой переменной по отдельности. Следом мы видим таблицу нагрузок, в которой столбцы соответствуют коэффициентам корреляции отдельных переменных с выделенными факторами. Наконец, третья таблица — доля общей дисперсии, объясняемой каждым конкретным фактором и накопление этих дисперсий. Завершает вывод информация о тестировании гипотезы «выбранное число факторов достаточно для описания массива».

Наиболее важными являются таблицы нагрузок и долей объясняемой дисперсии.

Из последней видно, что в сумме 6 выделенных факторов объясняют 70% разброса данных, при этом первый фактор отвечает за пятую часть суммарной дисперсии, второй — 19%, третий — 12% и т. д.
Таблица нагрузок указывает, что в первом факторе объединены 7, 12, 13, 14 и 15 институция (коэффициенты корреляций больше 0.5), во втором — 8, 9, 10, 11, в третьем — 2, 3, 4 и т. д.

Попробуем интерпретировать результаты.

Фактор 1 объединяет доверие к политическим партиям, президенту, Верховной Раде, правительству и к местным органам власти. Иными словами, это доверие к политической сфере в целом .
Фактор 2 объединяет доверие к налоговой инспекции, милиции, прокуратуре и судам. Иными словами, это доверие к фискальным и силовым органам .
Фактор 3 объединяет доверие к соседям, коллегам и, неожиданно, к церкви и духовенству. Эти институции можно обобщить следующим образом — доверие к людям, с которыми респонденты встречаются лицом к лицу . В пользу этого говорит и корреляция с уровнем доверия к родственникам (она лишь ненамного ниже, чем произвольно избранный нами порог коэффициента корреляции 0.5).
Фактор 4 — это доверие к банкам и страховым компаниям, т. е. к финансовым учреждениям .
Фактор 5 стоит особняком — доверие к астрологам (других заметных корреляций нет).
Фактор 6 подобно предыдущему коррелирует только с уровнем доверия только к одной институции — благотворительные фонды и общественные организации .
Лишь одна институция не вошла в эти факторы — средства массовой информации (телевидение, радио, газеты). Доверие к ней приблизительно одинаково «размазано» по выделенным факторам.

Что нам дают эти результаты?

Если мы уровень доверия к социальным институтам усредним по факторам (т. е. для каждого респондента просуммируем баллы институций, вошедших в фактор, и поделим на число этих объединённых фактором институций), то получим картинку настроений украинцев в отношении отдельных элементов государства и общества:

Видно, что больше всего у респондентов доверия к людям, с которыми они встречаются лицом к лицу. А меньше всего доверия к фискальным и силовым органам, а также к финансовым учреждениям.

Последний аспект, который не может не вызвать вопросов: откуда мы знаем, что факторов нужно выделить именно 6. Самым, пожалуй, точным ответом будет — ниоткуда. Каждый раз, нужно экспериментировать, опираясь на здравый смысл. Во-первых, количество факторов не может быть большим, чем число переменных. Во-вторых, можно ориентироваться на суммарную объясняемую дисперсию, ибо нет смысла рассуждать о факторах, если они в совокупности не описывают хотя бы её половину (а умные люди рекомендуют добиваться по крайней мере 70%). В-третьих, нужно ориентироваться на возможность подобрать разумное объяснение полученным факторам.

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

Литература

Teetor P. R Cookbook. — O’Reilly, 2011

Цель проведения тренинга «Анализ данных и моделирование взаимосвязи в пакете R» – изучить базовые возможности программы R – бесплатного языка программирования для проведения статистических вычислений, а также научиться организовывать ввод данных и управлять ими, проводить первичный статистический анализ данных, представлять их в графическом виде, уметь находить взаимосвязи в данных. Обучение рассчитано на слушателей без опыта работы в R или с начальными знаниями пакета.

Слушателям желательно иметь навыки программирования и быть знакомым с основами статистического анализа.

По окончания обучения Вы будете уметь в программе R:

  • Правильно формировать выборку данных для анализа
  • Организовывать ввод данных и управлять данными
  • Выполнять описательный статистический анализ
  • Изучать взаимосвязь в таблицах сопряженности
  • Проверять статистические гипотезы о равенстве средних
  • Использовать графические возможности
  • Проводить корреляционный анализ
  • Проводить регрессионный анализ
  • Проводить дисперсионный анализ

Продолжительность тренинга: 32 ак.ч. или 4 дня.

Программа обучения:

Тема 1. Основные понятия статистического анализа данных – 2 ак.ч.

  • Статистическое исследование
  • Способы получения данных
  • Отличие наблюдения от эксперимента
  • Генеральная совокупность и выборка
  • Требования к данным при формировании выборки
  • Понятие точечной и интервальной статистической оценки
  • Признаки и переменные
  • Шкалы измерения переменных
  • Направления анализ статистических данных
  • Описательная и аналитическая статистика
  • Выбор методов статистического анализа в зависимости от шкал измерения переменных
  • Статистическая гипотеза
  • Виды статистических ошибок
  • Принципы проверки статистических гипотез
  • Выбор уровня значимости при проверке гипотез

Тема 2. Введение в работу в среде R – 2 ак.ч.

  • Особенности работы с R
  • Установка программы
  • Запуск программы
  • Среда R
  • Интерфейс командной строки и диалоговых окон
  • Правила задания команд
  • Создание рабочей директории
  • Пакеты
  • Графические интерфейсы
  • R как калькулятор
  • Справочная система

Тема 3. Основы программирования в R – 2 ак.ч.

  • Виды объектов в R
  • Вектора
  • Списки
  • Матрицы
  • Факторы
  • Таблицы данных
  • Выражения
  • Операторы доступа к данным
  • Функции и аргументы
  • Циклы и условные операторы
  • Управления базами данных в R
  • Векторизация операций
  • Отладка
  • Объектно-ориентированное программирование

Тема 4. Ввод и организация данных в R – 2 ак.ч.

  • Способы загрузки данных
  • Непосредственный ввод данных
  • Ввод данных в таблице
  • Импорт данных из MS Excel
  • Импорт данных из других статистических пакетов и баз данных
  • Сохранение результатов анализа
  • Задание количественных данных
  • Задание порядковых и номинальных данных
  • Задание пропущенных значений в данных
  • Выявление выбросов и ошибок
  • Принципы преобразование данных

Тема 5. Графические возможности R – 2 ак.ч.

  • Графические функции
  • Графические устройства
  • Графические параметры
  • Интерактивная графика
  • Составные изображения
  • Устройства вывода

Тема 6. Описательный статистический анализ в R – 4 ак.ч.

  • Статистики центральной тенденции
  • Средняя арифметическая
  • Модальное значение
  • Медианное значение
  • Статистики разброса
  • Дисперсия и стандартное отклонение
  • Коэффициент вариации
  • Процентили
  • Гистограммы
  • Ящичковые диаграммы
  • Z-преобразование
  • Нормальный закон распределения
  • Асимметрия и эксцесс
  • Проверка распределения на нормальность
  • Некоторые законы распределения
  • Биномиальное распределение
  • Распределение Пуассона
  • Равномерное распределение
  • Экспоненциальное распределение
  • Логнормальное распределение
  • Стандартная ошибка и интервал для средней

Тема 7. Формирование данных для анализа выборочным методом – 2 ак.ч.

  • Генеральная и выборочная совокупность
  • Характеристики выборки
  • Особенности выборочного метода исследования
  • Классификация выборок
  • Виды и методы вероятностного отбора
  • Способы формирования выборок
  • Простой случайный отбор
  • Систематический случайный отбор
  • Кластерный отбор
  • Одноступенчатный кластерный отбор
  • Многоступенчатый кластерный отбор
  • Алгоритм проведения выборочных обследований
  • Определение необходимого объема выборки

Тема 8. Статистические тесты выявления различий в выборках в R – 4 ак.ч.

  • Гипотезы о сравнении средних
  • Z-критерий для сравнения средних
  • Z-критерий для сравнения долей
  • Одновыброчный t-критерий
  • T-критерий для независимых выборок
  • T-критерий для зависимых выборок
  • Условия применения непараметрических критериев
  • Одновыборочный критерий знаковых рангов Вилкоксона
  • Критерий Манна-Уитни
  • Критерий знаков для связанных выборок
  • Критерий знаков Вилкоксона для связанных выборок
  • Непараметрический дисперсионный анализ Крускала-Уоллиса
  • Критерий Фридмана для зависимых выборок

Тема 9. Оценка взаимосвязи между переменными в R – 4 ак.ч.

  • Анализ взаимосвязи между категориальными переменными
  • Таблицы сопряженности
  • Ожидаемые частоты и остатки в таблицах сопряженности
  • Критерий хи-квадрат
  • Критерий согласия
  • Классификация видов взаимосвязи между количественными переменными
  • Диаграммы рассеяния
  • Предпосылки и условия проведения корреляционного анализа
  • Коэффициент корреляции Пирсона
  • Ранговые коэффициенты корреляции
  • Коэффициент корреляции Спирмена
  • Проверка значимости связи
  • Интервальные оценки коэффициентов корреляции
  • Частные коэффициенты корреляции

Тема 10. Моделирование формы связи с помощью регрессионного анализа в R– 4 ак.ч.

  • Основные понятия регрессионного анализа
  • Парная и множественная линейная модель регрессии
  • Предпосылки линейного регрессионного анализа
  • Оценка коэффициентов регрессии
  • Проверка обоснованности модели регрессии
  • Значимость уравнения регрессии
  • Значимость коэффициентов регрессии
  • Отбор переменных в регрессионном анализе
  • Оценка точности уравнения регрессии
  • Оценка статистической устойчивости уравнения регрессии
  • Точечная и интервальная оценка зависимой переменной
  • Нелинейные регрессионные модели
  • Категориальные независимые переменные в модели регрессии

Тема 11. Моделирование взаимосвязи с помощью дисперсионного анализа в R– 4 ак.ч.

  • Модели дисперсионного анализа
  • Предпосылки применения дисперсионного анализа
  • Проверка гипотезы о равенстве дисперсий
  • Модель однофакторного дисперсионного анализа
  • Таблица однофакторного дисперсионного анализа
  • Оценка степени влияния фактора
  • Апостериорные критерии парных сравнений
  • Дисперсионный анализ с двумя и более факторами
  • Таблица двухфакторного дисперсионного анализа с взаимодействием
  • Графическая интерпретация взаимодействия факторов
  • Анализ многофакторной модели

Сегодня я немного расскажу о решении задачи классификации с использованием программного пакета R и его расширений. Задача классификации, пожалуй, одна из самых распространенных в анализе данных. Существует множество методов для ее решения с использованием разных математических техник, но нас с тобой, как апологетов R, не может не радовать, что при этом программировать что-либо с нуля не нужно, - все есть (причем далеко не в единственном экземпляре) в системе пакетов R.

Задача классификации

Задача классификации - типичный пример «обучения с учителем». Как правило, мы располагаем данными в виде таблицы, где столбцы содержат значение наборов признаков для каждого случая. Причем все строки заранее размечены таким образом, что один из столбцов (положим, что последний) указывает на класс, к которому принадлежит данная строка. Как хороший пример можно привести задачу классификации писем на спам и не спам. Для того чтобы воспользоваться алгоритмами машинного обучения, нужно для начала иметь размеченные данные - такие, для которых значение класса известно наряду с остальными признаками. Причем набор данных должен быть существенным, особенно если количество признаков велико.

Если у нас есть достаточно данных, то можно начинать обучение модели. Общая стратегия с классификаторами не особо зависит от модели и включает следующие шаги:

  • выбор тренировочного и тестового множества;
  • обучение модели на тренировочном множестве;
  • проверка модели на тестовом множестве;
  • перекрестная проверка;
  • улучшение модели.

Точность и полнота

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

TP (true positive) - сколько сообщений было правильно классифицировано как спам,
TN (true negative) - сколько сообщений было правильно классифицировано как не спам,
FP (false positive) - сколько сообщений было неправильно классифицировано как спам (то есть письма спамом не были, но модель классифицировала эти сообщения как спам),
FN (false negative) - сколько сообщений было неправильно классифицировано как не спам, а на самом деле это был все-таки Центр американского английского.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!

Анализ данных в среде R

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


Направление
: 01.03.02 "Прикладная математика и информатика. Системное программирование" (бакалавриат, 3 курс)

Дисциплина : "Анализ данных в среде R"

Учебный план : "Очное обучение, 2017 г."

Количество часов: 90 (в том числе: лекции - 18, лабораторные занятия – 36, самостоятельная работа - 36); форма контроля - зачёт.

Направление : 38.03.05 "Бизнес информатика" (бакалавриат, 4 курс)

Дисциплина : "Анализ данных"

Учебный план : "Очное обучение, 2018 г."

Количество часов: 78 (в том числе: лекции - 18, лабораторные занятия – 36, самостоятельная работа - 24); форма контроля - зачёт.


Ключевые слова
: Data Mining, Machine Learning, regression, classification, clusterization, support vector, SVM, artificial neutron, neural network, recommendation system, анализ данных, машинное обучение, модель, выборка, переменная отклика, обучение выборки, переобучение выборки, обучение с учителем, обучение без учителя, пакет R, язык программирования R, статистика, случайная величина, с.в., закон распределения, нормальное распределение, выборка, статистика, метод максимального правдоподобия, распределение Хи-квадрат, распределение Стьюдента, распределение Фишера, гипотеза, область принятия гипотезы, уровень значимости, ошибки первого и второго рода, сравнение выборок, критерии согласия, таблица сопряженности признаков, корреляция, регрессия, линейная регрессия, нелинейная регрессия, фактор, предиктор, однофакторная регрессия, множественная регрессия, классификация, логистическая регрессия, однофакторный дискриминантный анализ, Байесовский подход, наивный Байес, метод опорных векторов, разделяющая гиперплоскость, деревья решений, нейронная сеть, нейрон, функция активации, рекомендательная система, кластеризация, функционал качества.

Темы : 1. Cреда разработки R: сведения из истории. установка и запуск пакета. 2. Программируем в R. первые шаги. 3. Построение графиков в среде R. 4. Ввод данных и работа с файлами в среде R. 4.1. Работа с одномерными массивами данных. 4.2. Работа с матрицами и таблицами данных. 5. Проверка статистических гипотез в среде R. 5.1. Проверка гипотезы о законе распределения вероятностей случайной величины (критерий Хи-квадрат Пирсона). 5.2. Проверка гипотезы о независимости признаков с качественной группировкой (критерий Хи-квадрат Пирсона). 5.3. Проверка гипотезы о равенстве математических ожиданий нормальных генеральных совокупностей (критерий Стьюдента). 5.4. Проверка гипотезы о равенстве дисперсий нормальных генеральных совокупностей (критерий Фишера). 6. Задача построения модели однофакторной линейной регрессии. Прогнозирование. 7. Задача многожественной линейной регрессии. 7.1. Задача однофакторной линейной регрессии как частный случай множе-ственной регрессии. 7.2. Исследование зависимости переменной отклика от фактора в регресси-онной модели. 8. Задача классификации, подходы к её решению. 8.1. Логистическая регрессия. 8.2. Линейный дискриминантный анализ. 8.3. Деревья решений - принцип "разделяй и властвуй" ("divide and con-quer"). 9. Нейронные сети (neural networks) и их применение в машинном обучении. 10. Опорные векторы, метод опорных векторов ("support vector machines", SVM) в машинном обучении. 11. Рекомендательные системы ("recommendation system"), их назначение, построение, применение. 12. Специальные задачи машинного обучения.


Дата начала эксплуатации : 1 сентября 2014 года
  • Миссаров Мукадас Дмухтасибович, зав. кафедрой анализа данных и исследова-ния операций КФУ, д.ф.-м.н., профессор, email: [email protected]
  • Кашина Ольга Андреевна, к.ф.-м.н., доцент кафедры анализа данных и исследования операций, email: [email protected]