У меня есть большая разреженная матрица. теперь я хочу сделать таблицу непредвиденных ситуаций для всех комбинаций пары столбцов. Например: Скажем, моя редкая матрица MatТаблица непредвиденных обстоятельств из разреженной матрицы
D1 D2 D3 D4 D5 .. Dn
1 0 1 0 0 .. 0
0 1 1 1 1 .. 1
.. .. .. .. .. .. ..
1 0 1 0 1 .. 1
Теперь нужно сделать таблицы сопряженности для всех комбинации Di и Dj для примера таблицы сопряженности для (D1, D2), (D1, D3), (D1, D4) .. (D1, D), (D2, D3), (D2, D4) .. (D2, D) .. (Dn-1, D)
структура каждого Случайности Таблица
r1 r2
r3 r4
#where r1 is total number of 1's in Di column
# r2 is total number of 1's in Di AND Dj column
# r3 is total number of 1's in Di AND Dj column
# r4 is total number of 1's in Dj column
Algo:
for each i in (1:n-1) {
for each j in (i+1 : n) {
Calculate r1,r2,r3,r4
create contingency table for Ri and Rj
apply fisher test on that
}
}
Я хочу немного быстрой реализации, как это занимает больше 2-3 дней
Спасибо. Но все же это занимает много времени. Размер матрицы составляет 8000 * 7000. Это означает общее количество таблиц непредвиденных ситуаций (7000,2). Первоначально создание таблицы происходит очень быстро, но через некоторое время она становится очень медленной, а затем, наконец, застревает. –
7000 столбцов ??? и вы думаете, что это означает общее количество c (7000, 2) ...? Это составит около 24,5 миллионов столов! – Sotos
Да. Вот почему это занимает время. –