Package {leunbachR}


Title: Leunbach Test Equating
Version: 0.1.0
URL: https://github.com/pgmj/leunbachR, https://pgmj.github.io/leunbachR/
BugReports: https://github.com/pgmj/leunbachR/issues
Description: Implements the Leunbach test equating method, following the 'DIGRAM' software written by Svend Kreiner. Both direct and indirect equating are available, with parametric bootstrap standard errors and diagnostic statistics including the Goodman-Kruskal gamma test and orbit analysis for person fit. See Adroher et al. (2019) <doi:10.1186/s12874-019-0768-y> for details of the method.
License: GPL (≥ 3)
Encoding: UTF-8
RoxygenNote: 7.3.3
Depends: R (≥ 3.5.0)
Suggests: knitr, rmarkdown, mirai, testthat (≥ 3.0.0)
VignetteBuilder: knitr
Config/Needs/website: rmarkdown, dplyr, tidyr, ggplot2, knitr, mirt, equate, SNSequate, kequate, brglm2
Config/testthat/edition: 3
NeedsCompilation: no
Packaged: 2026-05-29 10:40:43 UTC; magnus.johansson.3
Author: Magnus Johansson ORCID iD [aut, cre]
Maintainer: Magnus Johansson <pgmj@pm.me>
Repository: CRAN
Date/Publication: 2026-06-02 08:20:02 UTC

leunbachR: Leunbach Test Equating

Description

Implements the Leunbach test equating method, following the DIGRAM software written by Svend Kreiner. Both direct and indirect equating are available, with parametric bootstrap standard errors and diagnostic statistics including the Goodman-Kruskal gamma test and orbit analysis for person fit.

Author(s)

Maintainer: Magnus Johansson pgmj@pm.me (ORCID)

See Also

Useful links:


Adjust gamma and delta parameters (ADJUST_GAMMA from Pascal)

Description

Applies the identification constraints to the score parameters:

  1. Normalize so lowest observed score parameter = 1

  2. Apply log-linear adjustment so product of highest parameters is constrained

  3. Compute sigma (total score parameters)

Usage

adjust_gamma(
  gamma,
  delta,
  test1_scores,
  test2_scores,
  xmin,
  xmax,
  ymin,
  ymax,
  sfra,
  stil,
  smin,
  smax,
  total_scores
)

Analyze Orbits for Leunbach Model

Description

Performs orbit analysis for the Leunbach model. For each total score (orbit), computes the expected distribution of (Test1, Test2) score pairs and cumulative probabilities for assessing person fit.

Usage

analyze_orbits(fit, alpha = 0.05, verbose = FALSE)

Arguments

fit

A leunbach_ipf object from leunbach_ipf()

alpha

Significance level for critical values (default 0.05)

verbose

Print detailed output

Details

For each total score S = X + Y, the orbit consists of all valid (X, Y) pairs. The expected probability of each cell within an orbit is: P(X = x | S = s) = (gamma_x * delta_y) / sigma_s

Cumulative probabilities are computed in both directions:

Value

A list of class "leunbach_orbits" containing:

Examples

set.seed(123)
n <- 400
theta <- rnorm(n)
test1 <- pmin(pmax(round(3 + 1.5 * theta + rnorm(n, sd = 0.8)), 0), 6)
test2 <- pmin(pmax(round(2.5 + 1.3 * theta + rnorm(n, sd = 0.7)), 0), 5)
fit <- leunbach_ipf(data.frame(test1, test2),
                    max_score1 = 6, max_score2 = 5)
orb <- analyze_orbits(fit)
print(orb)


Calculate Bootstrap Standard Error of Equating

Description

Computes the standard error of equating from bootstrap samples using the standard deviation of the bootstrap distribution.

Usage

calculate_bootstrap_see(boot_matrix)

Arguments

boot_matrix

Matrix of bootstrap equated scores (nsim x n_scores)

Value

Named vector of SEE values for each score


Calculate expected score given theta

Description

Calculate expected score given theta

Usage

calculate_expected_score(theta, gamma, score_min, score_max)

Calculate Goodman-Kruskal Gamma and test statistic

Description

Computes Goodman & Kruskal's Gamma coefficient for both observed and expected tables, and tests whether they differ significantly. Gamma measures the strength of association between two ordinal variables. Uses a one-sided test following the DIGRAM implementation.

Usage

calculate_gamma_test(observed, expected, xmin, xmax, ymin, ymax)

Arguments

observed

Observed contingency table

expected

Expected (fitted) contingency table

xmin

Minimum observed Test 1 score

xmax

Maximum observed Test 1 score

ymin

Minimum observed Test 2 score

ymax

Maximum observed Test 2 score

Value

A list containing:


Calculate fit statistics (CALCULATE_STATISTICS from Pascal)

Description

Computes the likelihood ratio test statistic, Goodman-Kruskal Gamma test, and degrees of freedom following the DIGRAM implementation.

Usage

calculate_statistics(object)

Arguments

object

A leunbach_ipf object

Value

A list with fit statistics


Calculate expected (true) score on target test given theta

Description

Calculate expected (true) score on target test given theta

Usage

calculate_true_score(theta, gamma, score_min, score_max)

Compute frequency of bootstrap equating errors

Description

Computes the frequency distribution of equating errors (differences between bootstrap equated scores and observed equated scores) for each source score.

Usage

compute_error_frequencies(boot_rounded, observed_rounded, scores)

Arguments

boot_rounded

Matrix of bootstrap rounded scores (nsim x n_scores)

observed_rounded

Vector of observed rounded scores

scores

Vector of source scores

Value

Matrix of error frequencies (n_scores x 5) for errors -2, -1, 0, +1, +2


Compute indirect equating table using interpolation

Description

Compute indirect equating table using interpolation

Usage

compute_indirect_equating(eq_ab, eq_bc)

Diagnostic function for equating

Description

Diagnoses potential issues with person parameter estimation by displaying theta values and expected scores for each source score.

Usage

diagnose_equating(
  fit,
  direction = c("1to2", "2to1"),
  method = c("optimize", "newton")
)

Arguments

fit

A leunbach_ipf object

direction

Direction of equating: "1to2" or "2to1"

method

Optimization method: "optimize" or "newton"

Value

Invisibly returns NULL; called for its side effect of printing a diagnostic table.

Examples

set.seed(123)
n <- 400
theta <- rnorm(n)
test1 <- pmin(pmax(round(3 + 1.5 * theta + rnorm(n, sd = 0.8)), 0), 6)
test2 <- pmin(pmax(round(2.5 + 1.3 * theta + rnorm(n, sd = 0.7)), 0), 5)
fit <- leunbach_ipf(data.frame(test1, test2),
                    max_score1 = 6, max_score2 = 5)
diagnose_equating(fit, direction = "1to2")


Estimate person parameter (theta) for a given score

Description

Estimates the person parameter theta such that the expected score equals the observed score.

Usage

estimate_person_parameter(
  score,
  gamma,
  score_min,
  score_max,
  method = c("optimize", "newton"),
  tol = 1e-10,
  max_iter = 500
)

Arguments

score

The observed score

gamma

Score parameters (named vector)

score_min

Minimum observed score

score_max

Maximum observed score

method

Optimization method: "optimize" (default) uses stats::optimize() with Brent's method, "newton" uses custom Newton-Raphson with bisection fallback

tol

Convergence tolerance

max_iter

Maximum iterations (only for method = "newton")

Value

Estimated theta value


Estimate theta using bisection method

Description

Estimate theta using bisection method

Usage

estimate_theta_bisection(
  score,
  gamma,
  score_min,
  score_max,
  tol = 1e-06,
  max_iter = 100
)

Estimate theta using Newton-Raphson with bisection fallback

Description

Estimate theta using Newton-Raphson with bisection fallback

Usage

estimate_theta_newton(
  score,
  gamma,
  score_min,
  score_max,
  tol = 1e-07,
  max_iter = 500
)

Estimate theta using stats::optimize() with Brent's method

Description

Estimate theta using stats::optimize() with Brent's method

Usage

estimate_theta_optimize(score, gamma, score_min, score_max, tol = 1e-10)

Calculate expected score and its derivative with respect to theta

Description

Calculate expected score and its derivative with respect to theta

Usage

expected_score_and_deriv(theta, gamma, score_min, score_max)

Find nearest valid equated score

Description

Find nearest valid equated score

Usage

find_nearest_equated(score, lookup, direction = c("down", "up"))

Extract equating table with bootstrap confidence intervals

Description

Extracts equating results from a bootstrap object as a clean data frame with log theta values, confidence intervals and standard errors.

Usage

get_equating_table(boot, direction = c("1to2", "2to1"))

Arguments

boot

A leunbach_bootstrap object

direction

"1to2" or "2to1"

Value

A data frame with equating results and CIs

Examples


set.seed(123)
n <- 300
theta <- rnorm(n)
test1 <- pmin(pmax(round(3 + 1.5 * theta + rnorm(n, sd = 0.8)), 0), 6)
test2 <- pmin(pmax(round(2.5 + 1.3 * theta + rnorm(n, sd = 0.7)), 0), 5)
fit <- leunbach_ipf(data.frame(test1, test2),
                    max_score1 = 6, max_score2 = 5)
boot <- leunbach_bootstrap(fit, nsim = 25, parallel = FALSE, seed = 1)
get_equating_table(boot, direction = "1to2")



Get indirect equating table

Description

Get indirect equating table

Usage

get_indirect_equating_table(boot)

Arguments

boot

A leunbach_indirect_bootstrap object

Value

A data frame with equating results and CIs

Examples


set.seed(123)
n <- 300
theta1 <- rnorm(n)
a <- pmin(pmax(round(3 + 1.5 * theta1 + rnorm(n, sd = 0.8)), 0), 6)
b1 <- pmin(pmax(round(2.5 + 1.3 * theta1 + rnorm(n, sd = 0.7)), 0), 5)
theta2 <- rnorm(n)
b2 <- pmin(pmax(round(2.5 + 1.3 * theta2 + rnorm(n, sd = 0.7)), 0), 5)
cc <- pmin(pmax(round(3 + 1.4 * theta2 + rnorm(n, sd = 0.8)), 0), 6)
fit_ab <- leunbach_ipf(data.frame(a, b1), max_score1 = 6, max_score2 = 5)
fit_bc <- leunbach_ipf(data.frame(b2, cc), max_score1 = 5, max_score2 = 6)
boot <- leunbach_indirect_bootstrap(fit_ab, fit_bc, nsim = 25,
                                    parallel = FALSE, seed = 1)
get_indirect_equating_table(boot)



Get orbit distribution for a specific total score

Description

Get orbit distribution for a specific total score

Usage

get_orbit(orbits, total_score)

Arguments

orbits

A leunbach_orbits object

total_score

The total score to examine

Value

A data frame with the orbit distribution

Examples

set.seed(123)
n <- 400
theta <- rnorm(n)
test1 <- pmin(pmax(round(3 + 1.5 * theta + rnorm(n, sd = 0.8)), 0), 6)
test2 <- pmin(pmax(round(2.5 + 1.3 * theta + rnorm(n, sd = 0.7)), 0), 5)
fit <- leunbach_ipf(data.frame(test1, test2),
                    max_score1 = 6, max_score2 = 5)
orb <- analyze_orbits(fit)
get_orbit(orb, total_score = 5)


Parametric Bootstrap for Leunbach Model with Standard Error of Equating

Description

Performs parametric bootstrapping to assess significance of tests and compute standard errors of equating (SEE) with confidence intervals. Supports parallel processing using the mirai package.

Usage

leunbach_bootstrap(
  fit,
  nsim = 1000,
  conf_level = 0.95,
  see_type = c("rounded", "expected"),
  method = c("optimize", "newton"),
  parallel = TRUE,
  n_cores = NULL,
  verbose = FALSE,
  seed = NULL
)

Arguments

fit

A leunbach_ipf object from leunbach_ipf()

nsim

Number of bootstrap samples (default: 1000)

conf_level

Confidence level for intervals (default: 0.95)

see_type

Type of SEE calculation: "rounded" uses rounded (integer) scores, "expected" uses continuous expected scores

method

Optimization method for person parameter estimation: "optimize" (default) uses stats::optimize() with Brent's method, "newton" uses custom Newton-Raphson with bisection fallback

parallel

Use parallel processing if mirai package is available (default: TRUE)

n_cores

Number of cores to use for parallel processing. Default NULL uses all available cores minus one.

verbose

Print progress messages

seed

Random seed for reproducibility (optional)

Value

A list of class "leunbach_bootstrap" containing bootstrap results and standard errors of equating

Examples


# Simulate paired test score data
set.seed(123)
n <- 300
theta <- rnorm(n)
test1 <- pmin(pmax(round(3 + 1.5 * theta + rnorm(n, sd = 0.8)), 0), 6)
test2 <- pmin(pmax(round(2.5 + 1.3 * theta + rnorm(n, sd = 0.7)), 0), 5)
fit <- leunbach_ipf(data.frame(test1, test2),
                    max_score1 = 6, max_score2 = 5)

# Sequential bootstrap with few iterations for the example
boot <- leunbach_bootstrap(fit, nsim = 25, parallel = FALSE, seed = 1)
print(boot)



Equate Scores Between Tests using Leunbach Model

Description

Creates equating tables to convert scores from one test to another using the estimated score parameters from the Leunbach model.

Usage

leunbach_equate(
  fit,
  direction = c("1to2", "2to1"),
  method = c("optimize", "newton"),
  verbose = FALSE
)

Arguments

fit

A leunbach_ipf object from leunbach_ipf()

direction

Direction of equating: "1to2" (Test1 to Test2) or "2to1" (Test2 to Test1)

method

Optimization method for person parameter estimation: "optimize" (default) uses stats::optimize() with Brent's method, "newton" uses custom Newton-Raphson with bisection fallback

verbose

Print detailed output

Value

A list of class "leunbach_equating" containing:

Examples

# Simulate paired test score data
set.seed(123)
n <- 400
theta <- rnorm(n)
test1 <- pmin(pmax(round(3 + 1.5 * theta + rnorm(n, sd = 0.8)), 0), 6)
test2 <- pmin(pmax(round(2.5 + 1.3 * theta + rnorm(n, sd = 0.7)), 0), 5)
fit <- leunbach_ipf(data.frame(test1, test2),
                    max_score1 = 6, max_score2 = 5)

# Equate Test 1 scores onto the Test 2 metric
eq <- leunbach_equate(fit, direction = "1to2")
print(eq)


Bootstrap for Indirect Equating

Description

Performs parametric bootstrapping for indirect equating to assess standard errors of the indirect equated scores.

Usage

leunbach_indirect_bootstrap(
  fit_ab,
  fit_bc,
  direction_ab = c("1to2", "2to1"),
  direction_bc = c("1to2", "2to1"),
  nsim = 1000,
  conf_level = 0.95,
  see_type = c("rounded", "expected"),
  method = c("optimize", "newton"),
  parallel = TRUE,
  n_cores = NULL,
  verbose = FALSE,
  seed = NULL
)

Arguments

fit_ab

A leunbach_ipf object for the A-B equating

fit_bc

A leunbach_ipf object for the B-C equating

direction_ab

Direction for A-B equating: "1to2" or "2to1"

direction_bc

Direction for B-C equating: "1to2" or "2to1"

nsim

Number of bootstrap samples (default: 1000)

conf_level

Confidence level for intervals (default: 0.95)

see_type

Type of SEE calculation: "rounded" or "expected"

method

Optimization method: "optimize" (default) or "newton"

parallel

Use parallel processing if mirai is available (default: TRUE)

n_cores

Number of cores for parallel processing

verbose

Print progress messages

seed

Random seed for reproducibility

Value

A list of class "leunbach_indirect_bootstrap" containing:

Examples


set.seed(123)
n <- 300
theta1 <- rnorm(n)
a <- pmin(pmax(round(3 + 1.5 * theta1 + rnorm(n, sd = 0.8)), 0), 6)
b1 <- pmin(pmax(round(2.5 + 1.3 * theta1 + rnorm(n, sd = 0.7)), 0), 5)
theta2 <- rnorm(n)
b2 <- pmin(pmax(round(2.5 + 1.3 * theta2 + rnorm(n, sd = 0.7)), 0), 5)
cc <- pmin(pmax(round(3 + 1.4 * theta2 + rnorm(n, sd = 0.8)), 0), 6)
fit_ab <- leunbach_ipf(data.frame(a, b1), max_score1 = 6, max_score2 = 5)
fit_bc <- leunbach_ipf(data.frame(b2, cc), max_score1 = 5, max_score2 = 6)

boot <- leunbach_indirect_bootstrap(fit_ab, fit_bc,
                                    direction_ab = "1to2",
                                    direction_bc = "1to2",
                                    nsim = 25, parallel = FALSE,
                                    seed = 1)
print(boot)



Indirect Equating via an Anchor Test

Description

Performs indirect equating from Test A to Test C via an anchor Test B. This chains two direct equatings: A -> B and B -> C.

Usage

leunbach_indirect_equate(
  fit_ab,
  fit_bc,
  direction_ab = c("1to2", "2to1"),
  direction_bc = c("1to2", "2to1"),
  method = c("optimize", "newton"),
  verbose = FALSE
)

Arguments

fit_ab

A leunbach_ipf object for the A-B equating (Tests A and B)

fit_bc

A leunbach_ipf object for the B-C equating (Tests B and C)

direction_ab

Direction for A-B equating: "1to2" or "2to1"

direction_bc

Direction for B-C equating: "1to2" or "2to1"

method

Optimization method: "optimize" (default) or "newton"

verbose

Print detailed output

Details

Indirect equating works by chaining two direct equatings:

  1. For a score x on Test A, find the expected score on Test B (typically non-integer)

  2. Find expected Test C scores for the integer B scores below and above

  3. Interpolate to get the expected Test C score for the non-integer B score

  4. Round to get the equated integer score

Value

A list of class "leunbach_indirect" containing:

Examples

# Simulate scores for three tests, with B serving as the anchor.
# Group 1 takes tests A and B; group 2 takes tests B and C.
set.seed(123)
n <- 400
theta1 <- rnorm(n)
a <- pmin(pmax(round(3 + 1.5 * theta1 + rnorm(n, sd = 0.8)), 0), 6)
b1 <- pmin(pmax(round(2.5 + 1.3 * theta1 + rnorm(n, sd = 0.7)), 0), 5)

theta2 <- rnorm(n)
b2 <- pmin(pmax(round(2.5 + 1.3 * theta2 + rnorm(n, sd = 0.7)), 0), 5)
cc <- pmin(pmax(round(3 + 1.4 * theta2 + rnorm(n, sd = 0.8)), 0), 6)

fit_ab <- leunbach_ipf(data.frame(a, b1), max_score1 = 6, max_score2 = 5)
fit_bc <- leunbach_ipf(data.frame(b2, cc), max_score1 = 5, max_score2 = 6)

# Indirect equating: A -> B -> C
indirect <- leunbach_indirect_equate(fit_ab, fit_bc,
                                     direction_ab = "1to2",
                                     direction_bc = "1to2")
print(indirect)


Estimate Leunbach Score Parameters using Iterative Proportional Fitting

Description

Estimates score parameters for Leunbach test equating based on the power series distribution framework. The total score distribution in Rasch models follows a power series distribution where score parameters are defined by generalized symmetric functions of the item parameters.

Usage

leunbach_ipf(
  data,
  max_score1 = NULL,
  max_score2 = NULL,
  max_iter = 1000,
  tol = 1e-10,
  verbose = FALSE
)

Arguments

data

A data. frame or matrix with two columns: Column 1: Sum scores from Test 1 Column 2: Sum scores from Test 2

max_score1

Maximum possible score for Test 1 (default: max observed)

max_score2

Maximum possible score for Test 2 (default: max observed)

max_iter

Maximum number of iterations for IPF

tol

Convergence tolerance

verbose

Print iteration progress

Details

The model is based on the power series distribution (PSD) for sum scores in Rasch models. For a test with k polytomous items, the probability of obtaining sum score r is:

P(R = r | \theta) = \frac{\gamma_r \theta^r}{\sum_s \gamma_s \theta^s}

where \gamma_r is the generalized symmetric function of order r of the item parameters, and \theta = exp(\beta) is the person parameter.

The model is over-parameterized, so we apply identification constraints:

The sigma parameters for the total score (S = X + Y) are computed as:

\sigma_s = \sum_{x+y=s} \gamma_x \delta_y

Value

A list of class "leunbach_ipf" containing:

References

Leunbach, G. (1976). A probabilistic measurement model for assessing whether two tests measure the same personal factor. Copenhagen: Danish Institute for Educational Research.

Adroher, N. D., Kreiner, S., Young, C., Mills, R., & Tennant, A. (2019). Test equating sleep scales: Applying the Leunbach's model. BMC Medical Research Methodology, 19(1), 141. doi:10.1186/s12874-019-0768-y

Kreiner, S. (2007). Validity and objectivity: Reflections on the role and nature of Rasch models. Nordic Psychology, 59(3), 268-298. doi:10.1027/1901-2276.59.3.268

Examples

# Simulate test score data
set.seed(123)
n <- 500
theta <- rnorm(n)
test1 <- pmin(pmax(round(3 + 1.5 * theta + rnorm(n, sd = 0.8)), 0), 6)
test2 <- pmin(pmax(round(2.5 + 1.3 * theta + rnorm(n, sd = 0.7)), 0), 5)
score_data <- data.frame(test1 = test1, test2 = test2)

# Estimate parameters (specifying max possible scores)
fit <- leunbach_ipf(score_data, max_score1 = 6, max_score2 = 5, verbose = TRUE)
print(fit)
summary(fit)


Helper Functions for Leunbach Model

Description

Utility functions for bootstrap and equating Generate parametric bootstrap table

Generates a bootstrap contingency table by sampling from the fitted model. For each total score, samples are drawn from the multinomial distribution defined by the conditional probabilities P(X=x | S=s).

Usage

parametric_eq_bootstrap(
  test1_scores,
  test2_scores,
  total_scores,
  total_score_freq,
  gamma,
  delta,
  sigma,
  xmin,
  xmax,
  ymin,
  ymax
)

Arguments

test1_scores

Score values for Test 1

test2_scores

Score values for Test 2

total_scores

Total score values

total_score_freq

Observed frequency for each total score

gamma

Score parameters for Test 1

delta

Score parameters for Test 2

sigma

Total score parameters

xmin

Minimum observed Test 1 score

xmax

Maximum observed Test 1 score

ymin

Minimum observed Test 2 score

ymax

Maximum observed Test 2 score

Value

A matrix (contingency table) of bootstrap counts


Print SEE table for indirect equating

Description

Print SEE table for indirect equating

Usage

## S3 method for class 'leunbach_indirect_bootstrap'
plot(x, type = c("equating", "see"), ...)

Arguments

x

A leunbach_indirect_bootstrap object.

type

One of "equating" (point estimates and CI band) or "see" (standard error of equating).

...

Further arguments passed to or from other methods.

Value

Invisibly returns x.


Plot method for leunbach_ipf objects

Description

Plot method for leunbach_ipf objects

Usage

## S3 method for class 'leunbach_ipf'
plot(x, type = c("parameters", "residuals", "observed", "sigma"), ...)

Arguments

x

A leunbach_ipf object.

type

One of "parameters", "residuals", "observed", or "sigma". Selects what to display.

...

Further arguments passed to or from other methods.

Value

Invisibly returns x.


Plot method for leunbach_orbits objects

Description

Plot method for leunbach_orbits objects

Usage

## S3 method for class 'leunbach_orbits'
plot(x, type = c("orbits", "cumulative", "significant"), ...)

Arguments

x

A leunbach_orbits object.

type

One of "orbits", "cumulative", or "significant". Selects what to display.

...

Further arguments passed to or from other methods.

Value

Invisibly returns x.


Print method for leunbach_bootstrap objects

Description

Print method for leunbach_bootstrap objects

Usage

## S3 method for class 'leunbach_bootstrap'
print(x, ...)

Arguments

x

A leunbach_bootstrap object.

...

Further arguments passed to or from other methods.

Value

Invisibly returns x.


Print method for leunbach_equating objects

Description

Print method for leunbach_equating objects

Usage

## S3 method for class 'leunbach_equating'
print(x, ...)

Arguments

x

A leunbach_equating object.

...

Further arguments passed to or from other methods.

Value

Invisibly returns x.


Print method for leunbach_indirect objects

Description

Print method for leunbach_indirect objects

Usage

## S3 method for class 'leunbach_indirect'
print(x, ...)

Arguments

x

A leunbach_indirect object.

...

Further arguments passed to or from other methods.

Value

Invisibly returns x.


Print method for leunbach_indirect_bootstrap objects

Description

Print method for leunbach_indirect_bootstrap objects

Usage

## S3 method for class 'leunbach_indirect_bootstrap'
print(x, ...)

Arguments

x

A leunbach_indirect_bootstrap object.

...

Further arguments passed to or from other methods.

Value

Invisibly returns x.


Print method for leunbach_ipf objects

Description

Print method for leunbach_ipf objects

Usage

## S3 method for class 'leunbach_ipf'
print(x, ...)

Arguments

x

A leunbach_ipf object.

...

Further arguments passed to or from other methods.

Value

Invisibly returns x.


Print method for leunbach_orbits objects

Description

Print method for leunbach_orbits objects

Usage

## S3 method for class 'leunbach_orbits'
print(x, ...)

Arguments

x

A leunbach_orbits object.

...

Further arguments passed to or from other methods.

Value

Invisibly returns x.


Description

Print SEE table for indirect equating

Usage

print_indirect_see_table(x)

Description

Prints a formatted table showing equating results with bootstrap confidence intervals, standard errors, and error frequencies.

Usage

print_see_table(x, direction = "1to2")

Arguments

x

A leunbach_bootstrap object

direction

"1to2" or "2to1"


Run bootstrap samples in parallel using mirai

Description

Run bootstrap samples in parallel using mirai

Usage

run_bootstrap_parallel(
  nsim,
  boot_seeds,
  boot_data_list,
  n_cores,
  verbose = FALSE
)

Run bootstrap samples sequentially

Description

Run bootstrap samples sequentially

Usage

run_bootstrap_sequential(nsim, boot_seeds, boot_data_list, verbose = FALSE)

Run indirect bootstrap in parallel

Description

Run indirect bootstrap in parallel

Usage

run_indirect_bootstrap_parallel(
  nsim,
  boot_seeds,
  boot_data_list,
  n_cores,
  verbose = FALSE
)

Run indirect bootstrap sequentially

Description

Run indirect bootstrap sequentially

Usage

run_indirect_bootstrap_sequential(
  nsim,
  boot_seeds,
  boot_data_list,
  verbose = FALSE
)

Run a single bootstrap iteration

Description

Run a single bootstrap iteration

Usage

run_single_bootstrap(seed, data_list)

Run single indirect bootstrap iteration

Description

Run single indirect bootstrap iteration

Usage

run_single_indirect_bootstrap(seed, data_list)

Summary method for leunbach_indirect_bootstrap objects

Description

Summary method for leunbach_indirect_bootstrap objects

Usage

## S3 method for class 'leunbach_indirect_bootstrap'
summary(object, ...)

Arguments

object

A leunbach_indirect_bootstrap object.

...

Further arguments passed to or from other methods.

Value

Invisibly returns object.


Summary method for leunbach_ipf objects

Description

Summary method for leunbach_ipf objects

Usage

## S3 method for class 'leunbach_ipf'
summary(object, ...)

Arguments

object

A leunbach_ipf object.

...

Further arguments passed to or from other methods.

Value

Invisibly returns a list of fit statistics.


Summary method for leunbach_orbits objects

Description

Summary method for leunbach_orbits objects

Usage

## S3 method for class 'leunbach_orbits'
summary(object, ...)

Arguments

object

A leunbach_orbits object.

...

Further arguments passed to or from other methods.

Value

Invisibly returns object.


Convert contingency table to data frame

Description

Converts a contingency table (matrix of counts) to a data frame with one row per observation, suitable for input to leunbach_ipf().

Usage

table_to_data(tab, test1_scores, test2_scores)

Arguments

tab

Contingency table (matrix)

test1_scores

Score values for Test 1

test2_scores

Score values for Test 2

Value

A data frame with columns test1 and test2