У меня есть следующий код в R. Вкратце, я начинаю с данных диафрагмы от https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data. Затем я хочу выполнить анализ основных компонентов в этом наборе данных, чтобы в итоге получить двумерный набор данных, который я могу в конце сделать диаграммой рассеяния конечных данных. Я использую функцию prcomp, чтобы получить главный компонент, и принимая от этого поворот.Использование PCA в R - Изменение осей для удаления столбцов
irisdat <- read.csv('iris.data', header=FALSE)
library(lattice)
library(stats)
numiris=irisdat[,c(1,2,3,4)]
pr=prcomp(numiris, center=TRUE, scale=TRUE)
newdata = as.matrix(numiris) %*% pr$rotation
pr2=prcomp(newdata, center=TRUE, scale=TRUE)
newdata2 = as.matrix(newdata) %*% pr2$rotation
Теперь проблема, что у меня есть, что я просто в конечном итоге с матрицей, которая до сих пор имеет четыре измерения, когда я хочу, чтобы получить его до двух к концу, но я не знаю, как удалить столбцы, или что удалить, после выполнения проекции основного компонента.
Кроме того, у меня возникла проблема, когда мои результаты инвертированы от исходных данных, поэтому, если я распечатаю матрицу рассеянного экрана с помощью splom, диаграммы рассеяния меняются на противоположные.
Любые мысли?
Если вам нужна помощь или статистическая консультация по проведению анализа СПС, то вы должны спрашивать на [stats.se]. Это не вопрос программирования. Пожалуйста, задайте один четкий вопрос одновременно. Также, вероятно, было бы проще для вашего примера, если бы вы использовали встроенный набор данных 'iris', а не требовали отдельной загрузки для запуска вашего примера. – MrFlick