1

在数据上运行mclustICLRmclust 5.3)时会发生错误:

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

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

4

2 回答 2

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 
于 2017-09-08T09:18:18.463 回答
0

升级以R 3.4.1.解决问题。非常感谢卢卡·斯克鲁卡!

于 2017-09-11T13:58:20.857 回答