Основные положения
Часто исходное число р рассматриваемых, т. е. измеряемых на исследу-
емых объектах, признаков довольно велико. Для визуализации картины, простоты интерпретации и упрощения счета очень часто необходимо представить каждое из наблюдений в виде набора чисел, состоящего из существенно меньшего (чем р ) числа признаков. При этом оставшиеся признаки могут либо выбираться из числа исходных, либо определяться по какому-либо правилу по совокупности исходных признаков, например как линейные комбинации последних
Главные компоненты представляют собой новое множество исследуемых признаков
y(1), y(2), …, y( p) ,
каждый из которых получен в результате некоторой линейной комбинации,
непосредственно измеренных на объектах, исходных признаков x(1), x(2),
. Полученные в результате такого преобразования новые признаки y(1), y(2), …, y( p) могут обладать рядом удобных статистических свойств.
Например, быть упорядоченными по степени рассеяния в изучаемой совокупности объектов: первый признак обладает наибольшей степенью рассеяния, т. е. наибольшей дисперсией, второй – меньшей и т. д.
Определение главных компонент
Будем предполагать, что исследуемые наблюдения X1, X2, …, Xn из-
влечены из некоторой р -мерной генеральной совокупности, определяемой
соответствующей вероятностной мерой. Однако для приводимых здесь понятий из всех характеристик исследуемой генеральной совокупности суще-
|
|
, где |
ственное значение имеет лишь ковариационная матрица ∑ = σij |
||
σij = M ( x(i) − a(i) ) ( x( j) − a( j) ) , i, j = 1, 2, …, p .
Здесь a(i) – компоненты вектора a средних значений признаков x(i) . Будем считать, что вектор средних значений a = 0, чего всегда можно добиться, рас-
сматривая в качестве исходных признаков x(1), x(2),…, x( p) не сами измере-
ния, а их отклонения от своих выборочных средних значений.
16
Назовем первой главной компонентой исследуемой генеральной совокупности наблюдений такую нормированную линейную комбинацию р ис-
ходных признаков x(1), x(2), …, |
x( p) , |
|
|
|
||||||
|
|
|
y(1) = l |
|
x(1) + l x(2) |
+…+ l |
x( p) |
= LтX |
||
|
|
|
|
11 |
|
12 |
1p |
|
1 |
|
(здесь Lт |
= l |
l |
…l |
|
, причем l2 |
+ l2 +…+ l2 |
=1), которая среди всех |
|||
1 |
11 |
12 |
1p |
|
|
|
11 |
12 |
1p |
|
прочих нормированных |
|
линейных комбинаций x(1), x(2),…, x( p) обладает |
||||||||
наибольшей дисперсией.
Вообще, i-й главной компонентой исследуемой генеральной совокуп-
ности (i = 2, 3, …, р) будем называть такую нормированную линейную ком-
бинацию p исходных признаков x(1), x(2), …, x( p)
y(i) = li1x(1) + li2x(2) +…+ lip x( p) = Lтi X ,
которая среди всех прочих линейных нормированных (li21 + li22 +…+ lip2 =1)
комбинаций, некоррелированных со всеми предшествующими главными
компонентами y(1), …, |
y(i−1) (т. е. cov( y(i), y( j) ) = M ( y(i) y( j) ) = 0 для j < i ), |
|
обладает наибольшей дисперсией. |
|
|
Из определения |
следует, |
что, во-первых, главные компоненты |
y(1), y(2), …, y( p) занумерованы в |
порядке убывания их дисперсий, т. е. |
|
Dy(1) ³ Dy(2) ³…³ Dy( p) , причем легко подсчитать, что, во-первых,
|
Dy(i) = M (Lт |
X)2 = M (LтX XтL ) = Lт∑L |
|
|||
|
i |
i |
i |
i |
i |
|
и, во-вторых, |
вектор Li , определяющий |
преобразование |
перехода от |
|||
x(1), x(2),…, x( p) |
к y(i) , является так называемым i -м собственным вектором ко- |
|||||
вариационной матрицы Σ , т. е. его компоненты li1, |
li2, …, lip |
определяются |
||||
p
как нормированное ( ∑ li2j = 1) решение системы уравнений
j=1
(∑−λiI) Li = 0 ,
гдеλi – i-й по величине корень уравнения
∑−λI = 0 .
Под M подразумевается определитель матрицы М, под I – единичная матрица, а под λ – неизвестное число.
Из вышеприведенных выражений вытекает, что Dy(i) = λi.
17
Таким образом, ковариационная матрица ∑ Y главных компонент y(1), y(2), …, y( p) будет иметь вид
λ1 |
0 |
0 |
… |
0 |
|
|
|
0 |
λ2 |
0 |
… |
0 |
|
∑ Y = |
|
. |
. |
. . |
. |
|
. |
|
|||||
|
0 |
0 |
0 |
… λ |
|
|
|
|
|
|
|
p |
|
Опираясь на то, что преобразование, с помощью которого осуществляется переход от исходных компонент X к главным компонентам Y, (Y = LX) ,
ортогональное, нетрудно выразить исходные переменные x(1), x(2), …, x( p)
через главные компоненты |
x(i) = l |
y(1) + l |
y(2) + …+ l |
pi |
y( p) |
(в матричной запи- |
|
|
1i |
|
2i |
|
|
|
|
си X = LтY ), а также |
показать, |
что |
сумма дисперсий (Dy(1) + Dy(2) + |
||||
+…+ Dy( p)) главных компонент равна сумме дисперсий |
(Dx(1) + Dx(2) + …+ |
||||||
+ Dx( p)) исходных признаков. |
|
|
|
|
|
|
|
Анализ главных компонент в системе MATLAB
Анализ главных компонент (Principal components analysis – PCA) в систе-
ме MATLAB осуществляется с помощью функции princomp(X) в виде:
PC = princomp(X) или
[PC,SCORE,latent,tsquare] = princomp(X)
Функция PC = princomp(X) предназначена для проведения анализа главных компонент многомерной случайной величины Х. Входной параметр Х является матрицей (n × p) исходных данных. Столбцы матрицы Х соответствуют признакам, строки – наблюдениям многомерной случайной величины. Функция возвращает матрицу главных компонент PC (p × p), где p – число при-
знаков многомерной случайной величины, или число столбцов матрицы Х. Каждый столбец матрицы PC содержит коэффициенты одной главной компоненты. Столбцы расположены в порядке убывания дисперсии компонент. Матрица PC является множеством собственных векторов ковариационной матрицы cov(Х). В процессе своей работы princomp центрирует X путем вычитания среднего значения из колонок, но не меняет шкалу X.
Функция [PC, SCORE, latent, tsquare] = princomp(X) возвращает
матрицу главных компонент PC, матрицу оценок SCORE, которая является проекцией X в пространство главных компонент. Строки матрицы SCORE соответствуют наблюдениям, а столбцы – компонентам. Кроме того эта функция возвращает
18
latent – вектор, содержащий собственные значения ковариационной матрицы X
и tsquare – вектор значений статистики T2 Хоттелинга для каждого из наблюде-
ний. Значения вектора latent являются дисперсиями столбцов SCORE. Статисти-
ка T2 Хоттелинга это мера многомерного расстояния каждого наблюдения от центра множества данных. Элементы latent, tsquare могут отсутствовать.
С помощью функции PC = pcacov(Y) можно найти главные компоненты с помощью ковариационной матрицы Y исходных данных.
Пример 4.1 (рис. 4.1)
Построить в пространстве двух первых главных компонент изображение всех трех классов ирисов Фишера.
Главная компонента 2
1.5
1
0.5
0
-0.5
-1
-1.5 |
-3 |
-2 |
-1 |
0 |
1 |
2 |
3 |
4 |
-4 |
Главная компонента 1
Главная компонента 2
1.5
|
setosa |
1 |
versicolor |
virginica |
0.5
0
-0.5
-1
-1.5 |
-3 |
-2 |
-1 |
0 |
1 |
2 |
3 |
4 |
-4 |
Главная компонента 1
Рис. 4.1
load fisheriris
[PC,SCORE] = princomp(meas)
scatter(SCORE(:,1),SCORE(:,2))
Пример 4.2 (рис. 4.2)
Построить в пространстве двух первых главных компонент изображение всех трех классов ирисов Фишера с маркировкой классов (с помощью переменной группировки species):
load fisheriris
[PC,SCORE] = princomp(meas)
gscatter(SCORE(:,1),SCORE(:,
2), species,'','xos')
Рис. 4.2
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
3 |
|
|
|
|
|
|
B |
|
|
|
|
|
|
|
|
C |
компонента |
2 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-2главнаяя |
0 |
|
|
|
|
|
|
|
-1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-2 |
|
|
|
|
|
|
|
|
-3 |
|
|
|
|
|
|
|
|
-4 |
-6 |
-4 |
-2 |
0 |
2 |
4 |
6 |
|
-8 |
1-я главная компонента
Рис. 4.3
19
Пример 4.3 (рис. 4.3)
Используя массив a из примера 1.1, построим gscatter для классов A, B, C
по двум первым главным компонентам. Для этого надо (как в примере 1.1) по-
строить матрицу a, переменную группировки g и далее использовать функцию
[PC,SCORE] = princomp(a).
[PC,SCORE] = princomp(a)
gscatter(SCORE(:,1), SCORE(:, 2), g,'','xos')
Задание
1. Ознакомиться с теоретическими положениями метода главных ком-
понент.
2. Освоить использование функции princomp на биологических и стати-
стических данных.
3.Освоить отображение данных в пространстве двух главных компонент
спомощью функций scatter и gscatter.
Порядок выполнения работы
1.Ввести в компьютер две матрицы данных f1 и f2 для двух классов A и B.
2.Вычислить переменную группировки g, как это было сделано в при-
мере 1.1.
3.Вычислить главные компоненты для объединенной матрицы [f1; f2]
ив пространстве двух первых главных компонент отобразить полученные дан-
ные с использованием функции gscatter и переменной группировки g.
4. Сделать вывод о возможности линейного разделения классов и оце-
нить получаемые ошибки.
Матрица |
f1 |
|
|
|
|
|
0.997 |
0.05 |
0.15; |
2.686 |
0.19 |
0.80; |
|
2.930 |
0.15 |
0.54; |
||||
0.997 |
0.09 |
0.28; |
||||
2.93 |
0.13 |
0.72; |
||||
1.221 |
0.09 |
0.40; |
||||
1.221 |
0.11 |
0.56; |
||||
0.997 |
0.10 |
0.39; |
||||
1.953 |
0.19 |
0.72; |
||||
0.997 |
0.10 |
0.40; |
||||
0.997 |
0.13 |
0.53; |
||||
1.709 |
0.13 |
0.72; |
||||
1.221 |
0.12 |
0.41; |
||||
1.953 |
0.22 |
0.91; |
||||
1.221 |
0.07 |
0.29; |
||||
1.221 |
0.07 |
0.28; |
||||
0.997 |
0.11 |
0.51 |
||||
2.441 |
0.17 |
0.76; |
||||
|
|
|
20