infometrics 0.3.0

Bug fix: linreg() / inverse_noise() silently returned support vertices in large samples

Both functions defaulted the noise support to a fixed three-sigma rule, v = c(-3s, 0, 3s) with s = sd(y). Because the largest of T errors grows like sigma * sqrt(2 log T), that support becomes infeasible once T is more than a few thousand: y can no longer be written as X beta + e within the supports, the concentrated dual is then unbounded below, the multipliers diverge, and the estimates collapse to a vertex of the support (e.g. beta = (3, -3, 3), or p = (0, 1, 0)) – while optim() still reported convergence = 0 and no warning was given.

Two changes fix this:

Behaviour change: fits that relied on the default v with more than about 90 observations will shift slightly, since the default support is now a little wider (results were unchanged to two decimals at n = 30-150 in testing).

linreg_iv() now reports standard errors

linreg_iv() gains standard errors for the coefficients via a new se_method argument: "sandwich" (default, robust HC0), "delta" (classical homoskedastic), "bootstrap" (pairs resampling), or "none". \beta = Zp is a Z-estimator of the instrument moments, so Var(beta) = J A^-1 Omega A^-1 J'. Validated against a Monte-Carlo sampling SD and the 2SLS robust-SE limit (the sandwich matches both; the classical delta assumes homoskedasticity). Adds a vcov() method (type = "sandwich"/"delta") and an Estimate | Std. Error | z | Pr(>|z|) table in summary(). These are asymptotic SEs: the sampling distribution of beta is support-bounded and can be skewed, so Wald intervals are approximate with weak instruments or small n.

linreg() normalized entropy is now prior-relative

linreg()’s reported normalized entropy S now uses the prior as the reference, S = H(p_hat) / H(p0) (Golan 2008, Sec. 6.4), matching matrix_ce(), markov_ce(), and inverse_noise(). For a uniform prior this is unchanged (H(p0) = K log M, so GME output is identical); for an informative p0 (GCE) S is measured against that prior and can exceed 1 when the data are less informative than the prior.

New vignette

A second vignette, Generalized Maximum Entropy and Cross-Entropy for the Linear Model, demonstrates linreg() and linreg_iv(): GME versus OLS under collinearity, GCE with an informative prior, the entropy weight nu, the normalized-entropy / entropy-ratio / pseudo-R-squared and Wald diagnostics, and an instrumental-variables example.

Package scope reduced for CRAN submission

The package now focuses on the Generalized Maximum Entropy (GME) and Generalized Cross-Entropy (GCE) estimator family. The following functions were removed: me(), gme(), me_mnl(), gme_mnl(), gce_clogit(), gce_clogitWrap(), and gce_table(). The retained estimators are inverse_ce(), inverse_noise(), linreg(), linreg_iv(), panel_gce(), matrix_ce(), matrix_gce(), markov_ce(), markov_gce(), multinomial_gce(), and mixed_gce().

The entropy.R module was trimmed to shannon_entropy(); the divergence measures kl_divergence(), renyi_entropy(), renyi_divergence(), tsallis_divergence(), cressie_read(), and normalized_entropy() were removed. The deprecated inverse_pure() alias was also dropped — use inverse_ce() directly.

inverse_ce() (was inverse_pure())

inverse_noise()

infometrics 0.2.0

Phase 2 — GME/GCE regression estimator

New functions

GME / GCE estimator (R/gme.R):

References

Golan, A., Judge, G. and Miller, D. (1996). Maximum Entropy Econometrics. Wiley.


infometrics 0.1.0

Phase 1 — Initial release

New functions

Entropy measures (R/entropy.R):

ME / CE estimator (R/me.R):

Utilities (R/utils.R):

References

Golan, A. (2008). Information and Entropy Econometrics — A Review and Synthesis. Foundations and Trends in Econometrics, 2(1-2), 1-145.