Як рахуються групи думок
Спершу простими словами, нижче — для тих, хто хоче деталей і формул.
Простими словами
- Таблиця голосів. Кожен учасник — рядок, кожна теза — стовпчик. У клітинці: «згоден», «не згоден» або «пропустив». Більше нічого алгоритм не бачить.
- Текст він не читає. Алгоритм не розуміє змісту тез. Він лише порівнює, хто за які тези голосував однаково.
- Карта. Таблицю стискаємо до плоскої картинки: люди, які голосували схоже, лягають поруч, а ті, чиї голоси розходяться, — далеко одне від одного. Кожна точка на карті — учасник.
- Групи. На карті шукаємо скупчення точок і називаємо їх групами. Групу визначає не хто ти за паспортом чи країною, а як ти голосував(-ла).
- Що показати про групу. Для кожної групи беремо тези, які її найкраще відрізняють від решти, і тези, за які всі групи голосують однаково (спільне).
Чого це не означає
- Це не опитування і не «скільки відсотків українців так думає». Це карта ліній згоди й розходжень.
- Групи не є «правильними» чи «неправильними» й не пов'язані з національністю чи країною проживання.
- Поки учасників мало, групи нестабільні: за кілька днів їх може стати більше чи менше, а межі зсунутися. Орієнтир — понад 100 учасників для стабільнішої картини, і ще більше для репрезентативності.
- Назви груп (А, Б…) технічні. Змістовні назви дамо у звіті, коли групи стабілізуються.
- Відповіді дають ті, хто сам знайшов розмову й дійшов до голосування, тож це не зріз усіх українців.
Для тих, хто хоче деталей
Розрахунок повторює метод Pol.is і виконується відкритою бібліотекою red-dwarf (режим «Polis»).
- Матриця. Голоси кодуємо як +1 (згоден), −1 (не згоден), 0 (пропустив); відсутній голос — пропуск у даних. У розрахунок потрапляють учасники з щонайменше 7 голосами (поріг Pol.is) і лише тези, схвалені модератором. Учасники, яких система позначила як ботів, не враховуються до ручної перевірки.
- PCA (метод головних компонент). Знаходимо дві осі, уздовж яких голоси варіюються найбільше, й проєктуємо учасників на ці осі. Пропущені значення заповнюються оцінкою, щоб їх не вважали крайньою думкою.
- k-means. Ділимо точки карти на k груп так, щоб сума квадратів відстаней до центру групи була найменшою. Число k не задаємо вручну: пробуємо кілька значень і вибираємо найкраще за якістю розділення (silhouette).
- Стабілізація. У «живому» режимі k-means стартує з центрів попереднього розрахунку, а k змінюється, лише якщо нове значення виявилося кращим 3 перерахунки поспіль. Без цього групи «мигали» б між, наприклад, 4 і 5 після кожного голосу. Букви груп зберігаються за перетином учасників.
- Репрезентативні тези. Для кожної групи беремо тези, де її частка згодних (або незгодних) значно відрізняється від решти, за статистичним тестом на різницю часток. Консенсус — тези, де в усіх групах схильність голосувати в один бік висока.
- Приватність. Групи менші за 3 людини приховано. Публічно показуємо лише агрегати, а положення окремих точок на карті — лише самому учаснику.
Перевірка: на даних розмови від 15.10 цей метод розділив 38 учасників так само, як звіт Pol.is (індекс збігу Adjusted Rand = 1,0). Обмеження red-dwarf: немає «базових кластерів» Pol.is (він вмикає їх за понад 100 учасників, тож збіг може стати неповним) і немає «пам'яті» про минулих учасників. Режим звіту рахує без стабілізації й відтворюється з голосів.
Теж цікаво: як обираються тези.