如何获得非标准化因子得分(R中)

时间:2019-06-15 08:20:39

标签: r pca psych

我应用了主成分分析来减少数据的维数。我需要使用因子得分进行描述性分析。但是,由于我从principal()包的psych获得的因子得分是标准化的(mean = 0,sd = 1),因此我无法在因子变量之间进行比较。我只是想了解我获得的哪些因素的平均值较高。

我试图将因子变量重新定标(归一化)以处于同一等级(例如0-1)。但是我认为这不能让我在均值之间进行比较(因为分数现在相对于其最小值和最大值)。我在其他文章(请参阅herehere中读过的另一种可能的解决方案是使用以下公式对变量进行“非标准化”:非标准化值=标准化值*s.d。 +平均值。但是,如果目的是比较因子变量的均值,我认为这不适用于因子得分。

使用principal()包中的psych的示例:

v1 <- c(1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,4,5,6)
v2 <- c(1,2,1,1,1,1,2,1,2,1,3,4,3,3,3,4,6,5)
v3 <- c(3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,5,4,6)
v4 <- c(3,3,4,3,3,1,1,2,1,1,1,1,2,1,1,5,6,4)
v5 <- c(1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,6,4,5)
v6 <- c(1,1,1,2,1,3,3,3,4,3,1,1,1,2,1,6,5,4)
m1 <- cbind(v1,v2,v3,v4,v5,v6)

fscores<-principal(m1,3,rotate="equamax")$scores

#option 1 (normalize factor scores):

rescale <- function(x) (x-min(x))/(max(x) - min(x)) * 100
unstandardized.scores1<-sapply(data.frame(fscores),rescale)

#option 2 (unstandardized factor scores):
unstandardized.scores2<-rowMeans(m1)+apply(m1,1,sd)*fscores

那么,为了比较阶乘分数的平均值,可以使用其中一种方法吗?有一种方法可以某种方式恢复输入变量的大小?我应该使用哪种方法比较因子变量的均值?

谢谢!

0 个答案:

没有答案