← Back to all sparks
E

exametrika

INFRA · APIS
Velocity0.0

A test-theory package that grew into a graphical-model toolkit, now spending its releases paying down the API debt that growth created.

psychometricsirtbiclusteringapi-consistencycranr-package
Current state
exametrika is an R psychometrics package covering IRT, latent class/rank analysis, and biclustering, and it has been shipping features at an unusual clip for a CRAN package. The last two releases stopped adding capability and turned inward: 1.14.0 fixed a documented-but-never-implemented graphical-parameter passthrough, and 1.15.0 landed a full-codebase audit that corrected bugs which silently produced wrong results on missing data and 0-indexed polytomous codes. Argument names, orders, and defaults are now unified across the model functions, with every old name kept working behind a deprecation warning.
Where it's heading
The arc runs from feature sprawl to consolidation. Through 1.9.0-1.13.0 the package added polytomous biclustering plots, nominal and ordinal IRM samplers, a C++ Gibbs core, and Graphical Lasso; the cost was inconsistent interfaces and correctness bugs that only surfaced under audit. The maintainer is also visibly optimizing for two external gatekeepers — CRAN's 10-minute check budget in 1.13.1, an R Journal reviewer in 1.14.0 — which suggests the package is being groomed for formal publication rather than just iterated on.
Prediction
Expect the next release to continue the deprecation cleanup started in 1.15.0, likely retiring some of the old function names that have carried warnings since 1.7.0, with new modelling work paused until the R Journal submission clears.

Recent moves

  1. 1mo ago

    Full-codebase audit fixes silent result corruption, unifies arguments

    The consolidation release the feature run since 1.9.0 was always going to need. Beyond the argument-name and default unification, it fixes bugs that silently corrupted results on data with missing responses or 0-indexed polytomous categories — a correctness class that matters more than the API tidying it shipped alongside.

    View source ↗
  2. 2mo ago

    Plot methods finally forward the graphical parameters they documented

    Graphical parameters passed through the dots to plot.exametrika() were captured and discarded despite being documented, so las, pch and cex silently did nothing on every plot type. The fix arrived via an R Journal review request, which places this release in the package's grooming-for-publication phase rather than its feature phase.

    View source ↗
  3. 3mo ago

    CRAN resubmission: slow tests skipped to fit the check budget

    A resubmission of 1.13.0 that exists only because a Windows check ran 11 minutes against CRAN's 10-minute ceiling; the slowest GRM and IRM test blocks now carry skip_on_cran(). The notes state there are no user-visible changes, and coverage is unchanged off-CRAN.

    View source ↗
  4. 3mo ago

    Graphical Lasso and Chatterjee's xi extend the package into network estimation

    ⚡ SPARK

    The release where exametrika stops being purely a test-theory package. Graphical Lasso brings sparse precision-matrix estimation to ordinal item response data, and Chatterjee's xi arrives with the asymmetry between xi(j,k) and xi(k,j) explicitly framed as a direction-detection signal for building graphical models — a different analytical target than the IRT and biclustering work that preceded it.

    View source ↗
  5. 3mo ago

    Frozen research baseline, never released to CRAN

    A tag cut to freeze the codebase behind a polytomous biclustering simulation study, not a distribution release. Its changes reached users only later, folded into 1.13.0.

    View source ↗
  6. 5mo ago

    Nominal and ordinal IRM samplers, with generic dispatch by data type

    Biclustering's Infinite Relational Model gains nominal and ordinal variants sharing a Gibbs core, with an S3 generic dispatching on data type so callers do not pick the sampler themselves. This broadens an existing model family to more response formats rather than opening a new one, and it sets up the polytomous visualization and speed work that follows.

    View source ↗