문제

I have a dataframe that represents the correlation matrix of a large data set:

> data
   V1    V2    V3    V4    V5    V6    V7    V8
1 1.000 0.846 0.805 0.859 0.473 0.398 0.301 0.382
2 0.846 1.000 0.881 0.826 0.376 0.326 0.277 0.415
3 0.805 0.881 1.000 0.801 0.380 0.319 0.237 0.345
4 0.859 0.826 0.801 1.000 0.436 0.329 0.327 0.365
5 0.473 0.376 0.380 0.436 1.000 0.762 0.730 0.629
6 0.398 0.326 0.319 0.329 0.762 1.000 0.583 0.577
7 0.301 0.277 0.237 0.327 0.730 0.583 1.000 0.539
8 0.382 0.415 0.345 0.365 0.629 0.577 0.539 1.000

I want to do principal component analysis using the princomp() in {stats} I tried reading the documentation available, and got:

myPCA <- princomp(~V1+V2+V3+V4+V5+V6+V7+V8, data=data, covmat=data)

But this does not do anything different than when I left off the last argument. Please advise on the correct way to use the princomp() parameters.

도움이 되었습니까?

해결책

You may want to try using the principal function under psych package. https://personality-project.org/r/html/principal.html.

Below is an excerpt from http://www.statmethods.net/advstats/factor.html

 # Principal Axis Factor Analysis
 library(psych)
 fit <- principal(mydata, nfactors=5, rotate="varimax")
 fit # print results

mydata can be a raw data matrix or a covariance matrix.

다른 팁

You might consider using the eigen function, which will produce both the eigenvalues of the correlation matrix (equivalent to the squares of the sdevs produced by princomp) as well as the eigenvectors (equivalent to the loadings produced by princomp).

The call would simply be:

myPCA <- eigen(data)
myPCA$values
myPCA$vectors
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top