首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R多水平因子分析软件包

R多水平因子分析软件包
EN

Stack Overflow用户
提问于 2011-07-25 11:54:02
回答 2查看 2.2K关注 0票数 3

我想知道有没有能做多水平因子分析的R包?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-25 13:22:59

查看http://openmx.psyc.virginia.edu/。原始的MX软件(http://www.vcu.edu/mx/)可以做多水平因子分析(见1),所以我认为openMx也可以做这件事。

1: Bai,Yun和Poon,Wai-Yin(2009)“使用Mx分析两级结构方程模型中的交叉水平效应”,结构方程建模:多学科期刊,16:1,163- 178

票数 5
EN

Stack Overflow用户

发布于 2016-02-28 01:33:39

CFA2.5.1版本包括inst/models/nightly/mplus-ex9.6.R (见下文),它实现了一个具有连续因子指标和协变量的两级OpenMx。有关比较,请参见示例9.6,https://www.statmodel.com/usersguide/chapter9.shtml

代码语言:javascript
复制
library(OpenMx)

set.seed(1)
ex96 <- suppressWarnings(try(read.table("models/nightly/data/ex9.6.dat")))
if (is(ex96, "try-error")) ex96 <- read.table("data/ex9.6.dat")

ex96$V8 <- as.integer(ex96$V8)
bData <- ex96[!duplicated(ex96$V8), c('V7', 'V8')]
colnames(bData) <- c('w', 'clusterID')
wData <- ex96[,-match(c('V7'), colnames(ex96))]
colnames(wData) <- c(paste0('y', 1:4), paste0('x', 1:2), 'clusterID')

bModel <- mxModel('between', type="RAM",
                  mxData(type="raw", observed=bData, primaryKey="clusterID"),
                  latentVars = c("lw", "fb"),
                  mxPath("one", "lw", labels="data.w", free=FALSE),
                  mxPath("fb", arrows=2, labels="psiB"),
                  mxPath("lw", 'fb', labels="phi1"))

wModel <- mxModel('within', type="RAM", bModel,
                  mxData(type="raw", observed=wData, sort=FALSE),  #[abs(wData$clusterID - 41)<= 25,]
                  manifestVars = paste0('y', 1:4),
                  latentVars = c('fw', paste0("xe", 1:2)),
                  mxPath("one", paste0('y', 1:4), values=runif(4), labels=paste0("gam0", 1:4)),
                  mxPath("one", paste0('xe', 1:2), labels=paste0('data.x',1:2), free=FALSE),
                  mxPath(paste0('xe', 1:2), "fw", labels=paste0('gam', 1:2, '1')),
                  mxPath('fw', arrows=2, values=1.1, labels="varFW"),
                  mxPath('fw', paste0('y', 1:4), free=c(FALSE, rep(TRUE, 3)),
                         values=c(1,runif(3)), labels=paste0("loadW", 1:4)),
                  mxPath('between.fb', paste0('y', 1:4), values=c(1,runif(3)),
                         free=c(FALSE, rep(TRUE, 3)), labels=paste0("loadB", 1:4),
                         joinKey="clusterID"),
                  mxPath(paste0('y', 1:4), arrows=2, values=rlnorm(4), labels=paste0("thetaW", 1:4)))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6811644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档