Открыть сервис

Анализ главных компонент

Анализ главных компонент (англ. Principal Component Analysis, PCA) — это статистический метод, предназначенный для снижения размерности многомерных данных путём линейного преобразования исходных переменных в меньшее число некоррелированных переменных, называемых главными компонентами. Метод позволяет выделить наиболее информативные направления в данных, сохраняя максимальную дисперсию (разброс) исходного набора. PCA широко применяется в обработке сигналов, распознавании образов, сжатии данных, биоинформатике и других областях, где требуется упрощение сложных структур без значительной потери информации.

История

Метод анализа главных компонент был впервые предложен Карлом Пирсоном в 1901 году в работе «On Lines and Planes of Closest Fit to Systems of Points in Space». Пирсон рассматривал задачу нахождения прямой или плоскости, которые наилучшим образом аппроксимируют систему точек в многомерном пространстве, минимизируя сумму квадратов расстояний от точек до этой прямой или плоскости. В 1933 году Гарольд Хотеллинг независимо разработал более формальную версию метода, применив его к анализу психологических тестов. Хотеллинг ввёл термин «главные компоненты» и показал, что их можно получить как собственные векторы ковариационной матрицы данных. В 1960-х годах с развитием вычислительной техники PCA стал широко использоваться в прикладных задачах, а в 1970-х годах — в анализе изображений и распознавании лиц.

Математическая основа

Постановка задачи

Пусть имеется набор данных из \(n\) наблюдений, каждое из которых описывается \(p\) переменными (признаками). Данные можно представить в виде матрицы \(X\) размером \(n \times p\), где строки соответствуют наблюдениям, а столбцы — переменным. Цель PCA — найти такое линейное преобразование, которое переводит исходные переменные в \(k\) новых переменных (\(k < p\)), называемых главными компонентами, причём эти компоненты должны быть ортогональны и упорядочены по убыванию дисперсии.

Алгоритм

  1. Центрирование данных: из каждого столбца матрицы \(X\) вычитается среднее значение соответствующей переменной, чтобы получить матрицу центрированных данных \(X_c\).
  2. Вычисление ковариационной матрицы: для центрированных данных вычисляется ковариационная матрица \(C = \frac{1}{n-1} X_c^T X_c\) размером \(p \times p\).
  3. Нахождение собственных векторов и собственных значений: решается задача \(C \mathbf{v} = \lambda \mathbf{v}\), где \(\lambda\) — собственное значение, а \(\mathbf{v}\) — соответствующий собственный вектор. Собственные значения упорядочиваются по убыванию: \(\lambda_1 \ge \lambda_2 \ge \dots \ge \lambda_p\).
  4. Выбор главных компонент: выбираются \(k\) собственных векторов, соответствующих наибольшим собственным значениям. Эти векторы образуют матрицу нагрузок \(W\) размером \(p \times k\).
  5. Проекция данных: новые координаты наблюдений в пространстве главных компонент вычисляются как \(T = X_c W\), где \(T\) — матрица размером \(n \times k\), строки которой содержат значения главных компонент для каждого наблюдения.

Интерпретация

Каждая главная компонента представляет собой линейную комбинацию исходных переменных: \(PC_j = w_{1j} x_1 + w_{2j} x_2 + \dots + w_{pj} x_p\), где \(w_{ij}\) — элементы собственного вектора. Коэффициенты \(w_{ij}\) называются нагрузками и показывают вклад каждой исходной переменной в данную компоненту. Первая главная компонента объясняет максимально возможную дисперсию данных, вторая — максимальную дисперсию среди всех направлений, ортогональных первой, и так далее.

Свойства метода

  • Максимизация дисперсии: главные компоненты ориентированы вдоль направлений наибольшего разброса данных.
  • Ортогональность: компоненты некоррелированы между собой, что упрощает интерпретацию.
  • Линейность: PCA является линейным методом, поэтому он неэффективен для данных с нелинейными зависимостями.
  • Чувствительность к масштабу: переменные с большими абсолютными значениями могут доминировать в анализе, поэтому перед применением PCA часто проводят стандартизацию данных (приведение к нулевому среднему и единичной дисперсии).

Применение

Снижение размерности

PCA позволяет уменьшить количество переменных, сохраняя при этом основную структуру данных. Это полезно для визуализации многомерных данных (например, отображение на плоскости первых двух компонент), а также для ускорения работы алгоритмов машинного обучения, которые страдают от «проклятия размерности».

Сжатие данных

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

Шумоподавление

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

Выявление скрытых факторов

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

Ограничения и критика

  • Линейность: PCA не способен выявить нелинейные структуры, такие как изогнутые многообразия. Для таких данных существуют нелинейные обобщения, например, ядерный PCA (kernel PCA).
  • Интерпретируемость: главные компоненты являются линейными комбинациями всех исходных переменных, что может затруднить их содержательную интерпретацию, особенно при большом числе переменных.
  • Чувствительность к выбросам: наличие аномальных наблюдений может сильно исказить направление главных компонент. Для устойчивости к выбросам применяют робастные версии PCA.
  • Предположение о нормальности: строго говоря, PCA не требует нормального распределения данных, но для статистической значимости результатов (например, для определения числа компонент) часто предполагается многомерная нормальность.

Пример

Рассмотрим набор данных о росте и весе 100 человек. Исходные переменные: рост (см) и вес (кг). После центрирования и вычисления ковариационной матрицы получаем собственные векторы. Первая главная компонента может быть направлена вдоль линии, описывающей общую тенденцию «чем выше рост, тем больше вес», и объяснять, например, 85% дисперсии. Вторая компонента будет ортогональна первой и отражать отклонения от этой тенденции (например, люди с необычным соотношением роста и веса). Проекция данных на первую компоненту позволяет представить каждого человека одним числом, которое характеризует его «размер» в целом.

Источники

  • Пирсон К. «On Lines and Planes of Closest Fit to Systems of Points in Space» (1901).
  • Хотеллинг Г. «Analysis of a complex of statistical variables into principal components» (1933).
  • Джоллифф И. Т. «Principal Component Analysis» (2-е издание, 2002).
  • Ширяев А. Н. «Вероятность» (том 2, 2007).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →