Почему результат статистики разрыва отличается в R и Matlab? - PullRequest
0 голосов
/ 12 декабря 2018

Я попытался поместить те же данные, чтобы сделать статистику разрыва и хочу получить оптимальное количество кластеров.Чтобы проверить достоверность результатов, я попытался использовать разные программы, R и Matlab, чтобы выполнить один и тот же тест.Однако результаты в R и Matlab отличаются друг от друга.Оптимальное количество кластеров в R равно 40, а в Matlab - 6. Я попытался проверить все параметры и настроить их так, чтобы все параметры были одинаковыми, но все же получить разные результаты.

Есть ли еще какие-то детали, которые я пропустил?или разные результаты в разных программах есть причина?Я был обеспокоен этим вопросом в течение длительного времени.Если вы можете мне помочь, я очень вам благодарен.

Это входные данные gaptest, а кластерный метод - pam

           X1          X2
1   0.6351928  -0.7824029
2   0.6401326  -0.7919060
3   0.6427007  -0.7968948
4   0.6558318  -0.8229245
5   0.6566169  -0.8245088
6   0.6680986  -0.8480393
7   0.6782454  -0.8693981
8   0.6796789  -0.8724580
9   0.7115760  -0.9431477
10  0.7133614  -0.9472431
11  0.7296727  -0.9852485
12  0.8195850  -1.2030732
13  0.8470816  -1.2677628
14  0.8491237  -1.2724711
15  0.9787868  -1.5406940
16  1.0200572  -1.6149679
17  1.0680393  -1.6964657
18  1.0776983  -1.7123423
19  1.0944731  -1.7395482
20  1.0968986  -1.7434456
21  1.1069733  -1.7595397
22  1.1134140  -1.7697527
23  1.1464978  -1.8213617
24  1.2733486  -2.0097707
25  1.3603164  -2.1343635
26  1.5108690  -2.3507509
27  1.7984058  -2.8258020
28  1.8317105  -2.8951666
29  1.9689162  -3.3205491
30  1.9830438  -3.6912299
31  1.8931125  -4.0746001
32  7.0844451 -12.5712374
33  7.0636832 -12.5987628
34  6.9238601 -12.7901880
35  6.8664584 -12.8743234
36  6.8151738 -12.9560336
37  7.1884836 -12.8093261
38  7.4338566 -12.6135888
39  7.6658285  -8.5133002
40  7.6070872  -8.4042949
41  7.6053719  -8.4004027
42  8.3855195  -8.0055749
43  8.5990981  -8.0174662
44 10.3757387  -8.3280635
45 10.4124935  -8.3389941
46 10.4836669  -8.3608685
47 10.8223695  -8.4792392
48 10.9421194  -8.5275618

код в matlab

myfunc=@(x,k) kmedoids(x,k,'Algorithm','pam','Start','sample');
gap1=evalclusters(gaptest,myfunc,'gap','KList',[1:length(gaptest)],'B',200,'SearchMethod','firstMaxSE','ReferenceDistribution','PCA');

результат построения в Matlab введите описание изображения здесь

код в R

clusGap(gaptest,pam,K.max=47,B=200,verbose=TRUE)

результат в R

clusGap(x = gaptest, FUNcluster = pam, K.max = 47, B = 200, verbose = TRUE)
B=200 simulated reference sets, k = 1..47; spaceH0="scaledPCA"
 --> Number of clusters (method 'firstSEmax', SE.factor=1): 40

результат построения в R введите описание изображения здесь

Я попытался изменить метод кластера в Matlab, и оптимальное число все еще равно 6. Играфики результата в R и Matlab выглядят очень похожими.Но оптимальное количество кластеров все же отличается.

...