Я пытаюсь использовать функцию Mclust из пакета mclust для моделирования скрытых классов. Пример, описанный в виньетке (https://cran.r -project.org / web / packages / mclust / vignettes / mclust.html ), основанный на данных о диабете, работает как чудо, но если я использую его на своем собственные данные, я получаю очень странные результаты.
Вот как выглядят мои данные:
> head(example)
HI01_01 HI01_02 HI01_03 HI01_07 HI01_08 HI01_09 HI01_10 HI01_12
1 4 3 3 2 2 1 1 1
2 7 7 7 7 6 1 1 1
3 7 7 7 7 7 7 7 7
4 7 7 5 7 4 4 5 3
5 1 4 2 5 4 1 1 1
6 2 1 1 1 1 1 1 1
> str(example)
'data.frame': 281 obs. of 8 variables:
$ HI01_01: num 4 7 7 7 1 2 5 7 6 4 ...
$ HI01_02: num 3 7 7 7 4 1 5 7 5 2 ...
$ HI01_03: num 3 7 7 5 2 1 2 7 6 3 ...
$ HI01_07: num 2 7 7 7 5 1 1 7 1 3 ...
$ HI01_08: num 2 6 7 4 4 1 1 5 1 1 ...
$ HI01_09: num 1 1 7 4 1 1 1 3 1 1 ...
$ HI01_10: num 1 1 7 5 1 1 1 3 1 5 ...
$ HI01_12: num 1 1 7 3 1 1 1 1 1 1 ...
Итак, это мой вывод для модели mclust - почему я получаю эти безумные отклонения для сигмы?
> model1<-Mclust(example)
> summary(model1, parameters = TRUE)
----------------------------------------------------
Gaussian finite mixture model fitted by EM algorithm
----------------------------------------------------
Mclust EVE (ellipsoidal, equal volume and orientation) model with 3
components:
log.likelihood n df BIC ICL
-3155.324 281 76 -6739.163 -6754.531
Clustering table:
1 2 3
160 91 30
Mixing probabilities:
1 2 3
0.5508364 0.3273966 0.1217670
Means:
[,1] [,2] [,3]
HI01_12 1.000000 3.129923 1.601780
HI01_09 1.519193 3.751240 2.171865
HI01_10 1.810760 4.080920 2.408739
HI01_02 4.577985 5.857100 5.651912
HI01_03 4.781808 6.233245 5.932055
HI01_01 4.895485 6.157288 5.796994
HI01_07 3.512875 6.664422 4.115287
HI01_08 2.243201 5.831780 2.115159
Variances:
[,,1]
[end of output deleted because the variances table was too wide and I
could not get it to look like in my output; however all values ranged
between values like -1.279519e+308 and inf]
И я получаю сообщения об ошибках для других кодов в зависимости от модели:
> plot(model1, what = "classification")
Error in eigen(sigma, symmetric = TRUE) :
infinite or missing values in 'x'
Понятия не имею, что происходит. Кто-нибудь может дать мне совет, что я здесь сделал не так?