R: Ошибка функции MclustICL при округлении
При беге mclustICL
(R
пакет mclust 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
на других примерах данных, а затем округление не только не помогает, но функция работает только тогда, когда я не использую округление и выдает ту же ошибку, когда я делаю:
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
Что я должен сделать, чтобы использовать функцию для обоих данных и почему это происходит? Заранее спасибо!
2 ответа
Решение
Обновление до R 3.4.1.
решил проблему. Большое спасибо Люке Скракке!
У меня нет ваших проблем, как вы можете видеть в коде ниже.
У вас есть последняя версия пакета?
Вы смотрели на свои данные?
Можете ли вы догадаться, почему может быть установлен только один компонент смеси?
> 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