首页 > 解决方案 > 在进行单变量拟合时在 mclust-package 中出现错误

问题描述

在使用 Mclust 进行单变量拟合时,出现以下错误:

Error in mstepE(data = as.matrix(data)[initialization$subset, ], z = z,  : 
  row dimension of z should equal data length

我正在使用中提到的代码: https ://cran.r-project.org/web/packages/mclust/vignettes/mclust.html#initialisation

这是我收到错误的代码部分:

df1 <- dataSample
BIC <- NULL
for(j in 1:20){
  rBIC <- mclustBIC(df1, verbose = T,
                    initialization = list(hcPairs = randomPairs(df1)))
  BIC <- mclustBICupdate(BIC, rBIC)
}
summary(BIC)

以下链接包含要传递给变量“df1”的数据(文件名:dataSample.csv) https://drive.google.com/open?id=0Bzau9RsRnQreYk9XOWVBSm91b2o4NTQ4RlA2UFdWbDBVOVpR

标签: rmclust

解决方案


这是我从“mclust”库的一位作者(Luca Scrucca 教授)那里得到的解决方案:

“由于使用了提供 hcPairs 时发生冲突的自动子集,存在一个错误。我已在当前​​的 mclust 开发版本中修复了它。由于不会很快提交到 CRAN,您可以使用以下代码来避免当前版本的 mclust 出现错误:

rBIC <- mclustBIC(df1, verbose = T,
                  initialization = list(hcPairs = randomPairs(df1),
                                        subset = 1:NROW(df1)))

当 bug 修复发布时,subset 参数可以省略,因为它是多余的。”

现在,代码工作正常。


推荐阅读