ourMELONS/R/laskeMuutokset4.R
2020-01-14 13:44:18 +01:00

30 lines
No EOL
1.1 KiB
R

#' @title laskeMuutokset4
#' @description Palauttaa npops*npops taulun, jonka alkio (i,j) kertoo, mik?on
#' muutos logml:ss? mikäli populaatiosta i siirretään osuuden verran
#' todennäköisyysmassaa populaatioon j. Mikäli populaatiossa i ei ole mitään
#' siirrettävää, on vastaavassa kohdassa rivi nollia.
#' @param osuus osuus
#' @param osuusTaulu osuusTaulu
#' @param omaFreqs omaFreqs
#' @param logml logml
#' @param COUNTS COUNTS
#'
laskeMuutokset4 <- function (osuus, osuusTaulu, omaFreqs, logml,
COUNTS = matrix(0)) {
npops <- dim(COUNTS)[3]
notEmpty <- osuusTaulu > 0.005
muutokset <- zeros(npops)
empties <- !notEmpty
for (i1 in notEmpty) {
osuusTaulu[i1] <- osuusTaulu[i1] - osuus
for (i2 in c(1:(i1 - 1), (i1 + 1):npops)) {
osuusTaulu[i2] <- osuusTaulu[i2] + osuus
loggis <- computeIndLogml(omaFreqs, osuusTaulu)
muutokset[i1, i2] <- loggis - logml
osuusTaulu[i2] <- osuusTaulu[i2] - osuus
}
osuusTaulu[i1] <- osuusTaulu[i1] + osuus
}
return (muutokset)
}