1

我正在使用 R 中的几个变量进行因子分析factanal()(但我愿意使用其他包)。我想确定每个案例的因子得分,但我希望因子得分是非标准化的并且是输入变量的原始度量。当我运行因子分析并获得因子分数时,它们以均值 = 0、SD = 1 的正态分布进行标准化,并且不在输入变量的原始度量上。如何获得与输入变量具有相同度量的非标准化因子分数?理想情况下,这意味着相似的均值、标准差、范围和分布。

我之前问过一个类似的问题,但受访者的回答涉及重新调整标准化(即正态分布)因子得分。请注意,我不想将标准化因子分数转换为非标准化分数,因为我的指标分布是非正态的(即,标准化因子分数的正态分布不能轻易转换为我的指标的原始指标)。换句话说,我想在指标的原始指标上估计未标准化的因子得分,而不是首先在标准化指标上估计它们。

此外,还有一些缺失的数据。如何获得所有案例的(非标准化)因子得分,即使是那些没有所有项目数据的案例?

这是一个小例子:

library(psych)

v1 <- c(1,1,1,NA,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,NA,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,NA,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", na.action="na.exclude")$scores

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

上面的数据只是一个小例子。我的实际数据不是 likert/ordinal 数据。它们是来自各种来源的足球运动员传球码数的预测。我希望“潜在平均值”比平均值更准确地预测球员的传球码数,因为它会丢弃每个来源的独特偏见。然而,数据是高度正偏的,并且强制潜变量及其因子得分呈正态分布会导致许多球员难以置信的高值(例如,下赛季超过 6,000 码)。

4

0 回答 0