Попередження: R
термін "завантаження" використовує заплутано. Я пояснюю це нижче.
Розглянемо набір даних із (в центрі) змінними у стовпцях та точками даних у рядках. Виконання PCA цього набору даних дорівнює сингулярному розкладанню значення . Стовпці є основними компонентами ("рахунки" ПК), а стовпці - основними осями. Матриця коваріації задається , тому головні осі є власними векторами матриці коваріації.XNX=USV⊤USV1N−1X⊤X=VS2N−1V⊤V
"Завантаження" визначається як стовпці , тобто вони є власними векторами, масштабованими квадратними коренями відповідних власних значень. Вони відрізняються від власних векторів! Дивіться мою відповідь тут щодо мотивації.L=VSN−1√
Використовуючи цей формалізм, ми можемо обчислити матрицю між коваріації між оригінальними змінними та стандартизованими ПК: тобто задається завантаженнями. Матриця перехресної кореляції між оригінальними змінними та ПК задається тим самим виразом, розділеним на стандартні відхилення вихідних змінних (за визначенням кореляції). Якщо вихідні змінні були стандартизовані до виконання PCA (тобто PCA проводили на кореляційній матриці), всі вони дорівнюють . В останньому випадку матриця перехресної кореляції знову задається просто .
1N−1X⊤(N−1−−−−−√U)=1N−1−−−−−√VSU⊤U=1N−1−−−−−√VS=L,
1L
Щоб усунути термінологічну плутанину: те, що пакет R називає "навантаженнями", є основними осями, а те, що він називає "кореляційними навантаженнями", - це фактично навантаження. Як ви самі помітили, вони відрізняються лише масштабуванням. Що краще побудувати, залежить від того, що ви хочете побачити. Розглянемо наступний простий приклад:
Ліва підпрограма показує стандартизований 2D набір даних (кожна змінна має одиничну дисперсію), розтягнутий уздовж основної діагоналі. Середній субплот - це біплот : це графік розсіяння PC1 проти PC2 (в даному випадку просто набір даних, повернутий на 45 градусів) з рядками нанесеними зверху як вектори. Зверніть увагу, що вектори і розташовані на відстані 90 градусів; вони розповідають, як орієнтуються оригінальні осі. Правий субплот - той самий біплот, але тепер вектори показують рядки . Зауважимо, що тепер вектори і мають гострий кут між ними; вони розповідають, наскільки оригінальні змінні співвідносяться з ПК, і і x y L x y x yVxyLxyxyнабагато сильніше корелює з PC1, ніж з PC2. Я здогадуюсь, що більшість людей найчастіше вважають за краще бачити правильний тип біплоту.
Зверніть увагу, що в обох випадках і і вектори мають одиничну довжину. Це сталося лише тому, що набір даних був двовимірним; у випадку, коли є більше змінних, окремі вектори можуть мати довжину менше , але вони ніколи не можуть досягати поза одиничного кола. Доказ цього факту я залишаю як вправу.y 1xy1
Давайте поглянемо ще раз на набір даних mtcars . Ось біплот PCA, зроблений на кореляційній матриці:
Чорні лінії накреслюються за допомогою , а червоні - за допомогою .LVL
А ось біплот PCA, зроблений на матриці коваріації:
Тут я масштабував всі вектори та одиничне коло на , бо в іншому випадку це було б не видно (це загальновживаний трюк). Знову чорні лінії показують рядки , а червоні лінії показують кореляції між змінними та ПК (які більше не задано , див. Вище). Зверніть увагу, що видно лише дві чорні лінії; це тому, що дві змінні мають дуже велику дисперсію і домінують у наборі даних mtcars . З іншого боку, видно всі червоні лінії. Обидва представлення передають корисну інформацію.В л100VL
PS Існує багато різних варіантів біплотів PCA, дивіться мою відповідь тут для отримання додаткових пояснень та огляду: Розміщення стрілок на біплоті PCA . Найкрасивіший біплот, коли-небудь розміщений на CrossValided, можна знайти тут .