Метод главных компонент (мгк): основные формулы и процедуры. Метод главных компонент: определение, применение, пример расчета Метод главных компонент для чайников

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

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



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

Сущность вычисления главных компонент заключается в определении корреляционной (ковариационной) матрицы для исходных факторов X j и нахождении характеристических чисел (собственных значений) матрицы и соответствующих векторов. Характеристические числа являются дисперсиями новых преобразованных переменных и для каждого характеристического числа соответствующий вектор дает вес, с которым старые переменные входят в новые. Главные компоненты – это линейные комбинации исходных статистических величин. Переход от исходных (наблюдаемых) факторов к векторам главных компонент осуществляется посредством поворота координатных осей.

Для регрессионного анализа используют, как правило, лишь несколько первых главных компонент, которые в сумме объясняют от 80 до 90 % всей исходной вариации факторов, остальные из них отбрасываются. В случае если все компоненты включены в регрессию, результат ее, выраженный через первоначальные переменные, будет идентичен множественному уравнению регрессии.

Алгоритм вычисления главных компонент

Допустим, имеется m векторов (исходных факторов) размерностью n (количество измерений), которые составляют матрицу Х:

Поскольку, как правило, основные факторы моделируемого процесса имеют разные единицы измерения (одни выражены в кг, другие – в км, третьи – в денежных единицах и т. д.), для их сопоставления, сравнения степени влияния, применяют операцию масштабирования и центрирования. Преобразованные входные факторы обозначим через y ij . В качестве масштабов выбираются чаще всего величины стандартных (среднеквадратических) отклонений:

где σ j – среднее квадратическое отклонение X j ; σ j 2 - дисперсия; - среднее значение исходных факторов в данной j-ой серии наблюдений

(Центрированной случайной величиной называется отклонение случайной величины от ее математического ожидания. Нормировать величину х – означает перейти к новой величине у, для которой средняя величина равна нулю, а дисперсия – единице).

Определим матрицу парных коэффициентов корреляции

где у ij – нормированное и центрированное значение x j –й случайной величины для i-го измерения; y ik – значение для k-й случайной величины.

Значение r jk характеризует степень разброса точек по отношению к линии регрессии.

Искомая матрица главных компонент F определяется из следующего соотношения (здесь используется транспонированная,- “повернутая на 90 0 ” – матрица величин y ij):

или используя векторную форму:

,

где F – матрица главных компонент, включающая совокупность n полученных значений для m главных компонент; элементы матрицы А являются весовыми коэффициентами, определяющими долю каждой главной компоненты в исходных факторах.

Элементы матрицы А находятся из следующего выражения

где u j – собственный вектор матрицы коэффициентов корреляции R; λ j – соответствующее собственное значение.

Число λ называется собственным значением (или характеристическим числом) квадратной матрицы R порядка m, если можно подобрать такой m-мерный ненулевой собственный вектор u, что Ru = λu.

Множество всех собственных значений матрицы R совпадает с множеством всех решений уравнения |R - λE| = 0. Если раскрыть определитель det |R - λE|, то получится характеристический многочлен матрицы R. Уравнение |R - λE| = 0 называется характеристическим уравнением матрицы R.

Пример определения собственных значений и собственных векторов. Дана матрица .

Ее характеристическое уравнение

Это уравнение имеет корни λ 1 =18, λ 2 =6, λ 3 =3. найдем собственный вектор (направление), соответствующее λ 3 . Подставляя λ 3 в систему, получим:

8u 1 – 6u 2 +2u 3 = 0

6u 1 + 7u 2 - 4u 3 = 0

2u 1 - 4u 2 + 3u 3 = 0

Т. к. определитель этой системы равен нулю, то согласно правилам линейной алгебры, можно отбросить последнее уравнение и решать полученную систему по отношению к произвольной переменной, например u 1 = с= 1

6 u 2 + 2u 3 = - 8c

7 u 2 – 4 u 3 = 6 c

Отсюда получим собственное направление (вектор) для λ 3 =3

1 таким же образом можно найти собственные вектора

Общий принцип, лежащий в основе процедуры нахождения главных компонент показан на рис. 29.



Рис. 29. Схема связи главных компонент с переменными

Весовые коэффициенты характеризуют степень влияния (и направленность) данного “скрытого” обобщающего свойства (глобального понятия) на значения измеряемых показателей Х j .

Пример интерпретации результатов компонентного анализа:

Название главной компоненты F 1 определяется наличием в ее структуре значимых признаков Х 1 , Х 2 , Х 4 , Х 6 , все они представляют характеристики эффективности производственной деятельности, т.е. F 1 - эффективность производства .

Название главной компоненты F 2 определяется наличием в ее структуре значимых признаков Х 3 , Х 5 , Х 7, т.е. F 2 - это размер производственных ресурсов .

ЗАКЛЮЧЕНИЕ

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

В стремлении предельно точно описать исследуемую область аналитики часто отбирают большое число независимых переменных (p). В этом случае может возникнуть серьезная ошибка: несколько описывающих переменных могут характеризовать одну и ту же сторону зависимой переменной и, как следствие, высоко коррелировать между собой. Мультиколлинеарность независимых переменных серьезно искажает результаты исследования, поэтому от нее следует избавляться.

Метод главных компонент (как упрощенная модель факторного анализа, поскольку при этом методе не используются индивидуальные факторы, описывающие только одну переменную x i) позволяет объединить влияние высоко коррелированных переменных в один фактор, характеризующий зависимую переменную с одной единственной стороны. В результате анализа, осуществленного по методу главных компонент, мы добьемся сжатия информации до необходимых размеров, описания зависимой переменной m (m

Для начала необходимо решить, сколько факторов необходимо выделить в данном исследовании. В рамках метода главных компонент первый главный фактор описывает наибольших процент дисперсии независимых переменных, далее – по убывающей. Таким образом, каждая следующая главная компонента, выделенная последовательно, объясняет все меньшую долю изменчивости факторов x i . Задача исследователя состоит в том, чтобы определить, когда изменчивость становится действительно малой и случайной. Другими словами – сколько главных компонент необходимо выбрать для дальнейшего анализа.

Существует несколько методов рационального выделения необходимого числа факторов. Наиболее используемый из них – критерий Кайзера. Согласно этому критерию, отбираются только те факторы, собственные значения которых больше 1. Таким образом, фактор, который не объясняет дисперсию, эквивалентную, по крайней мере, дисперсии одной переменной, опускается.



Проанализируем Таблицу 19, построенную в SPSS:

Таблица 19. Полная объясненная дисперсия

Компонента Начальные собственные значения Суммы квадратов нагрузок вращения
Итого % Дисперсии Кумулятивный % Итого % Дисперсии Кумулятивный %
dimension0 5,442 90,700 90,700 3,315 55,246 55,246
,457 7,616 98,316 2,304 38,396 93,641
,082 1,372 99,688 ,360 6,005 99,646
,009 ,153 99,841 ,011 ,176 99,823
,007 ,115 99,956 ,006 ,107 99,930
,003 ,044 100,000 ,004 ,070 100,000
Метод выделения: Анализ главных компонент.

Как видно из Таблицы 19, в данном исследовании переменные x i высоко коррелирут между собой (это также выявлено ранее и видно из Таблицы 5 «Парные коэффициенты корреляции»), а следовательно, характеризуют зависимую переменную Y практически с одной стороны: изначально первая главная компонента объясняет 90,7 % дисперсии x i , и только собственное значение, соответствующее первой главной компоненте, больше 1. Конечно, это является недостатком отбора данных, однако в процессе самого отбора этот недостаток не был очевиден.

Анализ в пакете SPSS позволяет самостоятельно выбрать число главных компонент. Выберем число 6 – равное количеству независимых переменных. Второй столбец Таблицы 19 показывает суммы квадратов нагрузок вращения, именно по этим результатам и сделаем вывод о числе факторов. Собственные значения, соответствующие первым двум главным компонентам, больше 1 (55,246% и 38,396% соответственно), поэтому, согласно методу Кайзера, выделим 2 наиболее значимые главные компоненты.

Второй метод выделения необходимого числа факторов – критерий «каменистой осыпи». Согласно этому методу, собственные значения представляются в виде простого графика, и выбирается такое место на графике, где убывание собственных значений слева направо максимально замедляется:

Рисунок 3. Критерий "каменистой осыпи"

Как видно на Рисунке 3, убывание собственных значений замедляется уже со второй компоненты, однако постоянная скорость убывания (очень маленькая) начинается лишь с третьей компоненты. Следовательно, для дальнейшего анализа будут отобраны первые две главные компоненты. Это умозаключение согласуется с выводом, полученным при использовании метода Кайзера. Таким образом, окончательно выбираются первые две последовательно полученные главные компоненты.

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

Таблица 20. Матрица факторных нагрузок

Матрица компонент a
Компонента
X1 ,956 -,273 ,084 ,037 -,049 ,015
X2 ,986 -,138 ,035 -,080 ,006 ,013
X3 ,963 -,260 ,034 ,031 ,060 -,010
X4 ,977 ,203 ,052 -,009 -,023 -,040
X5 ,966 ,016 -,258 ,008 -,008 ,002
X6 ,861 ,504 ,060 ,018 ,016 ,023
Метод выделения: Анализ методом главных компонент.
a. Извлеченных компонент: 6

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

Таблица 21. Коэффициенты интерпретации

Матрица повернутых компонент a
Компонента
X1 ,911 ,384 ,137 -,021 ,055 ,015
X2 ,841 ,498 ,190 ,097 ,000 ,007
X3 ,900 ,390 ,183 -,016 -,058 -,002
X4 ,622 ,761 ,174 ,022 ,009 ,060
X5 ,678 ,564 ,472 ,007 ,001 ,005
X6 ,348 ,927 ,139 ,001 -,004 -,016
Метод выделения: Анализ методом главных компонент. Метод вращения: Варимакс с нормализацией Кайзера.
a. Вращение сошлось за 4 итераций.

Из Таблицы 21 видно, что первая главная компонента больше всего связана с переменными x1, x2, x3; а вторая – с переменными x4, x5, x6. Таким образом, можно сделать вывод, что объем инвестиций в основные средства в регионе (переменная Y) зависит от двух факторов:

- объема собственных и заемных средств, поступивших в предприятия региона за период (первая компонента, z1);

- а также от интенсивности вложений предприятий региона в финансовые активы и количества иностранного капитала в регионе (вторая компонента, z2).

Рисунок 4. Диаграмма рассеивания

Данная диаграмма демонстрирует неутешительные результаты. Еще в самом начале исследования мы старались подобрать данные так, чтобы результирующая переменная Y была распределена нормально, и нам практически это удалось. Законы распределения независимых переменных были достаточно далеки от нормального, однако мы старались максимально приблизить их к нормальному закону (соответствующим образом подобрать данные). Рисунок 4 показывает, что первоначальная гипотеза о близости закона распределения независимых переменных к нормальному закону не подтверждается: форма облака должна напоминать эллипс, в центре объекты должны быть расположены более густо, нежели чем по краям. Стоит заметить, что сделать многомерную выборку, в которой все переменные распределены по нормальному закону – задача, выполнимая с огромным трудом (более того, не всегда имеющая решение). Однако к этой цели нужно стремиться: тогда результаты анализа будут более значимыми и понятными при интерпретации. К сожалению, в нашем случае, когда проделана большая часть работы по анализу собранных данных, менять выборку достаточно затруднительно. Но далее, в последующих работах, стоит более серьезно подходить в выборке независимых переменных и максимально приближать закон их распределения к нормальному.

Последним этапом анализа методом главных компонент является построение уравнения регрессии на главные компоненты (в данном случае – на первую и вторую главные компоненты).

При помощи SPSS рассчитаем параметры регрессионной модели:

Таблица 22. Параметры уравнения регресии на главные компоненты

Модель Нестандартизованные коэффициенты Стандартизованные коэффициенты t Знч.
B Стд. Ошибка Бета
(Константа) 47414,184 1354,505 35,005 ,001
Z1 26940,937 1366,763 ,916 19,711 ,001
Z2 6267,159 1366,763 ,213 4,585 ,001

Уравнение регрессии примет вид:

y=47 414,184 + 0,916*z1+0,213*z2,

(b0) (b1) (b2)

т. о. b0 =47 414,184 показывает точку пересечения прямой регрессии с осью результирующего показателя;

b1= 0,916 – при увеличении значения фактора z1 на 1 ожидаемое среднее значение суммы объема инвестиций в основные средства увеличится на 0,916;

b2= 0,213 – при увеличении значения фактора z2 на 1 ожидаемое среднее значение суммы объема инвестиций в основные средства увеличится на 0,213.

В данном случае значение tкр («альфа»=0,001, «ню»=53) = 3,46 меньше tнабл для всех коэффициентов «бета». Следовательно, все коэффициенты значимы.

Таблица 24. Качество регрессионной модели на главные компоненты

Модель R R-квадрат Скорректированный R-квадрат Стд. ошибка оценки
dimension0 ,941 a ,885 ,881 10136,18468
a. Предикторы: (конст) Z1, Z2
b. Зависимая переменная: Y

В Таблице 24 отражены показатели, которые характеризуют качество построенной модели, а именно: R – множественный к-т корреляции – говорит о том, какая доля дисперсии Y объясняется вариацией Z; R^2 – к-т детерминации – показывает долю объяснённой дисперсии отклонений Y от её среднего значения. Стандартная ошибка оценки характеризует ошибку построенной модели. Сравним эти показатели с аналогичными показателями степенной регрессионной модели (ее качество оказалось выше качества линейной модели, поэтому сравниваем именно со степенной):

Таблица 25. Качество степенной регрессионной модели

Так, множественный к-т корреляции R и к-т детерминации R^2 в степенной модели несколько выше, чем в модели главных компонент. Кроме того, стандартная ошибка модели главных компонент НАМНОГО выше, чем в степенной модели. Поэтому качество степенной регрессионной модели выше, чем регрессионной модели, построенной на главных компонентах.

Проведем верификацию регрессионной модели главных компонент, т. е. проанализируем ее значимость. Проверим гипотезу о незначимости модели, рассчитаем F(набл.) = 204,784 (рассчитано в SPSS), F(крит) (0,001; 2; 53)=7,76. F(набл)>F(крит), следовательно, гипотеза о незначимости модели отвергается. Модель значима.

Итак, в результате проведения компонентного анализа, было выяснено, что из отобранных независимых переменных x i можно выделить 2 главные компоненты – z1 и z2, причем на z1 в большей степени влияют переменные x1, x2, x3, а на z2 – x4, x5, x6. Уравнение регрессии, построенное на главных компонентах, оказалось значимым, хотя и уступает по качеству степенному уравнению регрессии. Согласно уравнению регрессии на главные компоненты, Y положительно зависит как от Z1, так и от Z2. Однако изначальная мультиколлинеарность переменных xi и то, что они не распределены по нормальному закону распределения, может искажать результаты построенной модели и делать ее менее значимой.

Кластерный анализ

Следующим этапом данного исследования является кластерный анализ. Задачей кластерного анализа является разбиение выбранных регионов (n=56) на сравнительно небольшое число групп (кластеров) на основе их естественной близости относительно значений переменных x i . При проведении кластерного анализа мы предполагаем, что геометрическая близость двух или нескольких точек в пространстве означает физическую близость соответствующих объектов, их однородность (в нашем случае - однородность регионов по показателям, влияющим на инвестиции в основные средства).

На первой стадии кластерного анализа необходимо определиться с оптимальным числом выделяемых кластеров. Для этого необходимо провести иерархическую кластеризацию – последовательное объединение объектов в кластеры до тех пор, пока не останется два больших кластера, объединяющиеся в один на максимальном расстоянии друг от друга. Результат иерархического анализа (вывод об оптимальном количестве кластеров) зависит от способа расчета расстояния между кластерами. Таким образом, протестируем различные методы и сделаем соответствующие выводы.

Метод «ближнего соседа»

Если расстояние между отдельными объектами мы рассчитываем единым способом – как простое евклидово расстояние – расстояние между кластерами вычисляется разными методами. Согласно методу «ближайшего соседа», расстояние между кластерами соответствует минимальному расстоянию между двумя объектами разных кластеров.

Анализ в пакете SPSS проходит следующим образом. Сначала рассчитывается матрица расстояний между всеми объектами, а затем, на основе матрицы расстояний, объекты последовательно объединяются в кластеры (для каждого шага матрица составляется заново). Шаги последовательного объединения представлены в таблице:

Таблица 26. Шаги агломерации. Метод «ближайшего соседа»

Этап Кластер объединен с Коэффициенты Следующий этап
Кластер 1 Кластер 2 Кластер 1 Кластер 2
,003
,004
,004
,005
,005
,005
,005
,006
,007
,007
,009
,010
,010
,010
,010
,011
,012
,012
,012
,012
,012
,013
,014
,014
,014
,014
,015
,015
,016
,017
,018
,018
,019
,019
,020
,021
,021
,022
,024
,025
,027
,030
,033
,034
,042
,052
,074
,101
,103
,126
,163
,198
,208
,583
1,072

Как видно из Таблицы 26, на первом этапе объединились элементы 7 и 8, т. к. расстояние между ними было минимальным – 0,003. Далее расстояние между объединенными объектами увеличивается. По таблице также можно сделать вывод об оптимальном числе кластеров. Для этого нужно посмотреть, после какого шага происходит резкий скачок в величине расстояния, и вычесть номер этой агломерации из числа исследуемых объектов. В нашем случае: (56-53)=3 – оптимальное число кластеров.

Рисунок 5. Дендрограмма. Метод "ближайшего соседа"

Аналогичный вывод об оптимальном количестве кластеров можно сделать и глядя на дендрограмму (Рис. 5): следует выделить 3 кластера, причем в первый кластер войдут объекты под номерами 1-54 (всего 54 объекта), а во второй и третий кластеры – по одному объекту (под номерами 55 и 56 соответственно). Данный результат говорит о том, что первые 54 региона относительно однородны по показателям, влияющим на инвестиции в основные средства, в то время как объекты под номерами 55 (Республика Дагестан) и 56 (Новосибирская область) значительно выделяются на общем фоне. Стоит заметить, что данные субъекты имеют самые большие объемы инвестиций в основные средства среди всех отобранных регионов. Этот факт еще раз доказывает высокую зависимость результирующей переменной (объема инвестиций) от выбранных независимых переменных.

Аналогичные рассуждения проводятся для других методов расчета расстояния между кластерами.

Метод «дальнего соседа»

Таблица 27. Шаги агломерации. Метод "дальнего соседа"

Этап Кластер объединен с Коэффициенты Этап первого появления кластера Следующий этап
Кластер 1 Кластер 2 Кластер 1 Кластер 2
,003
,004
,004
,005
,005
,005
,005
,007
,009
,010
,010
,011
,011
,012
,012
,014
,014
,014
,017
,017
,018
,018
,019
,021
,022
,026
,026
,027
,034
,035
,035
,037
,037
,042
,044
,046
,063
,077
,082
,101
,105
,117
,126
,134
,142
,187
,265
,269
,275
,439
,504
,794
,902
1,673
2,449

При методе «дальнего соседа» расстояние между кластерами рассчитывается как максимальное расстояние между двумя объектами в двух разных кластерах. Согласно Таблице 27, оптимальное число кластеров равно (56-53)=3.

Рисунок 6. Дендрограмма. Метод "дальнего соседа"

Согласно дендрограмме, оптимальным решением также будет выделение 3 кластеров: в первый кластер войдут регионы под номерами 1-50 (50 регионов), во второй – под номерами 51-55 (5 регионов), в третий – последний регион под номером 56.

Метод «центра тяжести»

При методе «центра тяжести» за расстояние между кластерами принимается евклидово расстояние между «центрами тяжести» кластеров – средними арифметическими их показателей x i .

Рисунок 7. Дендрограмма. Метод "центра тяжести"

На Рисунке 7 видно, что оптимальное число кластеров следующее: 1 кластер – 1-47 объекты; 2 кластер – 48-54 объекты (всего 6); 3 кластер – 55 объект; 4 кластер – 56 объект.

Принцип «средней связи»

В данном случае расстояние между кластерами равно среднему значению расстояний между всеми возможными парами наблюдений, причем одно наблюдение берется из одного кластера, а второе – соответственно, из другого.

Анализ таблицы шагов агломерации показал, что оптимальное количество кластеров равно (56-52)=4. Сравним этот вывод с выводом, полученным при анализе дендрограммы. На Рисунке 8 видно, что в 1 кластер войдут объекты под номерами 1-50, во 2 кластер – объекты 51-54 (4 объекта), в 3 кластер – 55 регион, в 4 кластер – 56 регион.

Рисунок 8. Дендрограмма. Метод "средней связи"

Метод главных компонентов (английский - principal component analysis, PCA) упрощает сложность высокоразмерных данных, сохраняя тенденции и шаблоны. Он делает это, преобразуя данные в меньшие размеры, которые действуют, как резюме функций. Такие данные очень распространены в разных отраслях науки и техники, и возникают, когда для каждого образца измеряются несколько признаков, например, таких как экспрессия многих видов. Подобный тип данных представляет проблемы, вызванные повышенной частотой ошибок из-за множественной коррекции данных.

Метод похож на кластеризацию - находит шаблоны без ссылок и анализирует их, проверяя, взяты ли образцы из разных групп исследования, и имеют ли они существенные различия. Как и во всех статистических методах, его можно применить неправильно. Масштабирование переменных может привести к разным результатам анализа, и очень важно, чтобы оно не корректировалось, на предмет соответствия предыдущему значению данных.

Цели анализа компонентов

Основная цель метода - обнаружить и уменьшить размерность набора данных, определить новые значимые базовые переменные. Для этого предлагается использовать специальные инструменты, например, собрать многомерные данные в матрице данных TableOfReal, в которой строки связаны со случаями и столбцами переменных. Поэтому TableOfReal интерпретируется как векторы данных numberOfRows, каждый вектор которых имеет число элементов Columns.

Традиционно метод главных компонентов выполняется по ковариационной матрице или по корреляционной матрице, которые можно вычислить из матрицы данных. Ковариационная матрица содержит масштабированные суммы квадратов и кросс-произведений. Корреляционная матрица подобна ковариационной матрице, но в ней сначала переменные, то есть столбцы, были стандартизованы. Вначале придется стандартизировать данные, если дисперсии или единицы измерения переменных сильно отличаются. Чтобы выполнить анализ, выбирают матрицу данных TabelOfReal в списке объектов и даже нажимают перейти.

Это приведет к появлению нового объекта в списке объектов по методу главных компонент. Теперь можно составить график кривых собственных значений, чтобы получить представление о важности каждого. И также программа может предложить действие: получить долю дисперсии или проверить равенство числа собственных значений и получить их равенство. Поскольку компоненты получены путем решения конкретной задачи оптимизации, у них есть некоторые «встроенные» свойства, например, максимальная изменчивость. Кроме того, существует ряд других их свойств, которые могут обеспечить факторный анализ:

  • дисперсию каждого, при этом доля полной дисперсии исходных переменных задается собственными значениями;
  • вычисления оценки, которые иллюстрируют значение каждого компонента при наблюдении;
  • получение нагрузок, которые описывают корреляцию между каждым компонентом и каждой переменной;
  • корреляцию между исходными переменными, воспроизведенными с помощью р-компонента;
  • воспроизведения исходных данных могут быть воспроизведены с р-компонентов;
  • «поворот» компонентов, чтобы повысить их интерпретируемость.

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

Существует два способа выбрать необходимое количество компонентов для хранения. Оба метода основаны на отношениях между собственными значениями. Для этого рекомендуется построить график значений. Если точки на графике имеют тенденцию выравниваться и достаточно близки к нулю, то их можно игнорировать. Ограничивают количество компонентов до числа, на которое приходится определенная доля общей дисперсии. Например, если пользователя удовлетворяет 95% от общей дисперсии - получают количество компонентов (VAF) 0.95.

Основные компоненты получают проектированием многомерного статистического анализа метода главных компонентов datavectors на пространстве собственных векторов. Это можно сделать двумя способами - непосредственно из TableOfReal без предварительного формирования PCA объекта и затем можно отобразить конфигурацию или ее номера. Выбрать объект и TableOfReal вместе и «Конфигурация», таким образом, выполняется анализ в собственном окружении компонентов.

Если стартовая точка оказывается симметричной матрицей, например, ковариационной, сначала выполняют сокращение до формы, а затем алгоритм QL с неявными сдвигами. Если же наоборот и отправная точка является матрица данных, то нельзя формировать матрицу с суммами квадратов. Вместо этого, переходят от численно более стабильного способа, и образуют разложения по сингулярным значениям. Тогда матрица будет содержать собственные векторы, а квадратные диагональные элементы - собственные значения.

Основным компонентом является нормализованная линейная комбинация исходных предикторов в наборе данных по методу главных компонент для чайников. На изображении выше PC1 и PC2 являются основными компонентами. Допустим, есть ряд предикторов, как X1, X2...,Xp.

Основной компонент можно записать в виде: Z1 = 11X1 + 21X2 + 31X3 + .... + p1Xp

  • Z1 - является первым главным компонентом;
  • p1 - является вектором нагрузки, состоящим из нагрузок (1, 2.) первого основного компонента.

Нагрузки ограничены суммой квадрата равного 1. Это связано с тем, что большая величина нагрузок может привести к большой дисперсии. Он также определяет направление основной компоненты (Z1), по которой данные больше всего различаются. Это приводит к тому, что линия в пространстве р-мер, ближе всего к n-наблюдениям.

Близость измеряется с использованием среднеквадратичного евклидова расстояния. X1..Xp являются нормированными предикторами. Нормализованные предикторы имеют среднее значение, равное нулю, а стандартное отклонение равно единице. Следовательно, первый главный компонент - это линейная комбинация исходных предикторных переменных, которая фиксирует максимальную дисперсию в наборе данных. Он определяет направление наибольшей изменчивости в данных. Чем больше изменчивость, зафиксированная в первом компоненте, тем больше информация, полученная им. Ни один другой не может иметь изменчивость выше первого основного.

Первый основной компонент приводит к строке, которая ближе всего к данным и сводит к минимуму сумму квадрата расстояния между точкой данных и линией. Второй главный компонент (Z2) также представляет собой линейную комбинацию исходных предикторов, которая фиксирует оставшуюся дисперсию в наборе данных и некоррелирована Z1. Другими словами, корреляция между первым и вторым компонентами должна равняться нулю. Он может быть представлен как: Z2 = 12X1 + 22X2 + 32X3 + .... + p2Xp.

Если они некоррелированы, их направления должны быть ортогональными.

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

Например, необходимо сделать преобразование в тестовый набор, включая функцию центра и масштабирования в языке R (вер.3.4.2) и его библиотеке rvest. R - свободный язык программирования для статистических вычислений и графики. Он был реконструирован в 1992 году для решения статистических задач пользователями. Это полный процесс моделирования после извлечения PCA.

Для реализации PCA в python импортируют данные из библиотеки sklearn. Интерпретация остается такой же, как и пользователей R. Только набор данных, используемый для Python, представляет собой очищенную версию, в которой отсутствуют вмененные недостающие значения, а категориальные переменные преобразуются в числовые. Процесс моделирования остается таким же, как описано выше для пользователей R. Метод главных компонент, пример расчета:

Идея метода основного компонента заключается в приближении этого выражения для выполнения факторного анализа. Вместо суммирования от 1 до p теперь суммируются от 1 до m, игнорируя последние p-m членов в сумме и получая третье выражение. Можно переписать это, как показано в выражении, которое используется для определения матрицы факторных нагрузок L, что дает окончательное выражение в матричной нотации. Если используются стандартизованные измерения, заменяют S на матрицу корреляционной выборки R.

Это формирует матрицу L фактор-нагрузки в факторном анализе и сопровождается транспонированной L. Для оценки конкретных дисперсий фактор-модель для матрицы дисперсии-ковариации.

Теперь будет равна матрице дисперсии-ковариации минус LL " .

  • Xi - вектор наблюдений для i-го субъекта.
  • S обозначает нашу выборочную дисперсионно-ковариационную матрицу.

Тогда p собственные значения для этой матрицы ковариации дисперсии, а также соответствующих собственных векторов для этой матрицы.

Собственные значения S:λ^1, λ^2, ... , λ^п.

Собственные векторы S:е^1, e^2, ... , e^п.

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

Можно запустить программу на необработанных данных или на матрицах различий, добавить дополнительные переменные или наблюдения, отфильтровать переменные в соответствии с различными критериями для оптимизации чтения карт. Кроме того, можно выполнять повороты. Легко настраивать корреляционный круг, график наблюдений в качестве стандартных диаграмм Excel. Достаточно перенести данные из отчета о результатах, чтобы использовать их в анализе.

XLSTAT предлагает несколько методов обработки данных, которые будут использоваться на входных данных до вычислений основного компонента:

  1. Pearson, классический PCA, который автоматически стандартизирует данные для вычислений, чтобы избежать раздутого влияния переменных с большими отклонениями от результата.
  2. Ковариация, которая работает с нестандартными отклонениями.
  3. Полихорические, для порядковых данных.

Примеры анализа данных размерностей

Можно рассмотреть метод главных компонентов на примере выполнения симметричной корреляционной или ковариационной матрицы. Это означает, что матрица должна быть числовой и иметь стандартизованные данные. Допустим, есть набор данных размерностью 300 (n) × 50 (p). Где n - представляет количество наблюдений, а p - число предикторов.

Поскольку имеется большой p = 50, может быть p(p-1)/2 диаграмма рассеяния. В этом случае было бы хорошим подходом выбрать подмножество предиктора p (p<< 50), который фиксирует количество информации. Затем следует составление графика наблюдения в полученном низкоразмерном пространстве. Не следует забывать, что каждое измерение является линейной комбинацией р-функций.

Пример для матрицы с двумя переменными. В этом примере метода главных компонентов создается набор данных с двумя переменными (большая длина и диагональная длина) с использованием искусственных данных Дэвиса.

Компоненты можно нарисовать на диаграмме рассеяния следующим образом.

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

Первый компонент также имеет приложение в регрессии с уменьшенной главной осью (RMA), в которой предполагается, что как x-, так и y-переменные имеют ошибки или неопределенности или, где нет четкого различия между предсказателем и ответом.

Метод главных компонентов в эконометрике - это анализ переменных, таких как ВНП, инфляция, обменные курсы и т. д. Их уравнения затем оцениваются по имеющимся данным, главным образом совокупным временным рядам. Однако эконометрические модели могут использоваться для многих приложений, а не для макроэкономических. Таким образом, эконометрика означает экономическое измерение.

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

Задачей эконометрика является получение оценок параметров a и b. Эти оценочные значения параметров, если они используются в уравнении модели, позволяют прогнозировать будущие значения потребления, которые будут зависеть от дохода предыдущего месяца. При разработке этих видов моделей необходимо учитывать несколько моментов:

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

Все эти предпосылки важны, потому что от них зависят источники ошибок, вытекающих из модели. Кроме того, для решения этих проблем необходимо определить метод прогнозирования. Его можно привести к линейной модели, даже если имеется только небольшая выборка. Этот тип является одним из самых общих, для которого можно создать прогнозный анализ.

Непараметрическая статистика

Метод главных компонент для непараметрических данных относится к методам измерения, в которых данные извлекаются из определенного распределения. Непараметрические статистические методы широко используются в различных типах исследований. На практике, когда предположение о нормальности измерений не выполняется, параметрические статистические методы могут приводить к вводящим в заблуждение результатам. Напротив, непараметрические методы делают гораздо менее строгие предположения о распределении по измерениям.

Они являются достоверными независимо от лежащих в их основе распределений наблюдений. Из-за этого привлекательного преимущества для анализа различных типов экспериментальных конструкций было разработано много разных типов непараметрических тестов. Такие проекты охватывают дизайн с одной выборкой, дизайн с двумя образцами, дизайн рандомизированных блоков. В настоящее время непараметрический байесовский подход с применением метода главных компонентов используется для упрощения анализа надежности железнодорожных систем.

Железнодорожная система представляет собой типичную крупномасштабную сложную систему с взаимосвязанными подсистемами, которые содержат многочисленные компоненты. Надежность системы сохраняется за счет соответствующих мер по техническому обслуживанию, а экономичное управление активами требует точной оценки надежности на самом низком уровне. Однако данные реальной надежности на уровне компонентов железнодорожной системы не всегда доступны на практике, не говоря уже о завершении. Распределение жизненных циклов компонентов от производителей часто скрывается и усложняется фактическим использованием и рабочей средой. Таким образом, анализ надежности требует подходящей методологии для оценки времени жизни компонента в условиях отсутствия данных об отказах.

Метод главных компонент в общественных науках используется для выполнения двух главных задач:

  • анализа по данным социологических исследований;
  • построения моделей общественных явлений.

Алгоритмы расчета моделей

Алгоритмы метода главных компонент дают другое представление о структуре модели и ее интерпретации. Они являются отражением того, как PCA используется в разных дисциплинах. Алгоритм нелинейного итеративного частичного наименьшего квадрата NIPALS представляет собой последовательный метод вычисления компонентов. Вычисление может быть прекращено досрочно, когда пользователь считает, что их достаточно. Большинство компьютерных пакетов имеют тенденцию использовать алгоритм NIPALS, поскольку он имеет два основных преимущества:

  • он обрабатывает отсутствующие данные;
  • последовательно вычисляет компоненты.

Цель рассмотрения этого алгоритма:

  • дает дополнительное представление о том, что означают нагрузки и оценки;
  • показывает, как каждый компонент не зависит ортогонально от других компонентов;
  • показывает, как алгоритм может обрабатывать недостающие данные.

Алгоритм последовательно извлекает каждый компонент, начиная с первого направления наибольшей дисперсии, а затем второго и т. д. NIPALS вычисляет один компонент за раз. Вычисленный первый эквивалентен t1t1, а также p1p1 векторов, которые были бы найдены из собственного значения или разложения по сингулярным значениям, может обрабатывать недостающие данные в XX. Он всегда сходится, но сходимость иногда может быть медленной. И также известен, как алгоритм мощности для вычисления собственных векторов и собственных значений и отлично работает для очень больших наборов данных. Google использовал этот алгоритм для ранних версий своей поисковой системы.

Алгоритм NIPALS показан на фото ниже.

Оценки коэффициента матрицы Т затем вычисляется как T=XW и в частичной мере коэффициентов регрессии квадратов B из Y на X, вычисляются, как B = WQ. Альтернативный метод оценки для частей регрессии частичных наименьших квадратов можно описать следующим образом.

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

Метод главных компонент (PCA - Principal component analysis) - один из основных способов уменьшить размерность данных при наименьшей потере сведений. Изобретенный в 1901 г. Карлом Пирсоном он широко применяется во многих областях. Например, для сжатия данных, «компьютерного зрения», распознавания видимых образов и т.д. Вычисление главных компонент сводится к вычислению собственных векторов и собственных значений ковариационной матрицы исходных данных. Метод главных компонент часто называют преобразованием Кархунена-Лёве (Karhunen-Loeve transform) или преобразованием Хотеллинга (Hotelling transform). Также над этим вопросом работали математики Косамби (1943 г.), Пугачёв (1953 г.) и Обухова (1954 г.).

Задача анализа главных компонент имеет своей целью аппроксимировать (приблизить) данные линейными многообразиями меньшей размерности; найти подпространства меньшей размерности, в ортогональной проекции на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален; найти подпространства меньшей размерности, в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально. В этом случае оперируют конечными множествами данных. Они эквивалентны и не используют никакой гипотезы о статистическом порождении данных.

Кроме того задачей анализа главных компонент может быть цель построить для данной многомерной случайной величины такое ортогональное преобразование координат, что в результате корреляции между отдельными координатами обратятся в ноль. Эта версия оперирует случайными величинами.

Рис.3

На приведённом выше рисунке даны точки P i на плоскости, p i - расстояние от P i до прямой AB. Ищется прямая AB, минимизирующая сумму

Метод главных компонент начинался с задачи наилучшей аппроксимации (приближения) конечного множества точек прямыми и плоскостями. Например, дано конечное множество векторов. Для каждого k = 0,1,...,n ? 1 среди всех k-мерных линейных многообразий в найти такое, что сумма квадратов уклонений x i от L k минимальна:

где? евклидово расстояние от точки до линейного многообразия.

Всякое k-мерное линейное многообразие в может быть задано как множество линейных комбинаций, где параметры в i пробегают вещественную прямую, а? ортонормированный набор векторов

где евклидова норма, ? евклидово скалярное произведение, или в координатной форме:

Решение задачи аппроксимации для k = 0,1,...,n ? 1 даётся набором вложенных линейных многообразий

Эти линейные многообразия определяются ортонормированным набором векторов (векторами главных компонент) и вектором a 0 . Вектор a 0 ищется, как решение задачи минимизации для L 0:

В итоге получается выборочное среднее:

Французский математик Морис Фреше Фреше Морис Рене (Frйchet Maurice Renй) (02.09.1878 г. - 04.06.1973 г.) - выдающийся французский математик. Трудился в области топологии и функционального анализа, теории вероятностей. Автор современных понятий о метрическом пространстве, компактности и полноте. Авт. в 1948 году обратил внимание, что вариационное определение среднего, как точки, минимизирующей сумму квадратов расстояний до точек данных, очень удобно для построения статистики в произвольном метрическом пространстве, и построил обобщение классической статистики для общих пространств, получившее название обобщённого метода наименьших квадратов.

Векторы главных компонент могут быть найдены как решения однотипных задач оптимизации:

1) централизуем данные (вычитаем среднее):

2) находим первую главную компоненту как решение задачи;

3) Вычитаем из данных проекцию на первую главную компоненту:

4) находим вторую главную компоненту как решение задачи

Если решение не единственно, то выбираем одно из них.

2k-1) Вычитаем проекцию на (k ? 1)-ю главную компоненту (напомним, что проекции на предшествующие (k ? 2) главные компоненты уже вычтены):

2k) находим k-ю главную компоненту как решение задачи:

Если решение не единственно, то выбираем одно из них.

Рис. 4

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

Например, пусть нам дан центрированный набор векторов данных, где среднее арифметическое значение x i равно нулю. Задача? найти такое отртогональное преобразование в новую систему координат, для которого были бы верны следующие условия:

1. Выборочная дисперсия данных вдоль первой координаты (главной компоненты) максимальна;

2. Выборочная дисперсия данных вдоль второй координаты (вторая главная компоненты) максимальна при условии ортогональности первой координате;

3. Выборочная дисперсия данных вдоль значений k-ой координаты максимальна при условии ортогональности первым k ? 1 координатам;

Выборочная дисперсия данных вдоль направления, заданного нормированным вектором a k , это

(поскольку данные центрированы, выборочная дисперсия здесь совпадает со средним квадратом уклонения от нуля).

Решение задачи о наилучшей аппроксимации даёт то же множество главных компонент, что и поиск ортогональных проекций с наибольшим рассеянием, по очень простой причине:

и первое слагаемое не зависит от a k .

Матрица преобразования данных к главным компонентам строится из векторов «A» главных компонент:

Здесь a i -- ортонормированные векторы-столбцы главных компонент, расположенные в порядке убывания собственных значений, верхний индекс T означает транспонирование. Матрица A является ортогональной: AA T = 1.

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

Самым старым методом отбора главных компонент является правило Кайзера , Кайзер Иоганн Генрих Густав (Kaiser Johann Henrich Gustav, 16.03.1853 г., г.Брезно, Пруссия - 14.10.1940 г., Германия) - выдающийся немецкий математик, физик, исследователь в области спектрального анализа. Авт. по которому значимы те главные компоненты, для которых

то есть л i превосходит среднее значение л (среднюю выборочную дисперсию координат вектора данных). Правило Кайзера хорошо работает в простых случаях, когда есть несколько главных компонент с л i , намного превосходящими среднее значение, а остальные собственные числа меньше него. В более сложных случаях оно может давать слишком много значимых главных компонент. Если данные нормированы на единичную выборочную дисперсию по осям, то правило Кайзера приобретает особо простой вид: значимы только те главные компоненты, для которых л i > 1.

Одним из наиболее популярных эвристических подходов к оценке числа необходимых главных компонент является правило сломанной трости , когда набор нормированных на единичную сумму собственных чисел (, i = 1,...n) сравнивается с распределением длин обломков трости единичной длины, сломанной в n ? 1-й случайно выбранной точке (точки разлома выбираются независимо и равнораспределены по длине трости). Если L i (i = 1,...n) - длины полученных кусков трости, занумерованные в порядке убывания длины: , тогда математическое ожидание L i:

Разберём пример, заключающийся в оценке числа главных компонент по правилу сломанной трости в размерности 5.

Рис. 5.

По правилу сломанной трости k-й собственный вектор (в порядке убывания собственных чисел л i) сохраняется в списке главных компонент, если

На рисунке выше приведён пример для 5-мерного случая:

l 1 =(1+1/2+1/3+1/4+1/5)/5; l 2 =(1/2+1/3+1/4+1/5)/5; l 3 =(1/3+1/4+1/5)/5;

l 4 =(1/4+1/5)/5; l 5 =(1/5)/5.

Для примера выбрано

0.5; =0.3; =0.1; =0.06; =0.04.

По правилу сломанной трости в этом примере следует оставлять 2 главных компоненты:

Следует только иметь в ввиду, что правило сломанной трости имеет тенденцию занижать количество значимых главных компонент.

После проецирования на первые k главных компонент с удобно произвести нормировку на единичную (выборочную) дисперсию по осям. Дисперсия вдоль iй главной компоненты равна), поэтому для нормировки надо разделить соответствующую координату на. Это преобразование не является ортогональным и не сохраняет скалярного произведения. Ковариационная матрица проекции данных после нормировки становится единичной, проекции на любые два ортогональных направления становятся независимыми величинами, а любой ортонормированный базис становится базисом главных компонент (напомним, что нормировка меняет отношение ортогональности векторов). Отображение из пространства исходных данных на первые k главных компонент вместе с нормировкой задается матрицей

Именно это преобразование чаще всего называется преобразованием Кархунена-Лоэва, то есть собственно методом главных компонент. Здесь a i -- векторы-столбцы, а верхний индекс T означает транспонирование.

В статистике при использовании метода главных компонент используют несколько специальных терминов.

Матрица данных , где каждая строка - вектор предобработанных данных (центрированных и правильно нормированных), число строк - m (количество векторов данных), число столбцов - n (размерность пространства данных);

Матрица нагрузок (Loadings) , где каждый столбец - вектор главных компонент, число строк -- n (размерность пространства данных), число столбцов - k (количество векторов главных компонент, выбранных для проецирования);

Матрица счетов (Scores)

где каждая строка - проекция вектора данных на k главных компонент; число строк - m (количество векторов данных), число столбцов - k (количество векторов главных компонент, выбранных для проецирования);

Матрица Z-счетов (Z-scores)

где каждая строка-- проекция вектора данных на k главных компонент, нормированная на единичную выборочную дисперсию; число строк - m (количество векторов данных), число столбцов - k (количество векторов главных компонент, выбранных для проецирования);

Матрица ошибок (остатков ) (Errors or residuals)

Основная формула:

Таким образом, Метод главных компонент, один из основных методов математической статистики. Основным предназначением его является разграничение между необходимостью исследования массивов данных при минимуме их использования.

В этой статье я бы хотел рассказать о том, как именно работает метод анализа главных компонент (PCA – principal component analysis) с точки зрения интуиции, стоящей за ее математическим аппаратом. Максимально просто, но подробно.

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

В анализе данных, как и в любом другом анализе, порой бывает нелишним создать упрощенную модель, максимально точно описывающую реальное положение дел. Часто бывает так, что признаки довольно сильно зависят друг от друга и их одновременное наличие избыточно.

К примеру, расход топлива у нас меряется в литрах на 100 км, а в США в милях на галлон. На первый взгляд, величиные разные, но на самом деле они строго зависят друг от друга. В миле 1600км, а в галлоне 3.8л. Один признак строго зависит от другого, зная один, знаем и другой.

Но гораздо чаще бывает так, что признаки зависят друг от друга не так строго и (что важно!) не так явно. Объем двигателя в целом положительно влияет на разгон до 100 км/ч, но это верно не всегда. А еще может оказаться, что с учетом не видимых на первый взгляд факторов (типа улучшения качества топлива, использования более легких материалов и прочих современных достижений), год автомобиля не сильно, но тоже влияет на его разгон.

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

Выражаясь более строго, данный метод аппроксимирует n-размерное облако наблюдений до эллипсоида (тоже n-мерного), полуоси которого и будут являться будущими главными компонентами. И при проекции на такие оси (снижении размерности) сохраняется наибольшее количество информации.

Шаг 1. Подготовка данных

Здесь для простоты примера я не буду брать реальные обучающие датасеты на десятки признаков и сотни наблюдений, а сделаю свой, максимально простой игрушечный пример. 2 признака и 10 наблюдений будет вполне достаточно для описания того, что, а главное – зачем, происходит в недрах алгоритма.

Сгенерируем выборку:

X = np.arange(1,11) y = 2 * x + np.random.randn(10)*2 X = np.vstack((x,y)) print X OUT: [[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ] [ 2.73446908 4.35122722 7.21132988 11.24872601 9.58103444 12.09865079 13.78706794 13.85301221 15.29003911 18.0998018 ]]

В данной выборке у нас имеются два признака, сильно коррелирующие друг с другом. С помощью алгоритма PCA мы сможем легко найти признак-комбинацию и, ценой части информации, выразить оба этих признака одним новым. Итак, давайте разбираться!

Для начала немного статистики. Вспомним, что для описания случайной величины используются моменты. Нужные нам – мат. ожидание и дисперсия. Можно сказать, что мат. ожидание – это «центр тяжести» величины, а дисперсия – это ее «размеры». Грубо говоря, мат. ожидание задает положение случайной величины, а дисперсия – ее размер.

Сам процесс проецирования на вектор никак не влияет на значения средних, так как для минимизации потерь информации наш вектор должен проходить через центр нашей выборки. Поэтому нет ничего страшного, если мы отцентрируем нашу выборку – линейно сдвинем ее так, чтобы средние значения признаков были равны 0. Это очень сильно упростит наши дальнейшие вычисления (хотя, стоит отметить, что можно обойтись и без центрирования).
Оператор, обратный сдвигу будет равен вектору изначальных средних значений – он понадобится для восстановления выборки в исходной размерности.

Xcentered = (X - x.mean(), X - y.mean()) m = (x.mean(), y.mean()) print Xcentered print "Mean vector: ", m OUT: (array([-4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5]), array([-8.44644233, -8.32845585, -4.93314426, -2.56723136, 1.01013247, 0.58413394, 1.86599939, 7.00558491, 4.21440647, 9.59501658])) Mean vector: (5.5, 10.314393916)

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

Шаг 2. Ковариационная матрица

В случае с многомерной случайной величиной (случайным вектором) положение центра все так же будет являться мат. ожиданиями ее проекций на оси. А вот для описания ее формы уже недостаточно толькое ее дисперсий по осям. Посмотрите на эти графики, у всех трех случайных величин одинаковые мат.ожидания и дисперсии, а их проекции на оси в целом окажутся одинаковы!


Для описания формы случайного вектора необходима ковариационная матрица.

Это матрица, у которой (i,j) -элемент является корреляцией признаков (X i , X j). Вспомним формулу ковариации:

В нашем случае она упрощается, так как E(X i) = E(X j) = 0:

Заметим, что когда X i = X j:

и это справедливо для любых случайных величин.

Таким образом, в нашей матрице по диагонали будут дисперсии признаков (т.к. i = j), а в остальных ячейках – ковариации соответствующих пар признаков. А в силу симметричности ковариации матрица тоже будет симметрична.

Замечание: Ковариационная матрица является обобщением дисперсии на случай многомерных случайных величин – она так же описывает форму (разброс) случайной величины, как и дисперсия.

И действительно, дисперсия одномерной случайной величины – это ковариационная матрица размера 1x1, в которой ее единственный член задан формулой Cov(X,X) = Var(X).

Итак, сформируем ковариационную матрицу Σ для нашей выборки. Для этого посчитаем дисперсии X i и X j , а также их ковариацию. Можно воспользоваться вышенаписанной формулой, но раз уж мы вооружились Python’ом, то грех не воспользоваться функцией numpy.cov(X) . Она принимает на вход список всех признаков случайной величины и возвращает ее ковариационную матрицу и где X – n-мерный случайный вектор (n-количество строк). Функция отлично подходит и для расчета несмещенной дисперсии, и для ковариации двух величин, и для составления ковариационной матрицы.
(Напомню, что в Python матрица представляется массивом-столбцом массивов-строк.)

Covmat = np.cov(Xcentered) print covmat, "n" print "Variance of X: ", np.cov(Xcentered) print "Variance of Y: ", np.cov(Xcentered) print "Covariance X and Y: ", np.cov(Xcentered) OUT: [[ 9.16666667 17.93002811] [ 17.93002811 37.26438587]] Variance of X: 9.16666666667 Variance of Y: 37.2643858743 Covariance X and Y: 17.9300281124

Шаг 3. Собственные вектора и значения (айгенпары)

О"кей, мы получили матрицу, описывающую форму нашей случайной величины, из которой мы можем получить ее размеры по x и y (т.е. X 1 и X 2), а также примерную форму на плоскости. Теперь надо надо найти такой вектор (в нашем случае только один), при котором максимизировался бы размер (дисперсия) проекции нашей выборки на него.

Замечание: Обобщение дисперсии на высшие размерности - ковариационная матрица, и эти два понятия эквивалентны. При проекции на вектор максимизируется дисперсия проекции, при проекции на пространства больших порядков – вся ее ковариационная матрица.

Итак, возьмем единичный вектор на который будем проецировать наш случайный вектор X. Тогда проекция на него будет равна v T X. Дисперсия проекции на вектор будет соответственно равна Var(v T X). В общем виде в векторной форме (для центрированных величин) дисперсия выражается так:

Соответственно, дисперсия проекции:

Легко заметить, что дисперсия максимизируется при максимальном значении v T Σv. Здесь нам поможет отношение Рэлея. Не вдаваясь слишком глубоко в математику, просто скажу, что у отношения Рэлея есть специальный случай для ковариационных матриц:

Последняя формула должна быть знакома по теме разложения матрицы на собственные вектора и значения. x является собственным вектором, а λ – собственным значением. Количество собственных векторов и значений равны размеру матрицы (и значения могут повторяться).

Кстати, в английском языке собственные значения и векторы именуются eigenvalues и eigenvectors соответственно.
Мне кажется, это звучит намного более красиво (и кратко), чем наши термины.

Таким образом, направление максимальной дисперсии у проекции всегда совпадает с айгенвектором имеющим максимальное собственное значение, равное величине этой дисперсии .

И это справедливо также для проекций на большее количество измерений – дисперсия (ковариационная матрица) проекции на m-мерное пространство будет максимальна в направлении m айгенвекторов, имеющих максимальные собственные значения.

Размерность нашей выборки равна двум и количество айгенвекторов у нее, соответственно, 2. Найдем их.

В библиотеке numpy реализована функция numpy.linalg.eig(X) , где X – квадратная матрица. Она возвращает 2 массива – массив айгензначений и массив айгенвекторов (векторы-столбцы). И векторы нормированы - их длина равна 1. Как раз то, что надо. Эти 2 вектора задают новый базис для выборки, такой что его оси совпадают с полуосями аппроксимирующего эллипса нашей выборки.



На этом графике мы апроксимировали нашу выборку эллипсом с радиусами в 2 сигмы (т.е. он должен содержать в себе 95% всех наблюдений – что в принципе мы здесь и наблюдаем). Я инвертировал больший вектор (функция eig(X) направляла его в обратную сторону) – нам важно направление, а не ориентация вектора.

Шаг 4. Снижение размерности (проекция)

Наибольший вектор имеет направление, схожее с линией регрессии и спроецировав на него нашу выборку мы потеряем информацию, сравнимую с суммой остаточных членов регрессии (только расстояние теперь евклидово, а не дельта по Y). В нашем случае зависимость между признаками очень сильная, так что потеря информации будет минимальна. «Цена» проекции - дисперсия по меньшему айгенвектору - как видно из предыдущего графика, очень невелика.

Замечание: диагональные элементы ковариационной матрицы показывают дисперсии по изначальному базису, а ее собственные значения – по новому (по главным компонентам).

Часто требуется оценить объем потерянной (и сохраненной) информации. Удобнее всего представить в процентах. Мы берем дисперсии по каждой из осей и делим на общую сумму дисперсий по осям (т.е. сумму всех собственных чисел ковариационной матрицы).
Таким образом, наш больший вектор описывает 45.994 / 46.431 * 100% = 99.06%, а меньший, соответственно, примерно 0.94%. Отбросив меньший вектор и спроецировав данные на больший, мы потеряем меньше 1% информации! Отличный результат!

Замечание: На практике, в большинстве случаев, если суммарная потеря информации составляет не более 10-20%, то можно спокойно снижать размерность.

Для проведения проекции, как уже упоминалось ранее на шаге 3, надо провести операцию v T X (вектор должен быть длины 1). Или, если у нас не один вектор, а гиперплоскость, то вместо вектора v T берем матрицу базисных векторов V T . Полученный вектор (или матрица) будет являться массивом проекций наших наблюдений.

V = (-vecs, -vecs) Xnew = dot(v,Xcentered) print Xnew OUT: [ -9.56404107 -9.02021624 -5.52974822 -2.96481262 0.68933859 0.74406645 2.33433492 7.39307974 5.3212742 10.59672425]

dot(X,Y) - почленное произведение (так мы перемножаем векторы и матрицы в Python)

Нетрудно заметить, что значения проекций соответствуют картине на предыдущем графике.

Шаг 5. Восстановление данных

С проекцией удобно работать, строить на ее основе гипотезы и разрабатывать модели. Но не всегда полученные главные компоненты будут иметь явный, понятный постороннему человеку, смысл. Иногда полезно раскодировать, к примеру, обнаруженные выбросы, чтобы посмотреть, что за наблюдения за ними стоят.

Это очень просто. У нас есть вся необходимая информация, а именно координаты базисных векторов в исходном базисе (векторы, на которые мы проецировали) и вектор средних (для отмены центровки). Возьмем, к примеру, наибольшее значение: 10.596… и раскодируем его. Для этого умножим его справа на транспонированный вектор и прибавим вектор средних, или в общем виде для всей выбоки: X T v T +m

Xrestored = dot(Xnew,v) + m print "Restored: ", Xrestored print "Original: ", X[:,9] OUT: Restored: [ 10.13864361 19.84190935] Original: [ 10. 19.9094105]

Разница небольшая, но она есть. Ведь потерянная информация не восстанавливается. Тем не менее, если простота важнее точности, восстановленное значение отлично аппроксимирует исходное.

Вместо заключения – проверка алгоритма

Итак, мы разобрали алгоритм, показали как он работает на игрушечном примере, теперь осталось только сравнить его с PCA, реализованным в sklearn – ведь пользоваться будем именно им.

From sklearn.decomposition import PCA pca = PCA(n_components = 1) XPCAreduced = pca.fit_transform(transpose(X))

Параметр n_components указывает на количество измерений, на которые будет производиться проекция, то есть до скольки измерений мы хотим снизить наш датасет. Другими словами – это n айгенвекторов с самыми большими собственными числами. Проверим результат снижения размерности:

Print "Our reduced X: n", Xnew print "Sklearn reduced X: n", XPCAreduced OUT: Our reduced X: [ -9.56404106 -9.02021625 -5.52974822 -2.96481262 0.68933859 0.74406645 2.33433492 7.39307974 5.3212742 10.59672425] Sklearn reduced X: [[ -9.56404106] [ -9.02021625] [ -5.52974822] [ -2.96481262] [ 0.68933859] [ 0.74406645] [ 2.33433492] [ 7.39307974] [ 5.3212742 ] [ 10.59672425]]

Мы возвращали результат как матрицу вектор-столбцов наблюдений (это более канонический вид с точки зрения линейной алгебры), PCA в sklearn же возвращает вертикальный массив.

В принципе, это не критично, просто стоит отметить, что в линейной алгебре канонично записывать матрицы через вектор-столбцы, а в анализе данных (и прочих связанных с БД областях) наблюдения (транзакции, записи) обычно записываются строками.

Проверим и прочие параметры модели – функция имеет ряд атрибутов, позволяющих получить доступ к промежуточным переменным:

Вектор средних: mean_
- Вектор(матрица) проекции: components_
- Дисперсии осей проекции (выборочная): explained_variance_
- Доля информации (доля от общей дисперсии): explained_variance_ratio_

Замечание: explained_variance_ показывает выборочную дисперсию, тогда как функция cov() для построения ковариационной матрицы рассчитывает несмещенные дисперсии!

Сравним полученные нами значения со значениями библиотечной функции.

Print "Mean vector: ", pca.mean_, m print "Projection: ", pca.components_, v print "Explained variance ratio: ", pca.explained_variance_ratio_, l/sum(l) OUT: Mean vector: [ 5.5 10.31439392] (5.5, 10.314393916) Projection: [[ 0.43774316 0.89910006]] (0.43774316434772387, 0.89910006232167594) Explained variance: [ 41.39455058] 45.9939450918 Explained variance ratio: [ 0.99058588] 0.990585881238

Единственное различие – в дисперсиях, но как уже упоминалось, мы использовали функцию cov(), которая использует несмещенную дисперсию, тогда как атрибут explained_variance_ возвращает выборочную. Они отличаются только тем, что первая для получения мат.ожидания делит на (n-1), а вторая – на n. Легко проверить, что 45.99 ∙ (10 - 1) / 10 = 41.39.

Все остальные значения совпадают, что означает, что наши алгоритмы эквивалентны. И напоследок замечу, что атрибуты библиотечного алгоритма имеют меньшую точность, поскольку он наверняка оптимизирован под быстродействие, либо просто для удобства округляет значения (либо у меня какие-то глюки).

Замечание: библиотечный метод автоматически проецирует на оси, максимизирующие дисперсию. Это не всегда рационально. К примеру, на данном рисунке неаккуратное снижение размерности приведет к тому, что классификация станет невозможна. Тем не менее, проекция на меньший вектор успешно снизит размерность и сохранит классификатор.

Итак, мы рассмотрели принципы работы алгоритма PCA и его реализации в sklearn. Я надеюсь, эта статья была достаточно понятна тем, кто только начинает знакомство с анализом данных, а также хоть немного информативна для тех, кто хорошо знает данный алгоритм. Интуитивное представление крайне полезно для понимания того как работает метод, а понимание очень важно для правильной настройки выбранной модели. Спасибо за внимание!

P.S.: Просьба не ругать автора за возможные неточности. Автор сам в процессе знакомства с дата-анализом и хочет помочь таким же как он в процессе освоения этой удивительной области знаний! Но конструктивная критика и разнообразный опыт всячески приветствуются!





Copyright © 2024 Развлечения. Стиль жизни. Светская хроника. Наука. Космос. Общие знания. Окружающий мир.