exametrika 1.10.0
Bug Fixes
CAIC (Consistent AIC) Formula Correction
-
Fixed CAIC formula to match Bozdogan (1987) original definition: The CAIC penalty term was
log(n + 1)but should belog(n) + 1per Bozdogan (1987, Psychometrika, 52(3), p.358, Proposition 2, Eq.44). The original Mathematica implementation had this error (Log[nobs + 1]), and the R port inherited it. Both the R version (R/00_ModelFitModule.R) and the Mathematica version (develop/mtmk15forVer13/mod/Module_ModelFit.nb) have been corrected. The numerical difference is approximately 1 (constant), but the corrected formula now matches the published definition:CAIC(k) = -2 log L + k * (log(n) + 1). This affects all models that compute fit indices: IRT, LCA, LRA (binary/ordinal/rated), Biclustering (binary/ordinal/nominal), IRM, BNM, LDLRA, LDB, BINET, and GRM. All 680 tests pass with the corrected formula.
GRM Example Fix
-
Changed GRM examples from
\donttestto\dontrun: GRM’s multi-panel plot examples caused “invalid graphics state” errors in non-interactive environments (pkgdown, CI). Changed to\dontrunto prevent build failures.
dataFormat Robustness Improvements
-
Fixed auto-detection ignoring
CAparameter: WhenCA(correct answer vector) was provided butresponse.typewas not explicitly specified,dataFormat()incorrectly classified the data as"ordinal"instead of"rated". This caused$U(binary scoring matrix) to beNULL. The auto-detection now checks forCAbefore ordinal/nominal detection: binary → rated (if CA provided) → ordinal → nominal. -
Fixed
idparameter not working for column 1: Changediddefault from1toNULL. Previously,id = 1(both default and explicit) triggered auto-detection heuristics, making it impossible to explicitly specify the first column as the ID column. Nowid = NULLtriggers auto-detection, and any numeric value (including1) forces that column to be used as ID. -
Improved ID auto-detection for consecutive integers: Simplified the first-column heuristic to treat unique consecutive integers (e.g.,
1:N) as ID regardless of whether they also look like valid response values. Previously,1:10was misclassified as response data becauselooks_like_response_data()returned TRUE. -
Fixed missing values in rated
Umatrix: When the response matrix contained missing values (-1), the binary scoring matrixUincorrectly scored them as0(incorrect) instead of-1(missing). NowU[i,j] = -1whenQ[i,j] = -1. -
Fixed
drop=FALSEmissing in item exclusion: When items were excluded due to invalid variance (e.g., containingInf), the column subsettingresponse.matrix[, mask]dropped matrix dimensions if only one item remained, causing a crash. Addeddrop = FALSE. -
Added diagnostic messages:
dataFormat()now reports viamessage()when it detects problematic data:- Items with all missing values
- Items with zero variance (constant response values)
- Students with all missing responses
BINET g_list / adj_list Input Path Fix
-
Fixed
g_csvvariable undefined error when usingg_listoradj_listinput:BINET()crashed with an undefined variable error at the graph construction step when the DAG was specified viag_listoradj_listparameters. The internal variableg_csv(used to build the integrated graph objectall_g) was only defined in theadj_filecode path. Added logic to reconstructg_csvfromadj_listfor theg_listandadj_listinput paths, ensuringall_gis correctly built with Field edge attributes regardless of input method. -
Fixed
g_list/adj_listlength validation: The length check forg_listandadj_listincorrectly compared againstncls(number of classes) instead ofnfld(number of fields). In BINET, each element ofadj_listrepresents the DAG structure at a specific field, so the list length should equalnfld. Also fixedg_listtype check fromg_list[[1]](always checking the first element) tog_list[[j]](checking each element).
Biclustering_IRM Seed Default
-
Reverted
Biclustering_IRM()seed default back to 123: Ensures reproducibility by default.
New Features
Confirmatory LCA/LRA (Test Equating)
-
LCA()andLRA()now support aconfparameter for confirmatory analysis: Theconfargument accepts an IRP matrix (ncls/nrank x testlength) where non-NA values are held fixed throughout EM estimation and NA values are freely estimated. This enables test equating scenarios where anchor items retain their known IRPs while new items are calibrated against them. -
Label-based item matching: When
confhas column names, items are matched by label rather than by position. This allowsconfto contain a subset of items (anchor items only) or items in a different order than the data. Items in the data but not inconfare automatically set to freely estimated. Unknown labels inconfproduce an informative error. - Works with both GTM and SOM methods for LRA.
Internal Refactoring: SOM Estimation
-
Extracted SOM estimation into
somclus()internal function: The Self-Organizing Maps estimation code previously inlined inLRA.binary()(~100 lines) has been extracted into a standalone internal functionsomclus()in00_EMclus.R. This parallelsemclus()(GTM/EM) and returns the same structure. Also fixed a pre-existing typo (h_cout→h_count) and another (oldsBIC→oldBIC).
Test Suite Modernization
-
Complete migration from Excel to CSV fixtures: Removed all 14 legacy test files that depended on
tidyverseandreadxlfor reading Excel-based Mathematica reference data. Replaced with 23 modern test files using base Rread.csv()andtest_path()to load CSV fixtures fromtests/testthat/fixtures/mathematica_reference/. The new test suite has zero external package dependencies beyondtestthat. -
Removed
readxl/tidyversefrom test dependencies: DESCRIPTIONSuggestsno longer requires any packages beyondknitr,rmarkdown, andtestthat. - Fixture file reorganization: Shortened overly long CSV fixture filenames to comply with CRAN’s 100-byte portable path requirement.
- Test coverage: 23 test files covering all models (CTT, IRT 2PL/3PL/4PL, LCA, LRA binary/ordinal/nominal, Biclustering binary/ordinal/nominal, IRM, BNM, LDLRA, LDB, BINET, GRM, GridSearch, dataFormat, polychoric correlation, scoring, student/test analysis). 85 Mathematica reference CSV files for cross-validation.
Internal Improvements
- pkgdown migration: Migrated documentation site from Jekyll (main/docs) to pkgdown (gh-pages branch via GitHub Actions).
- CI/CD: Added GitHub Actions workflows for automated R CMD check, test coverage reporting, and pkgdown site deployment.
-
.Rbuildignore cleanup: Removed
^tests$and^inst$entries that were incorrectly excluding tests and vignettes from the built package.
exametrika 1.9.0
Bug Fixes
GridSearch index Parameter Fixes
-
Index alias support:
GridSearch()now accepts common aliases for fit indices."loglik","log_lik","LogLik", and"LL"are mapped to"model_log_like"."Chi_sq"and"chi_sq"are mapped to"model_Chi_sq". Previously, using these aliases caused silentNULLextraction and eventual errors. -
Early validation: Invalid index names are now caught immediately at the start of
GridSearch(), before the computationally expensive grid search loop runs. The error message lists all valid options including available aliases. -
Log-likelihood optimization direction:
model_log_likeis now correctly treated as a maximization target (larger log-likelihood = better fit). Previously, it was incorrectly placed in the minimization group, which would have selected the worst-fitting model.
Test Tolerance Fix
-
Q3 matrix test: Changed the 2PL Q3 matrix test from relative tolerance (
tolerance = 1e-2inexpect_equal) to absolute difference comparison (threshold 0.005). Q3 residual correlations include values near zero where relative tolerance comparisons are unreliable.
NAMESPACE Fix
-
Missing imports: Added
layoutandplot.newfromgraphicsto NAMESPACE. These functions are used by the legend strip layout helpers for polytomous Biclustering plots.
LRA.ordinal / LRA.rated Category Computation Fix
-
Fixed
apply(U$Q, 2, unique)returning matrix instead of list: When all items have the same number of response categories (e.g., all 5-point Likert),apply()returns a matrix rather than a list. The subsequentlapply()then iterates over individual elements instead of per-column vectors, causingncatto be a vector of 1s and crashing the algorithm. Replaced withlapply(seq_len(nitems), function(j) sort(unique(U$Q[, j])))which always returns a proper list. Same fix applied tocatfreq999computation. BothLRA.ordinalandLRA.ratedwere affected.
GRM ItemFitIndices Computation Fix
-
Fixed
apply(tmp$Q, 2, table)returning matrix instead of list: Same class of bug as the LRA.ordinal/LRA.rated fix above. InGRM(), the null model log-likelihood computation usedapply(tmp$Q, 2, table)to compute per-item category frequencies. When all items have the same number of response categories (e.g., all 5-point Likert),apply()returns a matrix instead of a list, causingresponse_list[[j]]to extract a single number rather than the full frequency table. This produced incorrectnull_log_likevalues and consequently wrong chi-square statistics, RMSEA, TLI, and CFI inItemFitIndices. Replaced withlapply(seq_len(nitems), function(j) table(tmp$Q[, j]))which always returns a proper list.
LRA.ordinal Mixed Category Count Validation
-
Added input validation for mixed category counts:
LRA.ordinal()now raises an informative error when items have different numbers of response categories (e.g., some items with 3 categories and others with 5). The internal matrix algebra uses fixed-stride indexing that assumes uniform category counts. The error message suggests alternatives (LRA.rated,Biclustering.ordinal) that support mixed category counts via list-based designs.
LCA/LRA FRP Plot Type Removal
-
Removed “FRP” from valid plot types for LCA and LRA: Field Reference Profile (FRP) requires a field structure (item grouping), which LCA and LRA do not have. Previously,
plot(lca_result, type = "FRP")passed validation but failed at runtime because the$FRPfield does not exist in LCA/LRA return values. Now properly rejected with an informative error message at the validation stage.
New Features
New Sample Datasets for Polytomous Biclustering
- J35S500: Simulated ordinal dataset (500 students, 35 items, 5 categories) with a cumulative staircase pattern (5 latent classes, 5 fields). Contains approximately 0.5% missing values.
- J20S600: Simulated nominal dataset (600 students, 20 items, 4 categories) with a cyclic category preference pattern (5 latent classes, 4 fields). Contains approximately 0.5% missing values.
New Plot Types for Polytomous Biclustering
-
FRP (Field Reference Profile): Expected score line plot per field, with
statparameter supporting"mean"(default),"median", and"mode". -
FCRP (Field Category Response Profile): Category probability plot per field, with
styleparameter supporting"line"(default) and"bar"(stacked bar chart). - FCBR (Field Cumulative Boundary Reference): Boundary probability plot per field (ordinal Biclustering only).
- ScoreField: Heatmap of expected scores across fields and latent classes/ranks.
-
RRV (Rank Reference Vector): Transposed view with fields on x-axis and expected scores on y-axis, with
statparameter.
FRPIndex for Ordinal Biclustering
- Ordinal Biclustering now computes
FRPIndex(Field Reference Profile indices) including location parameters (Alpha, Beta), slope parameters (A, B), and monotonicity indices (Gamma, C).
New Parameters for plot.exametrika()
-
stat: Controls the summary statistic for FRP and RRV plots ("mean","median","mode"). -
style: Controls the display style for FCRP plots ("line","bar").
Array Plot Improvements
-
Missing value display: Array plots now display missing values in a distinct color. Binary data uses gray (
#808080) to distinguish from white (incorrect) and black (correct). Polytomous data uses black (#000000) to distinguish from the category color palette.
Print Method Improvements
-
Ordinal Biclustering:
print()now displays FRPIndex (Field Reference Profile Indices) with a note that the values are based on normalized expected scores(E[score]-1)/(maxQ-1).
Documentation Improvements
-
FRPIndex: Expanded documentation for the 6 profile shape indices (Alpha, A, Beta, B, Gamma, C) in
?Biclustering, including detailed definitions and polytomous adaptation logic.
Return Value Structure Unification
Systematic unification of return value structures across all analysis functions for consistency and interoperability.
snake_case Field Names Extended to All Functions
-
LDLRA: Added
n_class(retainingNclassfor backward compatibility) -
LDB: Added
n_rank,n_field(retainingNrank,Nfield) -
BINET: Added
n_class,n_field(retainingNclass,Nfield) -
Biclustering.nominal: Added
n_class,n_field,n_cycle(retainingNclass,Nfield,N_Cycle) -
Biclustering.ordinal: Added
n_class,n_field,n_cycle(retainingNclass,Nfield,N_Cycle) -
Biclustering_IRM: Added
n_cycle,N_Cycle(retainingem_cycle,EM_Cycleas IRM-specific aliases)
Top-Level log_lik Added to All Functions
- All analysis functions now consistently provide
log_likat the top level of the return object, matchingTestFitIndices$model_log_like. - Functions updated: IRT, LCA, LRA.binary, BNM, LDLRA, LDB, BINET, Biclustering.binary, Biclustering_IRM
TestFitIndices Structure Unified
-
GRM, Biclustering.nominal, Biclustering.ordinal: TestFitIndices now uses the full 16-field structure with
ModelFitclass, matching the format used by IRT/LCA/LRA and other functions. Previously these used barecalcFitIndices()output (9 fields, no class). Added fields:model_log_like,bench_log_like,null_log_like,model_Chi_sq,null_Chi_sq,model_df,null_df. -
GRM ItemFitIndices: Also unified to the full 16-field structure with
ModelFitclass. -
BINET:
TestFitIndicesadded as primary name for multigroup fit indices (previously onlyMG_FitIndices).MG_FitIndicesretained as backward-compatible alias.SM_FitIndices(saturated model) remains unchanged.
Students Matrix Enhanced
-
Biclustering.nominal: Added
Estimatecolumn (most probable class assignment) to the Students matrix. -
Biclustering.ordinal: Added
Estimatecolumn (most probable class assignment) to the Students matrix.
Other Structural Improvements
-
Biclustering_IRM: Added
FRPIndex(Field Reference Profile indices) for consistency with Biclustering.binary and LDB. -
LDB: Fixed
TRPfrommatrix(1×ncls)tonumeric vector, consistent with all other functions. -
GridSearch: Added
class = c("exametrika", "GridSearch")to return value for method dispatch support.
Bug Fixes
-
LCA
msgfield assignment: Fixedmsg <- "Class"tomsg = "Class"insidestructure()call (line 150 of05_LCA.R). The<-operator was being interpreted as a standalone assignment rather than a named list element, causing themsgfield name to be empty. -
RMP/CMP single student plot error: Fixed dimension drop error when plotting RMP or CMP for a single student (e.g.,
plot(r, type="RMP", students=1)). Addeddrop = FALSEto prevent matrix-to-vector coercion when extracting a single row from the Students matrix. -
LRA.ordinal / LRA.rated
TestFitIndiceslog-likelihood fields: Fixednull_log_likewhich incorrectly stored the saturated model log-likelihood (log_lik_satu) instead of the null model log-likelihood (sum(null_itemll)). Added missingbench_log_likefield containing the saturated model log-likelihood (sum(satu_itemll2)). Note: the chi-square-based fit indices (NFI, CFI, TLI, RMSEA, AIC, BIC, etc.) were always computed correctly; only the stored log-likelihood labels were affected. -
LRA.ordinal / LRA.rated FitIndices structure: Unified
TestFitIndicesandItemFitIndicesto the standard 16-field structure withModelFitclass (c("exametrika", "ModelFit")), matching all other analysis functions. Addedmodel_log_like,bench_log_like,null_log_liketoItemFitIndices. RemovedScoreRankCorr/RankQuantCorrfromTestFitIndices(already available at the top level of the return object). -
LRA.ordinal / LRA.rated test updates: Updated
test-12OLR.Randtest-13NLR.Rto handle the newModelFitclass (addunclass()beforeas.data.frame()) and adjusted column/index references to match the unified 16-field structure.
Plot Layout Improvements
-
Legend strip layout: Moved per-panel legends to a shared legend strip below the plot area for FCRP (line/bar), FCBR, GRM IRF, and IRT overlay (IRF/IIF) plots. Uses
layout()with a thin dedicated row (height ratio 0.2) to reduce visual clutter in data panels. Addedsetup_legend_layout()anddraw_legend_strip()internal helper functions. -
FCBR reference line: Added
P(Q>=1)=1.0reference line at the top of FCBR plots for visual completeness.
exametrika 1.8.1
CRAN release: 2026-02-17
Bug Fixes
dataFormat Function
-
Fixed factor ID column detection:
dataFormat()now correctly identifies factor-type ID columns before converting factors to numeric. Previously, the factor-to-numeric conversion occurred before ID detection, causing factor ID columns with many levels (>=20) to trigger a “Too many categories” error instead of being recognized as IDs. -
Removed unused helper function: Removed dead code (
is_response_data()) that was defined but never called.
GridSearch Function
-
Fixed ordinal data support: GridSearch now correctly handles ordinal data by using
obj$Qinstead ofobj$Ufor test length calculation - Resolved nfld=1 parameter issue: Eliminated invalid parameter ranges that caused crashes with ordinal datasets
Biclustering.ordinal Function
-
Enhanced numerical stability: Added
pmax(Ufcq_prior, 1e-10)to prevent division by zero and NaN errors - Fixed convergence failures: Resolved “missing value where TRUE/FALSE needed” errors in specific parameter combinations (e.g., ncls=4 with nfld=5)
- Improved robustness: Algorithm now handles edge cases where field membership probabilities approach zero
exametrika 1.8.0
CRAN release: 2025-12-10
Naming Convention Improvements
This release improves naming consistency across the package while maintaining full backward compatibility through a deprecation path.
New Field Names (Recommended)
All analysis functions now return results with snake_case field names for better consistency:
-
n_class- Number of latent classes (replacesNclass) -
n_field- Number of latent fields (replacesNfield) -
n_rank- Number of latent ranks (replacesNrank) -
n_cycle- Number of EM iterations (replacesN_Cycle) -
log_lik- Log-likelihood value (replacesLogLik)
Deprecated Field Names (Still Supported)
The old field names continue to work for backward compatibility:
-
Nclass,Nfield,Nrank,N_Cycle,LogLik- Deprecated but functional - These fields will be removed in version 2.0.0
- Please update your code to use the new snake_case names
Output Formatting Improvements
Progress messages now display properly in R Markdown documents:
-
GridSearch() - Added
verboseparameter (default:TRUE)- Output organized by row:
ncls = 2: nfld=2 nfld=3 nfld=4 ... - Set
verbose = FALSEto suppress all progress messages
- Output organized by row:
-
Biclustering_IRM() - Improved iteration display
- Format:
iter 1: match=0 nfld=15 ncls=30 - Class adjustment messages:
Adjusting classes: BIC=-99592.5 ncls=21 (min size < 20)
- Format:
-
LRA.ordinal() - Fixed verbose behavior
- Changed default from
verbose = TRUEtoverbose = FALSE(consistent with binary/rated versions) - Saturation Model:
Saturation Model - iter 1: log_lik=-1.234567 - Restricted Model:
Restricted Model - iter 1: log_lik=-0.987654
- Changed default from
-
LRA.rated() - Fixed verbose behavior
- Changed default from
verbose = TRUEtoverbose = FALSE(consistent with binary/ordinal versions) - Same improved format as LRA.ordinal
- Changed default from
All progress messages now use proper line breaks instead of carriage returns, ensuring clean output in R Markdown/knitr documents and web documentation.
Bug Fixes
- Fixed Array plot color mapping for binary data
- Used
sort(unique(...))to ensure consistent ordering: 0 (white/incorrect) → 1 (black/correct) - Previously, color mapping could be reversed depending on data order
- Used
- Fixed Ranklustering Array plot sorting order
- Students with higher correct response rates now appear at the bottom of the plot
- Previously, high performers were incorrectly placed at the top
exametrika 1.7.0
CRAN release: 2025-11-22
- Renamed IRM() to Biclustering_IRM() for consistency with structure learning naming conventions
- Follows the same pattern as BNM_GA(), LDLRA_PBIL(), etc. (model_method naming)
- IRM() function still works but is now deprecated with a warning using .Deprecated()
- The new name clarifies that this function performs Biclustering structure learning using the Infinite Relational Model
- All documentation and examples updated to use Biclustering_IRM()
- Added .Deprecated() warnings to renamed functions from version 1.6.5
- StrLearningGA_BNM() now shows deprecation warning, recommending BNM_GA()
- StrLearningPBIL_BNM() now shows deprecation warning, recommending BNM_PBIL()
- StrLearningPBIL_LDLRA() now shows deprecation warning, recommending LDLRA_PBIL()
- Old function names still work for backward compatibility but display warnings
exametrika 1.6.5
CRAN release: 2025-11-06
- Critical bugfix for LCA() response type validation
- Fixed incorrect variable reference in response type checking
- Added beta1 and beta2 parameters to all Beta distribution-based functions
- LRA.binary(): beta1=1, beta2=1 (GTM method)
- LCA(): beta1=1, beta2=1
- Biclustering.binary(): beta1=1, beta2=1
- BNM(): beta1=1, beta2=1
- LDB(): beta1=1, beta2=1
- LDLRA(): beta1=2, beta2=2
- LD_param_est(): beta1=2, beta2=2 (internal helper function)
- LDLRA_PBIL(): beta1=2, beta2=2
- These parameters control the prior density parameters in Bayesian parameter estimation
- Users can now customize Beta distribution parameters for EM algorithm parameter updating
- Default values preserve backward compatibility with previous versions
- Added alpha parameter to polytomous models for Dirichlet prior control
- Biclustering.ordinal(): alpha=1 (flat Dirichlet prior)
- Biclustering.nominal(): alpha=1 (flat Dirichlet prior)
- These parameters control the concentration parameter for Dirichlet priors in category probability estimation
- Users can customize Dirichlet parameters to adjust prior strength (alpha > 0)
- Default values (alpha=1) preserve backward compatibility with previous versions
- Simplified function names for structure learning functions
- StrLearningGA_BNM() renamed to BNM_GA()
- StrLearningPBIL_BNM() renamed to BNM_PBIL()
- StrLearningPBIL_LDLRA() renamed to LDLRA_PBIL()
- Shorter, more intuitive function names for improved usability
- All documentation and examples updated accordingly
exametrika 1.6.4
- Critical bugfix for Biclustering() field initialization
- Fixed subscript out of bounds error when nfld values cause ceiling() to exceed nfld
- Added pmin() constraint to ensure fld0 values never exceed nfld parameter
- Resolves crashes with specific nfld/testlength combinations (e.g., nfld=15, testlength=21)
- Enhanced GridSearch() fit index optimization logic
- Added support for all fit indices returned by TestFitIndices()
- Correctly handles minimization indices: model_log_like, model_Chi_sq, RMSEA, AIC, CAIC, BIC
- Correctly handles maximization indices: NFI, RFI, IFI, TLI, CFI
- Added validation to prevent unknown index specification
exametrika 1.6.3
CRAN release: 2025-09-30
- Major performance enhancement for GRM (Graded Response Model)
- Replaced R implementation with high-performance C++ code using Rcpp
- Implemented analytical gradient computation for significant speed improvements
- Achieved 5-6x faster convergence compared to numerical differentiation
- Maintains identical mathematical accuracy to previous implementation
- Full compatibility with existing GRM() function interface
- Added
convergevariable to all EM-based functions to indicate algorithm convergence status- Functions affected: Biclustering(), LCA(), LRA(), and related methods
- Returns TRUE if converged within maxiter iterations, FALSE otherwise
- Displays convergence warning messages when maxiter is reached
- Enhanced GridSearch() function with convergence handling
- Automatically excludes non-converged results from optimization
- Displays warning messages for parameter combinations that failed to converge
- Returns list of failed settings in output
- Terminates with error message if all parameter combinations fail to converge
- Improved numerical stability in Biclustering()
- Implemented conditional pmax() application to avoid unnecessary log-likelihood inflation
- Applied numerical correction only when NaN/Inf values are detected
- High-performance polychoric correlation computation
- Implemented C++ acceleration for polychoric correlation calculations
- Achieved significant speed improvements over R-based implementation
- Improved Array-type plot visualization with enhanced color palette
- Replaced dull default colors with vibrant, high-contrast color palette
- Added colorblind-friendly color scheme for better accessibility
- Binary data (2 categories) now uses black and white for optimal contrast
- Multi-category data uses enhanced colorblind-accessible palette
exametrika 1.6.1 on Aug 26, 2025
CRAN release: 2025-08-27
- Biclustering: Fixed improper handling of missing values
exametrika 1.6.0 on Aug 12, 2025
CRAN release: 2025-08-19
- Biculustring.norminal is available!
- Biclustering.ordinal is available!
- New function GridSerch() for grid search optimization of model parameters
- Bugfix: Fix output typos(class/rank)
- Added duplicate ID validation to dataFormat()
- Bugfix: Fix ID column detection in dataFormat()
- Bugfix: Fix stanine division error when unable to split data
exametrika 1.4.4 on March 3, 2025
- In Exametrika 1.4.1, bug fixes were made.
- In 1.4.2, it became possible to calculate polychoric correlation and polyserial correlation.
- In 1.4.3, item analysis for polytomous items became available.
- In 1.4.4, we renamed “ICC” to “IRF,” although they refer to the same concept (Item Characteristic Curves and Item Response Functions are interchangeable terms). The function will interpret “ICC” input as “IRF” automatically. Additionally, Test Response Function (TRF) output was also made available.
exametrika 1.3.0 on Feb 11, 2025
Added implementation of latent rank model for ordinal scale data
-
New function LRA() now supports ordinal response data
- Added visualization methods for ordinal scale analysis:
- Score frequency with rank thresholds (ScoreFreq)
- Score-rank probability heatmap (ScoreRank)
- Item category boundary reference (ICBR)
- Item category response profile (ICRP)
- Added visualization methods for ordinal scale analysis:
Bug fixes and improvements
Standardized terminology: unified the usage of “class” and “rank” throughout the package
Various minor bug fixes
Exametrika 1.2.0 on Jan 30, 2025.
CRAN release: 2025-01-31
- Improved numerical stability for model estimation
- Bug fixes for log-likelihood calculation
Exametrika 1.1.0 on Oct 30, 2024.
CRAN release: 2024-11-22
- Added support for polytomous response data
Exametrika 1.0.2 on Aug 17, 2024.
- Bug fix for Issue #12
Exametrika 1.0.1 on July 31, 2024.
- Bug fix for Item Total Correlation
- Bug fix for Fit indices
- New function called ItemStatistics
Exametrika 0.9.0 on October 17, 2023.
- Added Structure Learning for LDLRA using PBIL
- Added LDLRA model
