§3. Вычисление главных компонент
Следующий простой алгоритм (степенной метод) позволяет вычислить для симметричной (не обязательно неотрицательно определённой) матрицы несколько наибольших по модулю собственных значений и соответствующих собственных векторов . Сначала разберём частный случай этого алгоритма — вычисление и .
Возьмём произвольный ненулевой вектор из . Пусть выполнены два условия: и . Положим (то есть , что объясняет название метода). Тогда последовательность значений сходится к со скоростью геометрической прогрессии со знаменателем .
Доказательство. Обозначим через координаты вектора в базисе , то есть . Так как , то . Отсюда
где , причём в силу первого условия при .
В частности, когда все , это означает, что при каждой итерации длина вектора увеличивается, но быстрее остальных растёт его координата по оси . При этом направление приближается к направлению первой главной оси.
Формально это можно доказать с помощью известного из линейной алгебры неравенства Коши — Буняковского — Шварца . Согласно второму условию алгоритма . Отсюда ; , где ; .
По кирпичикам: каждое умножение на растягивает координату вдоль в раз. После умножений координата по обгоняет остальные в раз — экспоненциально. Остальные «тонут», и вектор разворачивается вдоль .
Смысл по-пацански: жми матрицей на любой вектор много раз подряд — и он обязательно повернётся туда, куда матрица «тянет» сильнее всего. Как толпа на митинге: кто бы где ни стоял, через пять минут все у самого громкого оратора.
Замечание 4. Если , то , а если , то при . При вычислении на компьютере в первом случае возможно переполнение, во втором — исчезновение порядка. Предотвратить эти ситуации позволяет нормировка векторов на каждом шаге.
Учитывая замечание 4, приходим к следующему алгоритму для вычисления и .
- Положим , и зададим произвольный ненулевой вектор из . Нормируем : пусть (обычно сразу берут ).
- Вычислим и .
- Нормируем : .
- Если , где — достаточно малое число, то положим и и закончим итерационный процесс. Иначе увеличим на 1 и перейдём к шагу 2.
Замечание 5. Если при выборе случится, что , то через несколько итераций за счёт погрешностей округления, как правило, появится ненулевая координата у в направлении , и процесс, хотя и с некоторым запаздыванием, выйдет на первое собственное значение. Можно также стартовать с разных и сравнивать результаты.
Следующие компоненты: ортогонализация
Пусть . Для вычисления первых главных компонент кроме умножения на и нормировки понадобится ещё ортогонализация. Именно, предположим, что и уже известны при всех . Чтобы найти и , выполним следующие шаги.
- Положим , и зададим произвольный вектор из (надо только, чтобы ).
- Проведём ортогонализацию к векторам : .
- Нормируем : .
- Вычислим и .
- Нормируем : .
- Если , то положим , и закончим процесс. В противном случае приравняем , увеличим на 1 и перейдём к шагу 2.
Смысл по-пацански: самого громкого оратора уже нашли — выведем его из зала (вычтем проекцию на ). Тогда толпа соберётся у второго по громкости. И так далее.
Для матрицы корреляций собак и волков , и находится за 8 шагов. Для скорость определяется отношением — шагов нужно уже около 40. Чем ближе соседние собственные значения, тем медленнее степенной метод.
(Матрица рис. 3 округлена до сотых, поэтому собственные значения по ней чуть отличаются от точных 4,100; 0,883; 0,639.)
Насколько доверять собственным значениям
В заключение обсудим, насколько следует доверять вычисленным значениям и . Следующий пример показывает, что для числа объектов порядка нескольких десятков разброс этих значений может оказаться достаточно большим.
Пример 2. Статистика главных компонент для нормальной модели. Предположим, что объекты представляют собой выборку размера из закона с невырожденной матрицей , у которой все собственные значения () различны. Тогда:
- собственные значения и отвечающие им собственные векторы выборочной ковариационной матрицы являются оценками максимального правдоподобия для соответствующих , (см. пример 2 главы 19) и, следовательно, обладают асимптотической эффективностью (см. §4 главы 9);
- при ;
- при , где элементами матрицы служат .
Построим на основе свойства 2 асимптотический доверительный интервал (см. §1 главы 11) для в примере 1. Так как свойство 2 равносильно сходимости , то при достаточно больших приближённо с вероятностью выполняется неравенство
где — квантиль уровня закона (см. §3 главы 7). Для по таблице T2 находим, что . При получаем 95 %-й доверительный интервал для от 2,88 до 7,1.
По кирпичикам: , . Тогда и .
Смысл по-пацански: «первая компонента объясняет 68 %» звучит солидно, но на 43 черепах сама гуляет от 2,9 до 7,1 — в два с половиной раза. Красивые проценты на малых выборках — с большим люфтом.