关于R中的PCA?
我使用R中的插入符号包预处理数据,如:关于R中的PCA?,r,pca,R,Pca,我使用R中的插入符号包预处理数据,如: > trans <- preProcess(data, method = "pca"). > transformedData <- predict(trans, data) >trans-transformedData我对插入符号不太熟悉,但您不能使用或吗 例如: # some random data x <-data.frame(a=1:25+rnorm(25), b=3:27+rn
> trans <- preProcess(data, method = "pca").
> transformedData <- predict(trans, data)
>trans-transformedData我对插入符号不太熟悉,但您不能使用或吗
例如:
# some random data
x <-data.frame(a=1:25+rnorm(25),
b=3:27+rnorm(25,mean=1),
c=25:1 + rnorm(25,mean=2,sd=2))
pca <- prcomp(x, retx = TRUE, center = TRUE, scale. = TRUE)
transformedData <- pca$x
loadings <- pca$rotation
eigenvalues <- pca$sdev
#一些随机数据
我不确定我是否100%理解了你的问题,但我猜你有一个缺少名称的数据集,你想快速确定变量之间的关系(可能是线性的),确定“主要成分”
这是一个非常棒的演示,向您展示了PCA和SVD的一些知识
下面是一个非常简单的示例,演示了如何使用prcomp
函数:
>library(ggplot2)
>data(mpg)
>data <- mpg[,c("displ", "year", "cyl", "cty", "hwy")]
# get the numeric columns only for this easy demo
>prcomp(data, scale=TRUE)
Standard deviations:
[1] 1.8758132 1.0069712 0.5971261 0.2658375 0.2002613
Rotation:
PC1 PC2 PC3 PC4 PC5
displ 0.49818034 -0.07540283 0.4897111 0.70386376 -0.10435326
year 0.06047629 -0.98055060 -0.1846807 -0.01604536 0.02233245
cyl 0.49820578 -0.04868461 0.5028416 -0.68062021 0.18255766
cty -0.50575849 -0.09911736 0.4348234 0.15195854 0.72264881
hwy -0.49412379 -0.14366800 0.5330619 -0.13410105 -0.65807527
这表明第一列本身已经解释了整个矩阵中70%的方差
(2) 现在让我们看一下旋转矩阵/V中的第一列:
PC1
displ 0.49818034
year 0.06047629
cyl 0.49820578
cty -0.50575849
hwy -0.49412379
我们可以看到:displ
与cyl
呈正相关,与cty
和hwy
呈负相关。在这一主导层中,年
并不明显。
这是有道理的,你车里的排量或气缸越多,它的MPG可能就越高
这是变量之间的曲线图,仅供参考
pairs(data)
您想要的是查看结果列表的旋转
变量:
> trans <- preProcess(data, method = "pca").
> transformedData <- predict(trans, data)
> trans$rotation
你在问什么?什么是个人电脑?你有没有看过双图以及每台电脑能解释多少变化?
> trans <- preProcess(data, method = "pca").
> transformedData <- predict(trans, data)
> trans$rotation
> trans$rotation[,c(1,2)]