[R] Error on mclust

Christian Hennig hennig at stat.math.ethz.ch
Wed Aug 6 11:40:52 CEST 2003


Hi,

this goes also to the developer and maintainer of mclust.

Here are some reproducible results:

> set.seed(300)
> x <- c(rnorm(50),rnorm(56,-0.5)) 
> Mclust(x)
Error in rep(1, n) : Object "n" not found

> set.seed(3000)
> y <- c(rnorm(50),rnorm(56,-0.5)) 
> Mclust(y)

 best model: unequal variance with 3 groups

 averge/median classification uncertainty: 0.002 / 0 

Now what's the difference between x and y?
function EMclust works for both, but not summary.EMclust:

> emx <- EMclust(x)
> emx

 BIC:
          E         V
1 -304.8738 -304.8738
2 -314.2134        NA
3 -323.5445        NA
4 -332.8736        NA
5 -342.2043        NA
6 -351.5322        NA
7 -360.8612        NA
8 -370.1896        NA
9 -379.5153        NA

> help(summary.EMclust)
> summary(emx,x)
Error in rep(1, n) : Object "n" not found
> emy <- EMclust(y)
> summary(emy,y)

classification table:

  1   2   3 
100   4   2 

uncertainty (quartiles):
        0%        25%        50%        75%       100% 
0.00000000 0.00000000 0.00000000 0.00000000 0.06683614 

best BIC values:
      V,3       V,2       E,1 
-293.2526 -302.0302 -304.2835 

best model: unequal variance 

> emy

 BIC:
          E         V
1 -304.2835 -304.2835
2 -313.6275 -302.0302
3 -322.9562 -293.2526
4 -332.2631        NA
5 -341.5896        NA
6 -350.8819        NA
7 -352.6121        NA
8 -361.9393        NA
9 -371.2658        NA

Here is the explanation:

For x, one class G=1 is chosen as optimal.
The line rep(1,n) appears in summary.EMclust (which is called by Mclust,
but not by EMclust), but it is called only if G=1 is estimated. 
Indeed, n is not defined (as far as I can see), which is a bug. 

It's possible to work around that bug:
For concrete data analysis, if the error occurs, 
you may assume (and check by application of
EMclust), that G=1 is estimated, which means that you can fit a single
normal distribution, for which you do not need Mclust. 
Otherwise you should get proper results.

Best,
Christian

On Tue, 5 Aug 2003, weidong zhang wrote:

> Hi All,
> 
> 
> I am trying to cluster a one-dimensional data (see the file attached) using 
> Mclust() but got an error message like:
> >Mclust(x)
> Error in rep(1, n) : Object "n" not found
> 
> When I do a simulation sometimes it works sometimes doesn't.
> 
> >Mclust(c(rnorm(50),rnorm(56,-0.5)))
> Error in rep(1, n) : Object "n" not found
> 
> >Mclust(c(rnorm(56),rnorm(56,-0.5)))
> 
> best model: unequal variance with 2 groups
> 
> averge/median classification uncertainty: 0.001 / 0
> 
> Can anybody help me with this? Thanks.
> 
> Weidong
> 
> _________________________________________________________________
> 
> 
> 

-- 
***********************************************************************
Christian Hennig
Seminar fuer Statistik, ETH-Zentrum (LEO), CH-8092 Zuerich (currently)
and Fachbereich Mathematik-SPST/ZMS, Universitaet Hamburg
hennig at stat.math.ethz.ch, http://stat.ethz.ch/~hennig/
hennig at math.uni-hamburg.de, http://www.math.uni-hamburg.de/home/hennig/
#######################################################################
ich empfehle www.boag.de




More information about the R-help mailing list