通过因子分析获得非标准化因子得分 [英] Obtaining unstandardized factor scores from factor analysis

查看:308
本文介绍了通过因子分析获得非标准化因子得分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用factanal()对R中的几个变量进行因子分析.我想确定每个案例的因子得分,但是我希望因子得分是非标准化的,并且要基于输入变量的原始度量.当我运行因子分析并获得因子得分时,它们似乎是标准化的,而不是基于输入变量的原始度量.如何获得与输入变量具有相同度量的非标准化因子得分?理想情况下,这将意味着相似的均值,标准差和范围.如果无法做到这一点,我将如何重新调整标准化因子得分以具有该指标?

I'm conducting a factor analysis of several variables in R using factanal(). I want to determine each case's factor score, but I want the factor scores to be unstandardized and on the original metric of the input variables. When I run the factor analysis and obtain the factor scores, they appear to be standardized and not on the original metric of the input variables. How can I obtain unstandardized factor scores that have the same metric as the input variables? Ideally, this would mean a similar mean, sd, and range. If this is not possible, how would I rescale the standardized factor scores to have this metric?

这是一个小例子:

library(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)

m1FactorScores <- factanal(~v1+v2+v3+v4+v5+v6, factors = 1, scores = "Bartlett")$scores

describe(m1) #means~2.3, sds~1.5
describe(m1FactorScores) #mean=0, sd=1

推荐答案

因子分析将观察到的变量缩放为单位方差,得出的分数也为N(0,1).

Factor analysis scales the observed variables to unit variance, yielding scores that are also N(0,1).

但是,请记住,非标准化值=标准化值*s.d. +表示,您应该可以使用以下方法重新调整标准化因子得分:

However, remembering that unstandardized values = standardized values * s.d. + mean, you should be able to rescale the standardized factor scores with:

m1UnstandardizedFactorScores<-rowMeans(m1)+apply(m1,1,sd)*m1FactorScores

请告诉我这是否有帮助!

Please let me know if this helps!

罗恩

这篇关于通过因子分析获得非标准化因子得分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆