## Not run: # Example 1: simulated data
# nn <- 1000
# mu1 <- exp(2.5) # Also known as lambda1
# mu2 <- exp(3)
# (phi <- logit(-0.5, inverse = TRUE))
# mdata <- data.frame(y = rpois(nn, ifelse(runif(nn) < phi, mu1, mu2)))
# mfit <- vglm(y ~ 1, mix2poisson, data = mdata)
# coef(mfit, matrix = TRUE)
#
# # Compare the results with the truth
# round(rbind('Estimated' = Coef(mfit), 'Truth' = c(phi, mu1, mu2)), digits = 2)
#
# ty <- with(mdata, table(y))
# plot(names(ty), ty, type = "h", main = "Orange=estimate, blue=truth",
# ylab = "Frequency", xlab = "y")
# abline(v = Coef(mfit)[-1], lty = 2, col = "orange", lwd = 2)
# abline(v = c(mu1, mu2), lty = 2, col = "blue", lwd = 2)
#
# # Example 2: London Times data (Lange, 1997, p.31)
# ltdata1 <- data.frame(deaths = 0:9,
# freq = c(162, 267, 271, 185, 111, 61, 27, 8, 3, 1))
# ltdata2 <- data.frame(y = with(ltdata1, rep(deaths, freq)))
#
# # Usually this does not work well unless nsimEIM is large
# Mfit <- vglm(deaths ~ 1, weight = freq, data = ltdata1,
# mix2poisson(iphi = 0.3, il1 = 1, il2 = 2.5, nsimEIM = 5000))
#
# # This works better in general
# Mfit <- vglm(y ~ 1, mix2poisson(iphi = 0.3, il1 = 1, il2 = 2.5), data = ltdata2)
# coef(Mfit, matrix = TRUE)
# Coef(Mfit)
# ## End(Not run)
Run the code above in your browser using DataLab