Пакет R mpmi для вычисления взаимной информации между двумя наборами непрерывных переменных.

Я пытаюсь использовать пакет mpmi для вычисления взаимной информации между двумя наборами непрерывных переменных. Меня смущает исходный код, размещенный на GutHub: https://github.com/cran/mpmi/blob/master/src/cminjk.f95

ans = ans + log(s12(i) / (s1(i) * s2(i)))

end do

ans = ans / lv + log(dble(lv))

S12 похож на p(x,y), а s1,s2 похож на p(x),p(y). Почему бы не умножить p(x,y) перед log(s12(i) / (s1(i) * s2(i))), чтобы формула для расчета MI была p(x,y)*log(p(x,y)/(p(x)p(y)))

И почему после суммирования стоит ans = ans / lv + log(dble(lv))?


person S.C. Jiang    schedule 08.12.2016    source источник
comment
Я думаю, что эти вопросы лучше задать создателю/сопровождающему пакета.   -  person Roman Luštrik    schedule 08.12.2016
comment
Я связался с сопровождающим, но пока не получил ответа.   -  person S.C. Jiang    schedule 12.12.2016


Ответы (2)


См. ссылку «Быстрый расчет попарной взаимной информации для реконструкции сети регуляции генов».

person S.C. Jiang    schedule 13.12.2016

Будьте осторожны с этой ссылкой: «Быстрый расчет попарной взаимной информации для реконструкции сети регуляции генов».

Эта стратегия предполагает, что каждая из двух случайных величин имеет нормальное распределение. За исключением случаев, когда вы точно знаете, что обе переменные следуют нормальному распределению, я предлагаю использовать пакеты, свободные от каких-либо предположений о распределении. Я рекомендую пакет R "minerva". Просто требуется указать MIC(X,Y)$MIC.

person Jhonathan Pedroso    schedule 21.02.2017