Я маю 10 років даних про щоденні прибутки для 28 різних валют. Я хочу витягнути перший основний компонент, але замість того, щоб використовувати PCA протягом 10 років, я хочу застосувати 2-річне вікно, тому що поведінка валют змінюється, і тому я хочу це відобразити. Однак у мене є основна проблема, тобто те, що і функції princomp (), і prcomp () часто переходять від позитивних до негативних навантажень в суміжних аналізах PCA (тобто один день один від одного). Подивіться графік завантаження валюти EUR:
Зрозуміло, я не можу це використати, оскільки сусідні навантаження перейдуть з позитивного на негативне, тому моя серія, яка їх використовує, буде помилковою. Тепер подивіться на абсолютне значення завантаження валюти EUR:
Проблема, звичайно, в тому, що я досі не можу це використати, оскільки з верхньої діаграми ви бачите, що завантаження переходить від негативного до позитивного та часом назад, характеристика, яку мені потрібно зберегти.
Чи є спосіб вирішити цю проблему? Чи можу я змусити орієнтацію власного вектора завжди бути однаковою в сусідніх PCA?
До речі, ця проблема також виникає з функцією FactoMineR PCA (). Код для відклику тут:
rollapply(retmat, windowl, function(x) summary(princomp(x))$loadings[, 1], by.column = FALSE, align = "right") -> princomproll
EUR -0.2 ZAR +0.8 USD +0.41
і EUR +0.21 ZAR -0.79 USD -0.4
це дуже і дуже схожі. Ви просто інвертуєте вхід у будь-який із двох результатів.