R 'plspm'错误:path_matrix必须是较低的三角矩阵(偏最小二乘路径建模/sem)



我正在尝试使用同名的R软件包中的'PLSPM'函数评估SEM。我有两个竞争模型:

模型1:

A<-c(0,0,0)
B<-c(1,0,0)
C<-c(0,1,0)
sat_path=rbind(A,B,C)
innerplot(sat_path)

vers

模型2:

A<-c(0,1,0)
B<-c(0,0,0)
C<-c(0,1,0)
sat_path=rbind(A,B,C)
innerplot(sat_path)

因此,差异仅在于A和B之间的箭头方向。

当我运行代码(见下文(时,第一个模型(模型1(返回答案,而第二个模型(模型2(返回以下错误:

check_path中的错误(path_matrix(:'path_matrix'必须是较低的三角矩阵

我的问题:Whyyyyyy ???!我看不到第一个矩阵如何以正确格式的逻辑,而第二个矩阵不能。我对什么构成"下三角矩阵"感到困惑?以下是完整的代码和一些数据可以自己运行的数据。预先感谢!

#Some play data:
Xdat<-rep(c(1,1,0,0,1),300)
XX<-matrix(Xdat,ncol=3,byrow=TRUE)
colnames(XX)<-c("A","B","C")
XX<-as.data.frame(XX)
attach(XX)
### Model 1: ####
pf<-c(0,0,0)
pm<-c(1,0,0)
po<-c(0,1,0)
sat_path=rbind(pf,pm,po)
# plot diagram of path matrix
innerplot(sat_path)
# blocks of outer model
sat_blocks = list(which(names(XX)=="A"), which(names(XX)=="B"), which(names(XX)=="C"))
# vector of modes (reflective indicators)
sat_mod = rep("A", 3)
# apply plspm
satpls = plspm(XX, sat_path, sat_blocks, modes = sat_mod,
               scaled = FALSE)
# plot diagram of the inner model
innerplot(satpls)
### Model 2: ####
A<-c(0,1,0)
B<-c(0,0,0)
C<-c(0,1,0)
sat_path=rbind(pf,pm,po)
# plot diagram of path matrix
innerplot(sat_path)
# blocks of outer model
sat_blocks = list(which(names(XX)=="A"), which(names(XX)=="B"), which(names(XX)=="C"))
# vector of modes (reflective indicators)
sat_mod = rep("A", 3)
# apply plspm
satpls = plspm(XX, sat_path, sat_blocks, modes = sat_mod,
               scaled = FALSE)
# this ends in an error (or should...!)

我已经弄清楚了为什么这是一个问题。坐着同样的问题,无法弄清楚如何解决它。

我在Wiki上抬起三角矩阵,发现三角形矩阵是一个矩阵,在该矩阵上,对角线上有0。这意味着要创建模型2,您只需要机会指定因素的顺序即可。

模型2

A<-c(0,1,0)
B<-c(0,0,0)
C<-c(0,1,0)
sat_path=rbing(A,B,C)

而是这样做:模型2:

B<-c(0,0,0)
A<-c(1,0,0)
C<-c(1,0,0)
sat_path=rbing(B,A,C)

相同的模型,但不是三角矩阵。

希望您弄清楚;(

最新更新