Методические указания к лр. 5
Лабораторная работа 5. Корреляционный анализ данных
Цель работы: Изучить взаимосвязи между признаками внутри выделенных сегментов данных с помощью корреляционного анализа, научиться интерпретировать коэффициенты корреляции и выявлять мультиколлинеарность.
Введение
После завершения кластеризации мы получили кластеры и хотим понять, как различные признаки связаны между собой внутри этих сегментов. Корреляционный анализ позволяет выявить взаимосвязи между переменными.
Корреляция — это статистическая мера, показывающая степень и направление линейной связи между двумя переменными. Значение коэффициента корреляции изменяется от -1 до 1.
Теоретические основы корреляционного анализа
1. Коэффициент корреляции Пирсона
Назначение: Оценка линейной связи между двумя непрерывными переменными, распределенными нормально.
Интерпретация:
- |r| < 0.3 — слабая связь
- 0.3 ≤ |r| < 0.7 — умеренная связь
- |r| ≥ 0.7 — сильная связь
Ограничения: Чувствителен к выбросам, требует нормального распределения, оценивает только линейные связи.
2. Ранговая корреляция Спирмена
Назначение: Оценка монотонной связи (не обязательно линейной) между переменными. Используется для порядковых данных или при нарушении нормальности распределения.
Преимущества: Не требует нормального распределения, устойчив к выбросам, работает с порядковыми данными.
3. Таблица корреляций (Correlation Matrix)
Квадратная матрица, где на пересечении строки i и столбца j находится коэффициент корреляции между признаками i и j.
4. Тепловая карта корреляций (Heatmap)
Визуализация корреляционной матрицы, где цветом кодируется сила и направление связи.
5. Мультиколлинеарность
Явление, при котором два или более признаков сильно коррелируют между собой. Диагностика выполняется с помощью VIF (Variance Inflation Factor). Значение VIF > 10 (или >5 при строгом подходе) указывает на проблему мультиколлинеарности.
Этапы выполнения работы
Задание 1. Подготовка данных для анализа
- Загрузите финальный датасет с метками кластеров, полученный в лабораторной работе 4.
- Убедитесь, что данные содержат как исходные (немаcштабированные) признаки, так и метки кластеров.
- Создайте отдельные датасеты для каждого кластера для внутрисегментного анализа.
Задание 2. Общая корреляционная матрица
- Выберите только числовые признаки для анализа (исключите идентификаторы и метки кластеров).
- Рассчитайте корреляционную матрицу Пирсона для всего датасета.
- Рассчитайте корреляционную матрицу Спирмена для всего датасета.
- Сравните результаты — есть ли существенные различия? Если да, то о чем это говорит?
Задание 3. Визуализация корреляций
- Постройте тепловую карту для корреляционной матрицы Пирсона.
- Добавьте на тепловую карту числовые значения коэффициентов.
- Используйте маску для верхней треугольной части (чтобы избежать дублирования).
- Проанализируйте, какие признаки наиболее сильно коррелируют.
Задание 4. Анализ значимости корреляций
- Для каждой пары признаков рассчитайте p-value, проверяя гипотезу о том, что истинная корреляция равна нулю.
- Выделите корреляции, значимые на уровне α = 0.05.
- Создайте матрицу значимости, где отмечены только статистически значимые корреляции.
Задание 5. Проверка на мультиколлинеарность
- Рассчитайте VIF для каждого признака.
- Определите признаки с высоким VIF (>10 или >5).
- Предложите стратегию обработки мультиколлинеарности (удаление одного из сильно коррелирующих признаков, использование PCA и т.д.).
Задание 6. Внутрикластерный корреляционный анализ
Для каждого кластера, полученного в предыдущей лабораторной работе (K-Means, DBSCAN, иерархическая кластеризация):
- Постройте отдельную корреляционную матрицу.
- Визуализируйте ее в виде тепловой карты.
- Сравните структуру корреляций между кластерами:
- Какие связи усиливаются/ослабевают?
- Появляются ли новые значимые корреляции?
- Исчезают ли корреляции, характерные для всего датасета?
Задание 7. Интерпретация результатов
Для каждого кластера опишите характерные взаимосвязи признаков. Пример интерпретации:
- Кластер 0: "Сильная положительная связь между возрастом и доходом (r=0.82), что характерно для сегмента с профессиональным ростом"
- Кластер 1: "Отрицательная связь между частотой покупок и суммой чека (r=-0.65) — клиенты либо покупают часто понемногу, либо редко, но крупно"
Задание 8. Сравнение методов кластеризации через призму корреляций
Для каждого алгоритма кластеризации (K-Means, DBSCAN, иерархический) оцените:
- Насколько различаются корреляционные матрицы между кластерами?
- В каком методе кластеры наиболее однородны по структуре связей?
Требования к отчету
Раздел 1. Общий корреляционный анализ
- Таблица 1: Корреляционная матрица Пирсона (основные признаки)
- Рисунок 1: Тепловая карта корреляций Пирсона
- Рисунок 2: Тепловая карта корреляций Спирмена
- Таблица 2: P-value для значимых корреляций
- Вывод: Какие признаки наиболее связаны в целом по датасету?
Раздел 2. Мультиколлинеарность
- Таблица 3: Значения VIF для всех признаков
- Вывод: Есть ли проблема мультиколлинеарности? Какие признаки рекомендуется исключить?
Раздел 3. Внутрикластерный анализ
Для K-Means:
- Рисунки 3-5: Тепловые карты для каждого кластера
- Таблица 4: Сравнение корреляций по кластерам
- Описание: Характерные связи для каждого сегмента
Для DBSCAN:
- Рисунки 6-8: Тепловые карты для каждого кластера (исключая шум)
- Таблица 5: Сравнение корреляций с учетом шумовых точек
- Описание: Влияет ли исключение шума на структуру связей?
Для иерархической кластеризации:
- Рисунки 9-11: Тепловые карты для каждого кластера
- Таблица 6: Сравнение корреляций
- Описание: Насколько устойчивы корреляции внутри иерархических кластеров?
Раздел 4. Сравнительный анализ методов
- Таблица 7: Сводные метрики однородности кластеров
- График: Сравнение средних корреляций внутри кластеров по методам
- Вывод: Какой метод кластеризации дал наиболее интерпретируемые с точки зрения корреляций сегменты?
Раздел 5. Итоговые выводы
- Какие взаимосвязи признаков являются универсальными (проявляются во всех сегментах)?
- Какие взаимосвязи являются специфическими для отдельных сегментов?
- Как результаты корреляционного анализа дополняют выводы кластеризации?
- Практические рекомендации на основе выявленных взаимосвязей.
Контрольные вопросы для защиты
- В чем различие между корреляцией Пирсона и Спирмена? В каких случаях какой коэффициент использовать?
- Что означает p-value в контексте корреляционного анализа?
- Как интерпретировать отрицательную корреляцию?
- Почему корреляция не означает причинно-следственную связь?
- Что такое мультиколлинеарность и чем она опасна?
- Какой уровень корреляции считается высоким?
- Почему важно анализировать корреляции внутри кластеров, а не только в целом по датасету?
- Как выбросы влияют на коэффициент корреляции Пирсона?
- Может ли быть корреляция равна 0 при явной нелинейной зависимости? Приведите пример.
- Как корреляционный анализ помогает в построении маркетинговых стратегий?
Чек-лист для самопроверки
- ☐ Построены корреляционные матрицы Пирсона и Спирмена
- ☐ Созданы тепловые карты с подписями
- ☐ Рассчитаны p-value для корреляций
- ☐ Выполнен анализ VIF
- ☐ Проведен внутрикластерный анализ для всех методов
- ☐ Сравнены корреляционные структуры между кластерами
- ☐ Сформулированы интерпретации выявленных взаимосвязей
- ☐ Сделаны выводы и даны практические рекомендации
- ☐ Отчет оформлен согласно требованиям
Справка по библиотекам Python для корреляционного анализа
Назначение: Данный справочный материал содержит информацию о библиотеках Python, необходимых для выполнения лабораторной работы по корреляционному анализу. Для каждой библиотеки указаны ее назначение и ключевые возможности применительно к задачам работы.
Введение
Для выполнения лабораторной работы по корреляционному анализу потребуется набор специализированных библиотек Python. Каждая из них выполняет определенные функции: от загрузки и обработки данных до статистических расчетов и визуализации. Ниже представлен обзор основных библиотек и их возможностей.
1. Pandas — работа с данными
Назначение: Основная библиотека для загрузки, обработки и анализа табличных данных.
Ключевые возможности для лабораторной работы:
- Загрузка данных из CSV-файлов
- Выбор числовых признаков для анализа
- Фильтрация данных по значениям кластеров
- Расчет корреляционных матриц (Пирсона и Спирмена)
- Группировка данных по кластерам и расчет статистик
- Создание таблиц для представления результатов
2. NumPy — математические операции
Назначение: Библиотека для работы с многомерными массивами и математическими функциями.
Ключевые возможности для лабораторной работы:
- Создание масок для визуализации (например, верхнего треугольника матрицы)
- Статистические расчеты (средние, стандартные отклонения)
- Работа с матрицами и массивами данных
- Математические операции над массивами
3. SciPy — статистические тесты
Назначение: Библиотека для научных и статистических вычислений.
Ключевые возможности для лабораторной работы:
- Расчет корреляции Пирсона с проверкой статистической значимости
- Расчет ранговой корреляции Спирмена
- Получение p-value для проверки гипотез о значимости связей
- Дополнительные статистические тесты
4. Seaborn — визуализация корреляций
Назначение: Библиотека для статистической визуализации данных.
Ключевые возможности для лабораторной работы:
- Построение тепловых карт корреляционных матриц
- Настройка цветовых схем для отображения силы и направления связей
- Отображение числовых значений коэффициентов на графиках
- Создание матриц диаграмм рассеяния
- Кластеризованные тепловые карты
5. Matplotlib — настройка графиков
Назначение: Базовая библиотека для создания и настройки графиков.
Ключевые возможности для лабораторной работы:
- Настройка размеров и разрешения графиков
- Добавление заголовков и подписей осей
- Сохранение графиков в файлы
- Управление цветовыми схемами и легендами
- Создание составных рисунков из нескольких графиков
6. Statsmodels — анализ мультиколлинеарности
Назначение: Библиотека для статистического моделирования и диагностики.
Ключевые возможности для лабораторной работы:
- Расчет VIF (Variance Inflation Factor) для выявления мультиколлинеарности
- Диагностика регрессионных моделей
- Статистические тесты и интервальные оценки
7. Scikit-learn — снижение размерности
Назначение: Библиотека для машинного обучения.
Ключевые возможности для лабораторной работы:
- Метод главных компонент (PCA) для снижения размерности
- Визуализация многомерных данных в 2D-пространстве
- Подготовка данных для кластеризации и визуализации
8. Tabulate (опционально) — оформление таблиц
Назначение: Библиотека для форматирования таблиц в отчетах.
Ключевые возможности:
- Создание красиво оформленных таблиц для отчета
- Экспорт таблиц в различные форматы
Таблица соответствия библиотек заданиям
| Задание | Основные библиотеки |
|---|---|
| Загрузка и подготовка данных | Pandas |
| Расчет корреляционных матриц | Pandas, SciPy |
| Проверка значимости (p-value) | SciPy |
| Визуализация корреляций | Seaborn, Matplotlib |
| Анализ мультиколлинеарности (VIF) | Statsmodels, Pandas |
| Внутрикластерный анализ | Pandas, Seaborn |
| Снижение размерности для визуализации | Scikit-learn |
| Оформление результатов | Pandas, Tabulate |
Установка библиотек
Все необходимые библиотеки устанавливаются через менеджер пакетов pip:
pip install pandas numpy scipy seaborn matplotlib statsmodels scikit-learn tabulate
Для работы в Jupyter Notebook рекомендуется также установить:
pip install jupyter ipykernel
Импорт библиотек (стандартные псевдонимы)
При написании кода принято использовать следующие сокращения:
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from scipy import stats from statsmodels.stats.outliers_influence import variance_inflation_factor from sklearn.decomposition import PCA
Документация
Официальная документация библиотек:
- Pandas: https://pandas.pydata.org/docs/
- NumPy: https://numpy.org/doc/
- SciPy: https://docs.scipy.org/doc/scipy/
- Seaborn: https://seaborn.pydata.org/
- Matplotlib: https://matplotlib.org/stable/contents.html
- Statsmodels: https://www.statsmodels.org/stable/index.html
- Scikit-learn: https://scikit-learn.org/stable/documentation.html