2017-08-22 38 views
1

当运行mclustICLRmclust 5.3)上的数据中发生错误:R:MclustICL功能错误四舍五入时

data <- c(-0.485152666666667, -0.457841666666667, -0.457841666666667, 
-0.457841666666667, -0.457841666666667, -0.457841666666667, -0.457841666666667, 
-0.457841666666667) 
> mclustICL(data, modelNames = "V") 
fitting ... 
    |=======================================================================================================| 100% 
Error in if (sum((out$parameters$pro - colMeans(out$z))^2) > sqrt(.Machine$double.eps)) { : 
    missing value where TRUE/FALSE needed 

舍入解决它:

> mclustICL(round(data,5), modelNames = "V") # no error 

但是我需要使用功能mclustICL上其他数据的例子,然后四舍五入不仅没有帮助,但功能只有当我不使用round和抛出相同的错误,当我做

data <- c(-0.241992333333333, -0.287035333333333, -0.33378, -0.272269333333333, 
-0.241992333333333, -0.287035333333333, -0.241992333333333, -0.241992333333333, 
-0.241992333333333, -0.287311, -0.287311, -0.287035333333333) 

> mclustICL(data, modelNames = "V")# no error 

> mclustICL(round(data,5), modelNames = "V")fitting ... 
    |=======================================================================================================| 100% 
Error in if (sum((out$parameters$pro - colMeans(out$z))^2) > sqrt(.Machine$double.eps)) { : 
    missing value where TRUE/FALSE needed 

我应该怎么做才能在两个数据上使用这个函数,以及为什么会发生这种行为?提前致谢!

+0

改进代码输出 –

回答

0

升级到R 3.4.1.解决了这个问题。非常感谢Luca Scrucca!

0

我没有你的问题,你可以在下面的代码中看到。
你有最新版本的软件包吗?
你看看你的数据吗?
你能猜出为什么只有单一混合物成分可以安装吗?

> library(mclust) 
    __ ___________ __ _____________ 
/|//____////// ___/_ __/ 
//|_/// // ////\__ \// 
//// /___/ /___/ /_/ /___/ /// 
/_/ /_/\____/_____/\____//____//_/ version 5.3 
Type 'citation("mclust")' for citing this R package in publications. 

> data <- c(-0.485152666666667, -0.457841666666667, -0.457841666666667, 
+ -0.457841666666667, -0.457841666666667, -0.457841666666667, -0.457841666666667, 
+ -0.457841666666667) 
> summary(data) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
-0.4852 -0.4578 -0.4578 -0.4613 -0.4578 -0.4578 
> dotchart(data) 

> mclustBIC(data, modelNames = "V") 

Bayesian Information Criterion (BIC): 
     V 
1 48.44934 
2  NA 
3  NA 
4  NA 
5  NA 
6  NA 
7  NA 
8  NA 

Top 3 models based on the BIC criterion: 
    V,1     
48.44934  NA  NA 

> mclustICL(data, modelNames = "V") 

Integrated Complete-data Likelihood (ICL) criterion: 
     V 
1 48.44934 
2  NA 
3  NA 
4  NA 
5  NA 
6  NA 
7  NA 
8  NA 

Top 3 models based on the ICL criterion: 
    V,1     
48.44934  NA  NA 

> data <- c(-0.241992333333333, -0.287035333333333, -0.33378, -0.272269333333333, 
+ -0.241992333333333, -0.287035333333333, -0.241992333333333, -0.241992333333333, 
+ -0.241992333333333, -0.287311, -0.287311, -0.287035333333333) 
> summary(data) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
-0.3338 -0.2871 -0.2797 -0.2710 -0.2420 -0.2420 
> dotchart(data) 

> mclustBIC(data, modelNames = "V") 

Bayesian Information Criterion (BIC): 
     V 
1 46.73079 
2  NA 
3  NA 
4  NA 
5  NA 
6  NA 
7  NA 
8  NA 
9  NA 

Top 3 models based on the BIC criterion: 
    V,1     
46.73079  NA  NA 

> mclustICL(data, modelNames = "V") 

Integrated Complete-data Likelihood (ICL) criterion: 
     V 
1 46.73079 
2  NA 
3  NA 
4  NA 
5  NA 
6  NA 
7  NA 
8  NA 
9  NA 

Top 3 models based on the ICL criterion: 
    V,1     
46.73079  NA  NA 

> mclustICL(round(data,5), modelNames = "V") 
Integrated Complete-data Likelihood (ICL) criterion: 
     V 
1 46.72944 
2  NA 
3  NA 
4  NA 
5  NA 
6  NA 
7  NA 
8  NA 
9  NA 

Top 3 models based on the ICL criterion: 
    V,1     
46.72944  NA  NA 
+0

我刚刚在Windows上尝试过它,并且您的输出被复制(没有错误)。但我很喜欢Ubuntu 14.04,而且我仍然有同样的错误。 mclust的版本是5.3。对不起,您对单组件的最后一个问题意味着什么? – Marie

+0

对不起,但你安装mclust似乎有问题。也许编译器是旧的,或者你的Linux盒子是旧的(超过3年)。请检查R版本。 关于单个组件的问题:如果仔细观察,您会看到只有具有单个高斯分量的模型才能被拟合。这取决于你的数据。你看看图表吗? –