2017-08-22 36 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版本。 關於單個組件的問題:如果仔細觀察,您會看到只有具有單個高斯分量的模型才能被擬合。這取決於你的數據。你看看圖表嗎? –