Как уменьшить количество атрибутов до 20, используя prcomp в R? - PullRequest
2 голосов
/ 11 октября 2010

У меня есть набор данных из 104 атрибутов, который называется data. Я хочу уменьшить количество атрибутов до 20, используя функцию prcomp в R.

Я сделал это:

pr = prcomp(data)

Но pr содержит только экземпляр класса prcomp. Как уменьшить количество атрибутов в исходном наборе данных до 20?

1 Ответ

5 голосов
/ 11 октября 2010

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

ff <- factanal(data,20)

см. ?factanal

Если вы хотите сохранить только первые 20 основных компонентов в качестве нового набора данных, вы можете легко выбрать их из функции предиката (). Или даже рассчитать их самостоятельно:

x <- prcomp(USArrests, scale = TRUE)

tt <- predict(x) # the standard way

# below the matrix way
tt2 <- scale(USArrests,x$center,x$scale) %*% x$rotation

# with only 3 components instead of 4
tt3 <- predict(x)[,1:3]
tt4 <- scale(USArrests,x$center,x$scale) %*% x$rotation[,1:3]

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...