midr 0.6.0
CRAN release: 2026-03-08
- Implemented collection objects such as “midlist” and “midrib”, along with manipulation functions like
midlist(), and corresponding visualization functions. This enables the comparison of multiple interpretation models, as well as the interpretation of survival models and multi-class classification models. - Renamed long class names to shorter abbreviations (“mid.importance” to “midimp”, “mid.breakdown” to “midbrk”, and “mid.conditional” to “midcon”).
midr 0.5.3.904
- Fixed memory issues in
get.link()and added support for parametric link functions (including Box-Cox, Yeo-Johnson, Robit, and Scobit).
midr 0.5.3.903
- Multivariate Response Support:
interpret()now accepts a matrix for the response variabley, allowing for simultaneous modeling of multiple responses. - Introduction of “midlist”: Implemented the “midlist” class to handle multiple MID models efficiently. Methods such as
predict()andmid.effect()have been vectorized to handle “midlist” objects using optimized matrix operations. - Performance Optimization: Significant reduction in compilation time and binary size by removing the heavy dependency on RcppEigen headers for the core Laplacian smoothing algorithm.
midr 0.5.3.902
- The
digitsargument ofinterpret()now defaults toNULL. -
get.yhat()has new method forworkflowobjects.
midr 0.5.3.901
- Updated
interpret()and encoder generators to enhance the variable encoding functionality, introducing new arguments:splitfor numeric variables andlumpfor factor variables. - The
catchallandencoding.digitsarguments are renamed toothersanddigits; theuse.catchallargument is deprecated.
midr 0.5.3.900
- Fixed incorrect calculation in
interpret()whensingular.ok = TRUE(or, more directly,weighted.norm = TRUE) andlambda > 0. - Modified weights calculation to enhance the numerical stability.
midr 0.5.3
CRAN release: 2026-01-16
Fourth release on CRAN. This version introduces significant memory efficiency improvements for large-scale data analysis.
Major Improvements
- Optimized fitting process: Enhanced the space (and time) complexity when constructing large design matrices, especially for datasets with many observations.
- Memory-efficient estimation: Introduced the
save.memoryoption ininterpret(). - Improved design matrix constraints: Replaced the
max.ncolargument withmax.nelementsininterpret()to provide more intuitive control over the memory consumption of the design matrix.
Other Enhancements
- Memory-free prediction engine: Re-implemented the prediction logic to avoid storing massive term effect matrices, significantly reducing the memory usage of
interpret()andpredict.mid(). - Flexible formatting:
plot.mid.breakdown()andggmid.mid.breakdown()now supportformat.argsand enhancedlabel.formatfor better visualization control. - CRAN compatibility: Updated various internal functions to ensure consistent behavior with the ‘stats’ package (especially with
stats::terms()) and improved documentation clarity.
midr 0.5.2.907
- Updated
interpret()to improve space and time complexity of constructing the design matrix.
midr 0.5.2.906
- The
formatargument inmid.breakdown()is deprecated. -
plot.mid.breakdown()andggmid.mid.breakdown()now have a new argumentformat.args, which is passed tobase::format()to format the predictor values stored in “mid.breakdown” objects. - The
formatargument inplot.mid.breakdown()andggmid.mid.breakdown()is renamed tolabel.format. The formatting strings now support more flexible formats, such as “%t=%v, %t=%v” for interactions.
midr 0.5.2.905
- Updated
ggmid.mid.importance()andplot.mid.importance()to modify appearance of the plots when color themes are applied.
midr 0.5.2.904
- Memory-efficient
interpret(): The model object no longer stores the massivefitted.matrix(the term-wise decomposition of the fitted values). - Optimized
predict()engine: Re-implemented the prediction logic using a matrix-free approach. - On-demand Decomposition: Functions like
mid.importance()now perform term-wise decomposition on-the-fly using the new optimized prediction engine. -
mid.importance()introduced a new argumentmax.nkeeps(default: 10,000). While importance scores are calculated using the full dataset for maximum accuracy, the function now optionally retains only a weighted random sample of the term-wise predictions. - Standardized
predictoutputs: Fortype = "terms", the intercept is now stored in theconstantattribute of the returned matrix, aligning with standard R conventions (e.g.,predict.lm). - Removed the redundant
fitted.matrixreference ininterpret.defaultto prevent memory leaks during the estimation process.
midr 0.5.2.903
-
interpret.formula()now supports unevaluated column names for theweightsargument.
midr 0.5.2.902
-
weighted.loss()supports the R-squared metrics by passingmethod = "r2".
midr 0.5.2.901
- Enhanced plotting functions for “mid.importance” objects, allowing users to restrict which terms are displayed.
- Fixed a bug that occurred when a link function is used with a response variable containing
NAvalues.
midr 0.5.2.900
- Updated functions to enhance consistency with the ‘stats’ package, especially with regard to the return value for the
stats::terms()function.
midr 0.5.0.909
- Vectorized the design matrix encoding process in
factor.encoder()andnumeric.encoder()for improved performance. - Unified
weighted.rmse()and its related functions into a single, more versatileweighted.loss()function. - Updated and improved various help documents for clarity and completeness.
- Changed some argument names for consistency (e.g., changed
max.barstomax.terms,max.nrowtomax.rows, etc.). - Deprecated
weighted()and its family functions. - Deprecated
mid.extract()andmid.frames().
midr 0.5.0.908
- Rewrote
color.theme()to significantly enhance its functionality and flexibility.
midr 0.5.0.906
- Fixed a memory leak issue where
numeric.encoder()andfactor.encoder()held an unnecessary reference to the execution environment ofinterpret.default(). - Updated the hex logo and favicons.
midr 0.5.0.905
- Rewrote
interpret.formula()andfactor.encoder()to correctly supportsubsetanddrop.unused.levelsarguments. - Updated
get.yhat()methods to ensure prediction outputs always have the same length as the number of input observations.
midr 0.5.0.904
- Improved the computational efficiency of the parameter interpolation step in
interpret.default().
midr 0.5.0.903
- Fixed a bug in
interpret.default()that caused inconsistency between “fitted.values” and “residuals”. - Fixed an issue in
mid.f()(mid.effect()) to correctly handle vector recycling when an input’s length is 1. - Fixed
autoplot.mid.conditional()to avoid redundant evaluation of the “mid” object. - Updated the automatic determination method for the number of knots (
k) ininterpret(). - Added support for type suffixes in
color.theme()for easier theme specification.
midr 0.5.0.902
- Rewrote
interpret.formula()to resolve environment issues related tostats::model.frame() - Added new tests to cover this improved functionality.
- Refined the default diverging color theme “midr”.
midr 0.5.0.901
- Corrected the “HCL” color theme to be properly categorized as a “qualitative” theme.
- Changed the rounding method used in numeric “encoder” objects.
- Updated the article and examples related to
color.theme().
midr 0.5.0.900
- Default color themes can now be set globally via R options:
midr.diverging,midr.qualitativeandmidr.sequential. - Added the “HCL” color theme and set it as the new default for “qualitative” theme.
- Fixed an issue in
interpret.formula()to ensure the evaluatedformulais correctly stored in the function call.
