跨越PLS路径建模

时间:2015-07-28 19:10:41

标签: r

我正在使用R中的plspm包来模拟信息安全风险评估。但是,当我运行分析时,出现以下错误:

  

if(w_dif< specs $ tol || iter == specs $ maxiter)中断的错误:     缺少需要TRUE / FALSE的值

这是我的代码:

library(dplyr)
library(plspm)
risk <- tbl_df(read.csv("case2.csv", stringsAsFactors=F))
risk[is.na(risk)] <- 0

#Rows construction
Env <- c(0,0,0,0,0,0,0,0,0)
Malc <- c(0,0,0,0,0,0,0,0,0)
Phy <- c(1,0,0,0,0,0,0,0,0)
Knowledge <- c(0,0,0,0,0,0,0,0,0)
Hygiene <- c(1,0,1,0,0,0,0,0,0)
Capacity <- c(0,1,0,1,0,0,0,0,0)
Legal <- c(0,0,0,1,0,0,0,0,0)
Malf <- c(1,1,0,0,0,0,0,0,0)
Risk <- c(1,1,1,1,1,1,1,1,0)

#Row Binding
foot_path <- rbind(Env, Malc, Phy, Knowledge, Hygiene, Capacity, Legal, Malf, Risk)

#Column Names
colnames(foot_path) <- rownames(foot_path)

riskarranged <- select(risk, X1, X2, X3, X4, X6, X11,X12,X13,X14,X15,X20,X21,X22,X24,X25,X27,X28,X29,X31,X32,X5,X9,X10,X16,X19,X23,X26,X7,X8,X17,X30,X18,Y1,Y2)

foot_blocks <- list(1:5, 6:20, 21:24, 25:27, 28:29,30,31,32,33:34)

plspm(riskarranged, foot_path, foot_blocks)

riskarranged没有任何NA。在这里完全失去了。帮助将不胜感激。 这是指向数据文件的链接: https://www.dropbox.com/s/ddhyz931c3vg0xu/case2.csv?dl=0

1 个答案:

答案 0 :(得分:3)

好吧,我联系了plspm包的作者Gaston Sanchez,这就是他要说的: -

该错误与plspm算法的迭代部分有关,无法收敛。出现此错误的最常见原因是存在具有全部或几乎所有常量值的变量。

果然,我有三个变量在整个列中具有相同的观察值。删除这些后,我能够运行该模型。希望这有助于某人。