Bonjour,
je souhaite estimer les paramètres d'un mélange de deux lois normales ~ N(0,1)+N(4,1) .
Pour cela j'utilise le package 'flexmix'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
require(flexmix)
#require(lattice)
dat <- data.frame(y=c(rnorm(500,0,1), rnorm(500,4,1)), class=gl(2,500))
# densityplot(x=~y, data=dat)
(ex1_flx2 <- stepFlexmix(y~1, k=2, nrep=100, data= dat, model=FLXMRglm(~1) ))
parameters(ex1_flx2)
#                         Comp.1   Comp.2
# coef.(Intercept) 1.875679 2.141521
# sigma               2.279147 2.279306
 table(true=dat$class, pred=clusters(ex1_flx2))
#          pred
#  true   1   2
#    1 497   3
#    2  17 483
Je ne comprends pas pourquoi les estimations sont totalement fausses, alors que le classement est correct 98%.
Le problème vient-il de flexmix ou bien de la fonction parameters ?

PS : j'ai testé sur des données avec des variances différentes et le résultat obtenu était correct.