Я начинаю с данных баллов на уровне «группа-человек» следующим образом:
group_id person_id score
1 1 3
1 2 1
1 3 5
2 1 3
2 2 3
2 3 6
Цель состоит в том, чтобы создать данные о парах человек-человек, которые выглядят следующим образом:
person_id1 person_id2 sumsquarederror
1 2 4
1 3 13
2 3 25
где переменная "sumsquarederror" определяется как сумма по всем группам квадратов различий в значениях баллов для каждой возможной пары лиц. В математическом выражении эта переменная будет определяться следующим образом: для лиц i = 1 и i = 2 и групп j = (1, ..., J)
sumsquarederror(i=1,i=2) = sum_j (( score(i=1) - score(i=2) )^2)
Построение этих данных тривиально с небольшим количеством групп и людей, но у меня есть примерно 1000 групп и 150 000 человек, поэтому создание матриц / кадров данных для всех возможных комбинаций быстро становится обременительным в вычислительном отношении (= 150K на 150K на 1K, прежде чем рухнуть в переменная sumsquarederror)
Я предполагаю, что могут быть некоторые подходы линейной алгебры или идеи типа регрессии, но я в тупике. Будем весьма благодарны за любые советы, рекомендации и полезные пакеты!