В соответствии с методикой оценки вкуса по корреляции оценок, выставленных участниками "народного голосования" -
http://www.stihi.ru/2016/07/20/9199
были проанализированы результаты конкурса "Антиподы чувств" на Кубке Стихиры.
Проголосовали все участники конкурса и один гость.
Коэффициенты корреляции вкуса голосовавших ( в процентах) приведены в таблице рисунка.
Сделана также оценка консолидированного вкуса участников.
В качестве этой оценки взята Сумма_коэффициентов_корреляции - 100.
========
оценка консолидированного вкуса #, и сумма баллов
а 1.Юрий Рехтер # 564 баллы 147
б 2.Орловаи # 103 баллы 146
в 3.Ольга Альтовская # 604 баллы 158
г 4.Маргарита Бахарева # 494 баллы 152
д 5.Маштаков Олимп #-115 баллы 125
е 6.Маштаков Идиллия баллы 137
ж 7.Игорь Савельев 4 # 74 баллы 150
з 8.Нина Орлова 22 #-108 баллы 134
и 9.Валери Сун # 266 баллы 131
й 10 Нестор Иванофф # 286 баллы 129
к 11.Лора Круг # 609 баллы 156
л 12.Другая Людмила # 437 баллы 153
м 13.Гольгертс # 406 баллы 150
н 14.Нина Серова # 114 баллы 137
о 15.Аарон Алеппо # 504 баллы 151
п 16.Игорь Миронов # 350 баллы 156
р 17.Юлия Александровна Михайлова #-24 баллы 173
с 18.Нина Находка # 535 баллы 157
т 19.Алена Шарифова # 80 баллы 149
у 20.Ольга Касинец # 235 баллы 153
ф 21.Евгений Аксельрод # 476 баллы 160
х 22.Борис Поляков # 395 баллы 175
ц 23.Тимофей Бондаренко # 577 баллы 183
ч 24. Тамара Гаврилова # 260 баллы 156
ш 25. Джафар Кадыров #-390 баллы 0
среднее конс 270 средний балл 144.72
Все участвовавшие в голосовании могут найти по таблице своих вкусовых союзников и антиподов.
ГРУППИРОВКА УЧАСТНИКОВ ГОЛОСОВАНИЯ ПО ИХ ВКУСОВЫМ ПРИСТРАСТИЯМ
Участники голосования, в соответствии со статистикой своих оценок, могут быть разделены на группы сходного вкуса.
Был использован следующий алгоритм такого разделения.
Из всех участников находятся двое, имеющие наиболее высокий коэффициент корреляции выставленных оценок. К ним добавляется третий, при условии, что он не находится в антикорреляции ни к одному из имеющихся (вначале - двух) участников группы и имеет средний коэффициент корреляции со всеми участниками не менее чем R.
Если такой участник нашёлся, то он добавляется к группе, и процесс продолжается.
Когда все участники, консолидированные по уровню R, добавлены, то группа обособляется, и процесс поиска другой консолидированной группы продолжается на множестве оставшихся участников.
Когда новые группы, числом более двух, не образуются, то процесс заканчивается.
Ясно, что чем больше уровень R, тем малочисленнее, но зато и тем консолидированнее по вкусу оказываются группы. Результаты приведены ниже.
R=10%
группа 1 ( 3) (23) ( 1) ( 4) ( 9) (11) (12) (13) (15) (18) (21) (22) (24)
группа 2 ( 2) (10) ( 5) ( 7) (17)
группа 3 (14) (16) ( 8)
R=30%
группа 1 ( 3) (23) ( 1) ( 4) ( 9) (11) (12) (13) (15) (18) (21) (24)
группа 2 ( 2) (10) (20)
R=50%
группа 1 ( 3) (23) ( 1) ( 4) (11) (15) (18)
R=60%
группа 1 ( 3) (23) (18)
Видно, что имеются три разных группы консолидированного вкуса, из которых наиболее многочисленна и консолидирована внутри себя первая группа. В ней имеется ядро из трёх наиболее консолидированных между собой участников.
ДРУГИЕ ВОЗМОЖНОСТИ СОЕДИНЕНИЯ В ГРУППЫ
Нужно отметить, что "антагонисты" могут помешать созданию группы. Например, если за начальную пару первой группы мы возьмём лидеров второй группы, то получим первую группу в таком составе:
R=10%
группа 1 ( 2) (10) ( 1) ( 3) ( 4) ( 9) (11) (20)
участники (18) и (23), являющиеся антагонистами пары ( 2) и (10), перешли в группу 2, а вот участники ( 1), ( 4), ( 9) и (11) в наиболее многочисленной группе остались:
группа 2 (18) (23) (12) (13) (15) (19) (22)
группа 3 ( 7) ( 8) ( 5) (14)
группа 4 (16) (24) (21)
В статистике, как и в людском сообществе - многое зависит от того, кто организует группу - от того, что первым в неё вошёл.
_______________
Приложение
Программа для Турбо Бейсика
'CORRM.BAS
'в строке оценки разных стихов одним из экспертов
DIM X(100,50) : DIM R(50,50) : DIM U$(50) : DIM CON(50) : DIM MEM(10,50)
FOR I=1 TO 100 : FOR J=1 TO 50 : X(I,J)=99 : NEXT J : NEXT I
FOR I=1 TO 100 : X(I,0)=0 : NEXT I
N=0 : M=0 : X$="K"
OPEN "X"+X$+".TXT" FOR INPUT AS #1 'файл входных данных
10 LINE INPUT #1,S$
IF LEFT$(S$,3)=",,," THEN SWAP N,M : GOTO 20
IF S$="" THEN 10
IF LEFT$(S$,1)=" " THEN : ELSE U$(N+1)=S$ : GOTO 10
N=N+1 : M1=0
12 I=INSTR(S$," ")
IF I=1 THEN S$=MID$(S$,2) : IF LEN(S$)>0 THEN 12
IF S$="" THEN 10
M1=M1+1 : IF M1>M THEN M=M1
B=VAL(S$) : X(M1,N)=B : X(M1,0)=X(M1,0)+B
I=INSTR(S$," ") : IF I=0 THEN 10
S$=MID$(S$,I) : GOTO 12
20 CLOSE #1
OPEN "XT"+X$+".TXT" FOR OUTPUT AS #2 'файл для вывода статистики
PRINT #2,"N=";N;" M=";M
FOR I=1 TO N : FOR J=1 TO M+1
B$=STR$(X(I,J)) : S$=LEFT$(B$,4)
IF LEN(S$)=2 THEN S$=" "+S$
IF J<M+1 THEN
PRINT #2,S$;
ELSE : IF X(I,J)=99 THEN PRINT #2," =";X(I,0); ELSE PRINT #2,S$;
END IF
NEXT J : PRINT #2,"" : NEXT I
PRINT N;" member";M
'CLOSE #2 : STOP
FOR J=1 TO M : PRINT #2,FNW$(J)+" "; : PRINT #2,U$(J) : NEXT J
PRINT #2,"======="
FOR M1=1 TO M : FOR M2=1 TO M
I=0 : X1S=0 : X2S=0 : N1=0
30 I=I+1 : IF I>N THEN 32
IF X(I,M1)*X(I,M2)=0 THEN 30
N1=N1+1 : X1S=X1S+X(I,M1) : X2S=X2S+X(I,M2) : GOTO 30
32 IF N1=0 THEN B=0 : GOTO 35
X1S=X1S/N1 : X2S=X2S/N1 : S=0 : S1=0 : S2=0 : I=0
33 I=I+1 : IF I>N THEN 34
IF X(I,M1)*X(I,M2)=0 THEN 33
DX1=X(I,M1)-X1S : DX2=X(I,M2)-X2S
S=S+DX1*DX2 : S1=S1+DX1*DX1 : S2=S2+DX2*DX2 : GOTO 33
34 B=S/(SQR(S1)*SQR(S2))
35 R(M1,M2)=B
NEXT M2 : NEXT M1
PRINT #2,"M=";M : PRINT #2," ";
FOR I=1 TO M : PRINT #2,FNW$(I); : NEXT I : PRINT #2," конс"
FOR I=1 TO M : Y=0 : PRINT #2,FNW$(I); : FOR J=1 TO M
A%=CEIL(R(I,J)*100) : Y=Y+A%
B$=STR$(A%) : S$=LEFT$(B$,4)
SELECT CASE LEN(S$)
CASE 1 : S$=" "+S$
CASE 2 : S$=" "+S$
CASE 3 : S$=" "+S$
END SELECT
PRINT #2,S$;
' NEXT J : PRINT #2," >";Y-100 : NEXT I
NEXT J : PRINT #2," >";Y-100 : CON(I)=CEIL(Y-100.5) : NEXT I
PRINT #2,",,,"
PRINT #2, : PRINT #2,"оценка консолидированного вкуса и сумма баллов"
B=0 : B1=0 : FOR I=1 TO M : PRINT #2,FNW$(I)+" ";U$(I);" #";CON(I);" баллы";CEIL(X(I,0))
B1=B1+X(I,0) : B=B+CON(I) : NEXT I
PRINT #2,"среднее конс";CEIL(B/M);"+ число_не_голосовавших*100/M средний балл";B1/M
CLOSE #2 ': STOP
'============================ ГРУППИРОВКА
100 RR=.1 ' для первого просчёта уровень консолидации = 10%
OPEN "MEM.TXT" FOR OUTPUT AS #3 'файл с группировкой
110 FOR I=0 TO 10 : FOR J=0 TO 50 : MEM(I,J)=0 : NEXT J : NEXT I
120 ZM=0 : FOR I=1 TO 10 : ZM=ZM+(MEM(I,0)) : NEXT I
PRINT "LM=";M-ZM;" r=";CEIL(RR*100-.5) : PRINT #3,"LM=";M-ZM;" r=";CEIL(RR*100-.5)
INPUT S$ : IF S$="e" THEN 150 'финиш
FOR J=0 TO 50 : MEM(0,J)=0 : NEXT J
IF S$="" THEN 'поиск пары
IF FNGG(0)>0 THEN GOTO 130 : ELSE PRINT "couple not found" : GOTO 120
END IF
IF LEFT$(S$,1)="r" THEN RR=VAL(MID$(S$,2))/100 : GOTO 110 'другой уровень R
K=INSTR(S$," ") : IF K>1 THEN 'номера пары не ищутся, а задаются
I=VAL(S$) : J=VAL(MID$(S$,2)) : IF I=J THEN PRINT "I=J" : GOTO 120
IF FNL(I)+FNL(J)>0 THEN PRINT "couple not found" : GOTO 120
IF R(I,J)<RR THEN PRINT "couple is wrong K<r" : GOTO 120
MEM(0,0)=2 : MEM(0,1)=I : MEM(0,2)=J : GOTO 130
END IF
GOTO 120
130 FOR I=1 TO M
IF FNL(I)=0 THEN
print i
GF=1 : KSUM=0 : FOR J=1 TO MEM(0,0)
K=R(I,MEM(0,J)) : KSUM=KSUM+K : IF K<0 THEN GF=0
NEXT J : K=GF*KSUM/MEM(0,0)
IF K>RR THEN MEM(0,0)=MEM(0,0)+1 : MEM(0,MEM(0,0))=I : GOTO 130
END IF
NEXT I : IF MEM(0,0)=2 THEN PRINT "association not created" : GOTO 120
I=0
132 I=I+1 : IF I>10 THEN PRINT "MEM_associoations > 10" : GOTO 120
IF MEM(I,0)>0 THEN 132
FOR J=0 TO MEM(0,0) : MEM(I,J)=MEM(0,J) : NEXT J
PRINT "association is created" : GOTO 120
150 PRINT #3,"образованы группы" : FOR I=0 TO 10 : K1=MEM(I,0)
IF K1>0 THEN
PRINT #3,"группа";I; : FOR J=1 TO K1
PRINT #3," "+FNW$(MEM(I,J));
NEXT J : PRINT #3,
END IF : NEXT I : CLOSE #3 : STOP
'=========
DEF FNL(N) 'свободен ли N (1 если входит в группу)
LOCAL I,J,K
K=N : FOR I=0 TO 10
'IF MEM(I,0)=0 THEN FNL=0 : EXIT DEF
FOR J=1 TO MEM(I,0) : IF MEM(I,J)=K THEN FNL=1 : EXIT DEF
NEXT J : NEXT I : FNL=0
END DEF
'=========
DEF FNGG(N) 'создание пары с МАХ корреляцией, большей RR
LOCAL I,J,I1,J1,K,K1
K=0 : FOR I=1 TO M : FOR J=1 TO M
IF FNL(I)+FNL(J)=0 THEN
K1=R(I,J) : IF K1=1 THEN K1=0
IF K1>RR AND K1>K THEN K=K1 : I1=I: J1=J
END IF
NEXT J : NEXT I
IF K>0 THEN MEM(0,0)=2 : MEM(0,1)=I1 : MEM(0,2)=J1
FNGG=K
END DEF
'=======
DEF FNW$(I)
LOCAL A$
A$=STR$(I) : IF LEN(A$)>2 THEN A$=MID$(A$,2)
FNW$="("+A$+")"
END DEF
'______________________________________
Исходные данные для программы находились в текстовом файле в следующем виде:
«конкурс Антиподы чувств. Голосование» (Кубок Стихиры)
1.Юрий Рехтер
0 8 9 5 6 8 5 4 5 4 6 6 6 4 7 8 10 9 7 6 9 7 10 9
2.Орловаи
4 0 4 4 4 4 4 4 4 6 4 4 4 4 4 8 10 4 4 4 5 4 4 4
3.Ольга Альтовская
8 9 0 7 5 5 9 8 5 5 9 7 8 7 10 9 9 9 9 8 9 10 9 8
................................................
25. Джафар Кадыров
6 5 7 8 9 6 4 6 5 10 4 7 7 5 5 5 6 6 5 9 6 2 7 7
,,,