Итак, даже с этой дополнительной библиотекой это не та задача, для которой предназначен R. Согласно Wolfram Alpha ваш k
равен примерно 1.008 * 10^935. Я бы рекомендовал брать журналы и аппроксимировать.
Итак, что вы делаете и почему думаете, что вам нужно это значение?
Если вы хотите, чтобы приблизить это тривиальное бревнами:
# k = (sum(x))!/x[1]!/x[2]!/x[3]!/x[4]!
но log(n!) = sum(log(1:n))
, так что это должно быть хорошим приближением журнала:
log.k = sum(log(1:sum(x))) - sum(log(1:x[1])) - sum(log(1:x[2])) -
sum(log(1:x[3])) - sum(log(1:x[4]))
Мы можем определить
p = c(A, B, C, D)
, а затем
log.prob = sum(x * log(p)) + log.k
> log.prob
# [1] -7.867374
(я нашел свою ошибку, пропустил пару из 1:
, необходимых в факториалах.)
Или мы могли бы использовать встроенный dmultinom
dmultinom(x = x, size = 1000, prob = p, log = T)
# [1] -7.867374
редактируется, не решает проблему, спасибо –