dart_irt

pub
package

A pure Dart library for Item Response Theory (IRT).
Supports Rasch (1PL), 2PL, 3PL dichotomous models, RSM/PCM polytomous models, EM/MML estimation, DIF (Mantel--Haenszel), CAT helpers, person estimators (EAP/MLE/WLE), fit indices and simulation utilities.

✨ Features

  • Rasch (1PL), 2PL, 3PL models\
  • Rating Scale Model (RSM) & Partial Credit Model (PCM)\
  • Expectation--Maximization (EM) & Marginal Maximum Likelihood (MML)\
  • DIF analysis (Mantel--Haenszel)\
  • Computerized Adaptive Testing (CAT) helpers\
  • Person estimators: EAP, MLE, WLE\
  • Fit indices (Infit/Outfit, person-fit U)\
  • Simulation utilities for test data

📦 Installation

Add to your pubspec.yaml:

dependencies:
  dart_irt: ^0.0.1

Then run:

dart pub get

🚀 Usage

import 'package:dart_irt/dart_irt.dart';

void main() {
  final rasch = RaschEM();
  final data = IrtSim.raschResponses(
    persons: 300,
    b: [-1.0, 0.0, 1.0],
    missingRate: 0.05,
    seed: 42,
  );
  final result = rasch.fit(data);

  print('Item difficulties: ${result.b}');
  print('Person abilities (EAP): ${result.thetaEap.take(5).toList()}');
}

📂 Example

Check the example/ folder for full demos.

📜 License

MIT License -- see LICENSE.

Libraries