## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set(echo = TRUE, collapse = TRUE, comment = "#>") ## ----lib---------------------------------------------------------------------- library(infometrics) ## ----me-die------------------------------------------------------------------- dice <- data.frame(y = 4.5, s1 = 1, s2 = 2, s3 = 3, s4 = 4, s5 = 5, s6 = 6) fit_me <- inverse_ce(y ~ s1 + s2 + s3 + s4 + s5 + s6 - 1, data = dice) round(coef(fit_me), 4) # p_hat over the six faces ## ----me-check----------------------------------------------------------------- sum(1:6 * coef(fit_me)) # reproduces the mean 4.5 c(H_phat = shannon_entropy(coef(fit_me)), H_max = log(6)) ## ----ce-uniform--------------------------------------------------------------- fit_unif <- inverse_ce(y ~ s1 + s2 + s3 + s4 + s5 + s6 - 1, data = dice, p0 = rep(1 / 6, 6)) max(abs(coef(fit_unif) - coef(fit_me))) # ~ 0: ME == CE(uniform prior) ## ----ce-prior----------------------------------------------------------------- p0_load <- c(.05, .05, .10, .15, .25, .40) # prior beliefs favouring high faces fit_ce <- inverse_ce(y ~ s1 + s2 + s3 + s4 + s5 + s6 - 1, data = dice, p0 = p0_load) round(rbind(ME = coef(fit_me), CE = coef(fit_ce)), 4) sum(1:6 * coef(fit_ce)) # still satisfies the mean moment ## ----info-2mom---------------------------------------------------------------- faces <- 1:6 p_ref <- c(.10, .12, .15, .18, .20, .25) Xm <- rbind(faces, faces^2) # 2 moments x 6 states ym <- as.numeric(Xm %*% p_ref) # feasible (mean, 2nd moment) d2 <- data.frame(y = ym, s1 = Xm[, 1], s2 = Xm[, 2], s3 = Xm[, 3], s4 = Xm[, 4], s5 = Xm[, 5], s6 = Xm[, 6]) fit2 <- inverse_ce(y ~ s1 + s2 + s3 + s4 + s5 + s6 - 1, data = d2) summary(fit2) ## ----info-se------------------------------------------------------------------ vcov(fit2) # I^{-1}, the T x T dual covariance fit2$se_lambda # sqrt(diag(vcov)) for lambda fit2$se_p # delta-method curvature SEs for p_hat ## ----Sp----------------------------------------------------------------------- c(ME = fit_me$S, CE = fit_ce$S) ## ----fano--------------------------------------------------------------------- fano_bounds(fit2)