我想用混合数据(即连续数据、分类数据和二元数据)计算因子分析,但我有很多警告,并且它不会收敛,导致 Nans(目标数 NaN, 标准 NaN NA NA,统计:num NaN,PVAL:num NaN) pchisq 在 1000000 iter 中未收敛,并且 GPfoblq 在 GPfoblq 中未收敛。使用了 1000 次迭代)
mixedCor_results <-mixedCor(data,p=4:93,c=1:2,d=3,correct=FALSE,smooth=TRUE,global= FALSE)
ggcorrplot(mixedCor_results$rho)
#Compute the factors
parallel <- fa.parallel(mixedCor_results$rho,n.obs=nrow(data), fa="fa", main = "Scree
Plot",correct=FALSE ,n.iter = 50)
print(parallel$nfact) #number of factors
modelfa= fa(mixedCor$rho,n.obs=nrow(data), nfactors = 38,correct=FALSE ,n.iter = 50)
str(modelfa)
print(modelfa$loadings, cut = 0)
我想知道mixedcor是否有bug。我尝试使用mixedcor,但它不起作用,但是如果我删除连续并且只留下分类和二进制,则fa并行和polychor可以工作,但如果我在fa并行中添加与连续混合,则不再起作用,因为它在内部使用mixedcor并发出警告再次
#REMOVE CONTINOUS THEN IT WORKS
data <- data[ -c(1:4)]
#POLY used for binary and categorical
parallel <- fa.parallel(data,fa="fa",cor="poly",correct=0,n.iter = 50)
#Compute the factors
modelfa= fa(data, fm = "ml",cor="poly",nfactors = 23,fa="fa",
rotate = "varimax",
scores="Bartlett",correct=0)
有人有同样的问题吗?是否可以使用包括二进制在内的多向性,并且库内部使用正确的相关性(四向性)?如果是这样的话我就改造连续的。但混合Cor无法正常工作。
您可能想尝试 John Fox 的
hetcor
套餐中的 polycor
。 Revelle(psych
的创建者和维护者)指出,mixedCor
可能会出现收敛问题。我在 hetcor
方面运气更好,它会自动检测数据类型,但是,您应该确保您的二进制和有序分类变量以正确的顺序转换为 factors
(序数分类变量的有序因子) 。否则,这两个功能都不起作用。