Теперь перейдем к методу главных компонент. Метод главных компонент, в частности, позволяет среди сильно коррелированных переменных выбрать одну или две, которые бы поймали практически всю совокупную дисперсию набора переменных. Второй сюжет — это метод главных компонент. Давайте возьмем данные по многоборью. Набор данных heptathlon, встроенный в пакет HSAUR. Можно почитать к нему документацию. help(heptathlon) Это результаты Сеульских Олимпийских игр 1988-го года. И давайте посмотрим, бросим взгляд на набор данных h. Соответственно, здесь есть результаты бега с препятствиями в секундах, есть прыжки в высоту, есть забег 200 метров, есть javelin (метание копья) и так далее. Score — это результат за многоборье, который рассчитывается на основании исходных семи переменных. Давайте удалим его, поскольку она искусственно рассчитывается. Мы из набора данных h удалим переменную score, поэтому мы пишем: select(h, -score). Удалили переменную, отвечающую за итоговые результаты, и оставили только семь исходных результатов по разным видам спорта. Соответственно, давайте посмотрим описательные статистики для нашего набора данных h. Как мы и ожидали, мы видим, что, конечно, средние значения по каждой переменной существенно отличаются. По бегу с препятствиями среднее время — это 13,84, а средний результат метания копья, он совершенно в других единицах, в метрах — и это 41,48. Как видно, стандартные отклонения тоже сильно отличаются. Стандартное отклонение самое маленькое — 0,08, а самое большое стандартное отклонение — 8,2, то есть отличие в сотню раз. Поэтому применять без стандартизации переменных метод главных компонент к нашему набору данных неразумно. У нас переменные имеют разные единицы измерения. У них разный разброс. Нам метод главных компонент, если применять его просто в лоб, даст с большим весом бег на 800 метров, как самую переменную, имеющую наибольший разброс. А нам надо поймать переменные, которые наиболее информативно описывают разницу между спортсменами. Соответственно, мы будем применять метод главных компонент, но предварительно стандартизируем наши переменные. Еще можно перед методом главных компонент посмотреть на корреляции. И здесь как раз мы видим, что корреляции бывают довольно высокие. Ну, вот, например, корреляция между прыжками в длину и бегом с препятствиями — минус 0,91. Ну, тут связано, конечно... Отрицательность корреляции означает то, что прыжок в длину чем длиннее, тем лучше, а результат бега с препятствиями — чем меньше время, тем лучше, поэтому корреляция разумно, что она отрицательная. Это хороший знак. И, наконец, применим метод главных компонент. Для этого мы воспользуемся функцией prcomp (principal component, сокращение). Возьмем наш набор данных h и обязательно укажем опцию scale=TRUE, то есть нужна стандартизация переменных, поскольку они в разных единицах измерения. Всё, компьютер нам оценил главные компоненты. Можно их достать, посмотреть, попытаться визуализировать. Давайте сначала достанем. Первая главная компонента: из h.pca вытащим первый столбик новых иксов. Новые иксы. То есть мы... новые иксы, первый столбик. И давайте вытащим веса первой главной компоненты. Значит, из всех оцененных компонент вытащим компоненту rotation. Тоже первый столбик. Давайте посмотрим на v1. v1 — это веса, с которыми старые переменные результаты отдельных видов спорта входят в новую синтетическую переменную. Здесь мы видим, что в первую главную компоненту бег с препятствиями входит с весом 0,45 прыжки в высоту входят с весом минус 0,37 и так далее. Бег на 800 метров входит с весом 0,37. Соответственно, можно сказать, что несколько наиболее важных переменных в первой главной компоненте — это бег с препятствиями, бег на 200 метров, прыжки в длину. А вот, например, метание копья входит в первую главную компоненту с очень маленьким весом. Ну и можно, в принципе, посмотреть на первую главную компоненту, на ее начало. Поскольку у нас тут много спортсменов — 25, но мы все 25 наблюдений смотреть не будем, но начало посмотрим. Соответственно, вот это значение новой искусственной переменной первой главной компоненты для разных спортсменов разных стран. Давайте посмотрим описание результатов оценивания. Значит, summary по pca, по главным компонентам у нас идет следующее: первая главная компонента ловит 63 % дисперсии совокупно-исходного набора данных. Первая и вторая главная компоненты в сумме уже ловят 80 % дисперсии исходного набора данных. Соответственно, видно, что уже несколько первых главных компонент, ну, например, первые четыре главных компоненты ловят 95 % разброса исходных данных. То есть вместо семи переменных, оказывается, что тот же самый набор данных примерно можно описать всего с помощью четырех главных компонент. И первые две главных компоненты позволяют нам визуализировать наши результаты. Давайте предварительно, во-первых, увидим, что первая главная компонента, она связана очень сильно с результатом. Если посчитать корреляцию между результатом семиборья, который рассчитывается по формуле олимпийской и нашей первой главной компоненты, то оказывается, что это практически одно и то же. Корреляция равна минус 0,99, хотя, конечно, олимпийский комитет использует не первую главную компоненту, а другую формулу, которая учитывает веса всех видов спорта. Давайте кое-что визуализируем в методе главных компонент. Во-первых, визуализируем долю объясняемой дисперсии разными компонентами. Соответственно, какой размер дисперсии объясняет каждая главная компонента: первая вторая, третья и так далее. И также можно визуализировать наши наблюдения в осях, где по оси х будет первая главная компонента, а по оси у будет вторая главная компонента. biplot(h.pca И давайте я сразу поставлю границы немножко пошире по х от минус 1 до 1, и посмотрим, что видно на этом графике. Что видно на этом графике? На этом графике по горизонтали отложена первая главная компонента, по вертикали — вторая главная компонента. И, соответственно, каждый спортсмен изображен в координатах не исходных результатов спорта, а искусственных первых и вторых главных компонент. Что бросается в глаза на этом графике? Во-первых, этот график сразу показывает, что есть особая спортсменка — вот Launa из PNG (PNG — это сокращение от Папуа – Новая Гвинея) вот Launa из Папуа – Новой Гвинеи она совсем не такая, как все. У нее результаты существенно отличаются. Дальше красным... красные векторы — это, соответственно, в координатах первой главной и второй главной компоненты у нас отмерены исходные переменные. Соответственно, я вижу, что вторая главная компонента, она в себе берет с большим весом метание копья, а первая главная компонента, в нее примерно с равными весами входят и вот longjump и hurdles примерно направлен в соответствии первой главной компоненты. То есть можно сказать, какие переменные составляют первую главную компоненту. Кроме того, можно, например, обнаружить по этому графику, что, скажем, корреляция между прыжками в длину (longjump) и корреляция между временем бега с барьерами она отрицательная, потому что в терминах главных компонент эти вектора направлены в разные стороны. И если повезет, если данные хорошо кластеризуются, то, соответственно, метод главных компонент позволяет получить несколько кластеров. У нас в данном случае, правда, кластеров вышло всего два: все спортсмены и Launa, но тем не менее иногда это позволяет дать легкую наглядную интерпретацию сложного многомерного набора данных.