同じ名前のRパッケージで 'plspm'関数を使ってSEMを評価しようとしています。モデル2R 'plspm'エラー:path_matrixは下三角行列(部分最小二乗パスモデリング/ sem)でなければなりません
対
A<-c(0,0,0)
B<-c(1,0,0)
C<-c(0,1,0)
sat_path=rbind(A,B,C)
innerplot(sat_path)
:
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の間の矢印の方向にあり、
モデル1:私は2つの競合モデルを持っていますB.
コードを実行すると(下を参照)、最初のモデル(モデル1)は回答を返します2番目のモデル(モデル2)は次のエラーを返します。
Error in check_path(path_matrix) : 'path_matrix' must be a lower triangular matrix
私の質問:WHYYYYYY ???!私は最初の行列が正しい形式である方法では論理を見ませんが、2番目の行列は正しい形式ではありません。私は "下三角行列"を構成するものについて混乱していますか?以下は完全なコードとそれを実行するためのデータです。前もって感謝します!
#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...!)