Я пытаюсь выполнить анализ PCA, используя пакет psy в R.
Я получил две переменные, которые хочу объединить в один компонент, отображающий уровень жизни:
- slvpen: Уровень жизни пенсионеров: 0 = Очень плохо, 10 = Очень хорошо.
- slvuemp: Уровень жизни безработных: 0 = Очень плохо, 10 = Очень хорошо.
slvpens:
Min. 1st Qu. Median Mean 3rd Qu. Max. Standard Deviation
0.000 3.000 5.000 4.587 6.000 10.000 2.28857
slvuemp:
Min. 1st Qu. Median Mean 3rd Qu. Max. Standard Deviation
0.000 3.000 4.000 4.095 5.000 10.000 2.099822
Использование phych -пакет, я провожу анализ:
(slv_pca <- ESS %>% prcomp(
formula = ~ slvpens + slvuemp, # Selecting variables
data = ., na.action = na.exclude)) # Exclude NAs
со следующими результатами:
Standard deviations (1, .., p=2):
[1] 2.651352 1.611470
Rotation (n x k) = (2 x 2):
PC1 PC2
slvpens -0.7699869 0.6380597
slvuemp -0.6380597 -0.7699869
Все хорошо. Однако, если я z-стандартизирую переменные:
(slv_pca <- ESS %>% prcomp(
formula = ~ slvpens + slvuemp, # Selecting variables
data = ., na.action = na.exclude, # Exclude NAs
center = TRUE, scale = TRUE)) # Z-standardize
Изображение меняется, и оба ПК1 и ПК2 равны. Кроме того, мои два компонента вносят одинаковый вклад?
Standard deviations (1, .., p=2):
[1] 1.2058739 0.7388289
Rotation (n x k) = (2 x 2):
PC1 PC2
slvpens -0.7071068 0.7071068
slvuemp -0.7071068 -0.7071068
Что здесь происходит?