Используя пакетную функцию mixtools gammamixEM, я могу использовать различные дистрибутивы.В качестве проверки соответствия моя цель - создать график функции плотности вероятности (результат функции gammamixEM) поверх графика гистограммы данных, которые я использовал для получения вероятного распределения.С функцией normalmixEM это прямо с функцией plot.mixEM.Есть ли способ для gammamixEM получить диаграмму плотности вероятности от gammamixEM?
Я пробовал функцию plot.mixEM на результатах gammamixEM, но это не работает (я ожидаю, что для работы этой функции требуется другой ввод, чем параметры, которые вы получаете от gammamixEM).Я искал руководство по пакету mixtools, но не смог найти функцию, как создать диаграмму для результатов gammamixEM.
Я попробовал следующий код, который я нашел в stackoverflow как ответ на аналогичныйвопрос:
mix.object <- fit
k <- ncol(mix.object$posterior)
x <- sort(mix.object$x)
a <- hist(x, plot = FALSE)
maxy <- max(max(a$density), .3989*mix.object$lambda/mix.object$sigma)
main2 <- "Density Curves"
xlab2 <- "Data"
col2 <- 2:(k+1)
hist(x, prob = TRUE, breaks = 100, main = main2, xlab = xlab2,
ylim = c(0,maxy))
for (i in 1:k) {
lines(x, mix.object$lambda[i] *
dnorm(x,
sd = sd(x)), col = "green")
}
[Plot of gammamixEM function over histogram plot ][1]
Приведенный выше код создает линии на графиках плотности, но они не соответствуют результатам, которые я получаю из функции gammamixEM (например, процентили 2,5% и 97,5% по сравнению сгде они будут в соответствии с нанесенными линиями), и не соответствуют распределению данных, которые я использовал для вычисления гамма-распределений.Я также не совсем уверен, что там делает «dnorm» часть приведенного выше кода. Я привык описывать гамма-функции с параметрами формы / масштаба (альфа и бета / тета).Есть идеи?