主成分对象的标准值在prcomp和插入符号中不同
我在下面的数据集中尝试主成分分析。我尝试了prcomp函数和插入符号预处理函数主成分对象的标准值在prcomp和插入符号中不同,r,statistics,R,Statistics,我在下面的数据集中尝试主成分分析。我尝试了prcomp函数和插入符号预处理函数 library(caret) library(AppliedPredictiveModeling) set.seed(3433) data(AlzheimerDisease) adData = data.frame(diagnosis,predictors) inTrain = createDataPartition(adData$diagnosis, p = 3/4)[[1]] tra
library(caret)
library(AppliedPredictiveModeling)
set.seed(3433)
data(AlzheimerDisease)
adData = data.frame(diagnosis,predictors)
inTrain = createDataPartition(adData$diagnosis, p = 3/4)[[1]]
training = adData[ inTrain,]
testing = adData[-inTrain,]
# from prcomp
names1 <-names(training)[substr(names(training),1,2)=="IL"]
prcomp.data <- prcomp(training[,names1],center=TRUE, scale=TRUE)
prcomp.data$sdev
## from caret package
preProcess(training[, names1], method=c("center", "scale", "pca"))$std
库(插入符号)
库(AppliedPredictiveModeling)
种子集(3433)
数据(阿尔茨海默病)
adData=数据帧(诊断、预测)
inTrain=createDataPartition(adData$diagnosis,p=3/4)[[1]]
培训=添加数据[inTrain,]
测试=添加数据[-inTrain,]
#来自prcomp
名称1第一种方法是给出12个主成分的标准偏差(您可以通过prcomp.data$rotation
看到)
此外,sdev
值的文档中也提到了这一点:
主成分的标准偏差(即平方
但是,协方差/相关矩阵的特征值的根
计算实际上是用数据的奇异值来完成的
矩阵)
第二个是提供预处理输入数据的标准偏差(因此与每个标准偏差相关联的变量名)
一个小的旁注--插入符号
PCA自动缩放并居中,除非另有规定。感谢您的回复。我只从数据集中选择了substr(名称(训练),1,2)=“IL”的变量,这两种方式都是如此。然后,当我提取sdev/std时,我想知道值应该是相同的。@Hack-R,是否可以从插入符号
的预处理中提取PCs的标准偏差(或特征值)?在函数中提供PCA选项似乎有点奇怪,但这样就不能访问转换后的数据或特征值。“我是不是遗漏了什么?”哈利:是的,我知道。这些值不应相同。前者是主成分的标准偏差,后者是处理数据的标准偏差。preProcess
的正常使用是作为train
的内联转换选项,例如train(物种~,dat,method=“knn”,preProcess=c(“pca”),trControl=trainControl(method=“cv”)
而不是独立的pca分析,这不是插入符号
包的重点princomp
或prcomp
是该用例的首选。话虽如此,我知道可以通过对预处理对象使用预测
得到旋转矩阵,即结果