R 'plspm' ошибка: path_matrix должен быть нижней треугольной матрицей (частичное моделирование наименьших квадратов /sem)

Я пытаюсь оценить SEM, используя функцию 'plspm' в пакете R с тем же именем. У меня есть две конкурирующие модели:

Модель 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)

против

Модель 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...!)

1 ответ

Я понял, почему это проблема. Сели с той же проблемой, и не могли придумать, как ее решить.

Я посмотрел Треугольную матрицу на вики и обнаружил, что Треугольная матрица - это матрица, где над диагональю стоят 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)

Та же модель, но не треугольная матрица.

Надеюсь, вы это выясните;)

Другие вопросы по тегам