Сингулярные значения кадра данных с использованием R - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь получить значения Singular для фрейма данных, используя R. Метод prcomp отображает стандартное отклонение, а svd $ d - вектор. Значения отображаются правильно. Но я не уверен, какое из этих значений является единственным в данном случае? Я просмотрел несколько документов, но они не указали правильное направление.

iris<-read.table(file.choose(),header=T)
#(i)Plotting singular values
X.pca<-prcomp(iris[,1:4],scale=T) 
X.pca # Displays the Standard Deviations
svd(iris[,1:4])$d # Displays the d values

1 Ответ

0 голосов
/ 14 января 2019

Когда вы используете components <- prcomp(iris[,1:4) для получения основных компонентов, вы можете использовать components$sdev, чтобы получить эти значения, как вы делали выше.

data("iris")
iris
components<-prcomp(iris[,1:4]
components$sdev

2.0562689 0.4926162 0.2796596 0.1543862

Эти четыре значения из PCA пропорциональны «диагональной матрице», что эквивалентно svd$d в разложении по сингулярному значению. Эта пропорция объясняется тем, что SVD не учитывает количество выборок, как sdev при расчете дисперсии. Но это стандартизированные единичные значения из PCA.

И результирующие данные из components$rotation с использованием prcomp() эквивалентны V matrix:

                     PC1         PC2         PC3        PC4
Sepal.Length  0.36138659 -0.65658877  0.58202985  0.3154872
Sepal.Width  -0.08452251 -0.73016143 -0.59791083 -0.3197231
Petal.Length  0.85667061  0.17337266 -0.07623608 -0.4798390
Petal.Width   0.35828920  0.07548102 -0.54583143  0.7536574

Если вам нужен компонент U, вы можете использовать components$x

            PC1          PC2          PC3           PC4
  [1,] -2.684125626 -0.319397247  0.027914828  0.0022624371
  [2,] -2.714141687  0.177001225  0.210464272  0.0990265503
  [3,] -2.888990569  0.144949426 -0.017900256  0.0199683897
  [4,] -2.745342856  0.318298979 -0.031559374 -0.0755758166
  [5,] -2.728716537 -0.326754513 -0.090079241 -0.0612585926
  [6,] -2.280859633 -0.741330449 -0.168677658 -0.0242008576
  [7,] -2.820537751  0.089461385 -0.257892158 -0.0481431065
  [8,] -2.626144973 -0.163384960  0.021879318 -0.0452978706
  [9,] -2.886382732  0.578311754 -0.020759570 -0.0267447358...(there is more)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...