Learn R Programming

exametrika (version 1.6.0)

Biclustering: Biclustering and Ranklustering Analysis

Description

Performs biclustering, ranklustering, or their confirmatory variants on binary response data. These methods simultaneously cluster both examinees and items into homogeneous groups (or ordered ranks for ranklustering). The analysis reveals latent structures and patterns in the data by creating a matrix with rows and columns arranged to highlight block structures.

Usage

Biclustering(U, ...)

# S3 method for default Biclustering(U, na = NULL, Z = NULL, w = NULL, ...)

# S3 method for binary Biclustering( U, ncls = 2, nfld = 2, method = "B", conf = NULL, mic = FALSE, maxiter = 100, verbose = TRUE, ... )

# S3 method for nominal Biclustering( U, ncls = 2, nfld = 2, conf = NULL, mic = FALSE, maxiter = 100, verbose = TRUE, ... )

# S3 method for ordinal Biclustering( U, ncls = 2, nfld = 2, method = "B", conf = NULL, mic = FALSE, maxiter = 100, verbose = TRUE, ... )

Value

An object of class "exametrika" and "Biclustering" containing:

model

Model type indicator (1 for biclustering, 2 for ranklustering)

msg

A character string indicating the model type.

mic

Logical value indicating whether monotonicity constraint was applied

testlength

Number of items in the test

nobs

Number of examinees in the dataset

Nclass

Number of latent classes/ranks specified

Nfield

Number of latent fields specified

N_Cycle

Number of EM iterations performed

LFD

Latent Field Distribution - counts of items assigned to each field

LRD/LCD

Latent Rank/Class Distribution - counts of examinees assigned to each class/rank

FRP

Field Reference Profile matrix - probability of correct response for each field-class combination

FRPIndex

Field Reference Profile indices including location parameters, slope parameters, and monotonicity indices

TRP

Test Reference Profile - expected score for examinees in each class/rank

CMD/RMD

Class/Rank Membership Distribution - sum of membership probabilities across examinees

FieldMembership

Matrix showing the probabilities of each item belonging to each field

ClassMembership

Matrix showing the probabilities of each examinee belonging to each class/rank

SmoothedMembership

Matrix of smoothed class membership probabilities after filtering

FieldEstimated

Vector of the most likely field assignments for each item

ClassEstimated

Vector of the most likely class/rank assignments for each examinee

Students

Data frame containing membership probabilities and classification information for each examinee

FieldAnalysis

Matrix showing field analysis results with item-level information

TestFitIndices

Model fit indices for evaluating the quality of the clustering solution

SOACflg

Logical flag indicating whether Strongly Ordinal Alignment Condition is satisfied

WOACflg

Logical flag indicating whether Weakly Ordinal Alignment Condition is satisfied

Arguments

U

Either an object of class "exametrika" or raw data. When raw data is given, it is converted to the exametrika class with the dataFormat function.

...

Additional arguments passed to specific methods.

na

Values to be treated as missing values.

Z

Missing indicator matrix of type matrix or data.frame. Values of 1 indicate observed responses, while 0 indicates missing data.

w

Item weight vector specifying the relative importance of each item.

ncls

Number of latent classes/ranks to identify (between 2 and 20).

nfld

Number of latent fields (item clusters) to identify.

method

Analysis method to use (character string):

  • "B" or "Biclustering": Standard biclustering (default)

  • "R" or "Ranklustering": Ranklustering with ordered class structure

conf

Confirmatory parameter for pre-specified field assignments. Can be either:

  • A vector with items and corresponding fields in sequence

  • A field membership profile matrix (items × fields) with 0/1 values

  • NULL (default) for exploratory analysis where field memberships are estimated

mic

Logical; if TRUE, forces Field Reference Profiles to be monotonically increasing. Default is FALSE.

maxiter

Maximum number of EM algorithm iterations. Default is 100.

verbose

Logical; if TRUE, displays progress during estimation. Default is TRUE.

Details

Biclustering simultaneously clusters both rows (examinees) and columns (items) of a data matrix. Unlike traditional clustering that groups either rows or columns, biclustering identifies submatrices with similar patterns. Ranklustering is a variant that imposes an ordinal structure on the classes, making it suitable for proficiency scaling.

The algorithm uses an Expectation-Maximization approach to iteratively estimate:

  1. Field membership of items (which items belong to which fields)

  2. Class/rank membership of examinees (which examinees belong to which classes)

  3. Field Reference Profiles (probability patterns for each field-class combination)

The confirmatory option allows for pre-specified field assignments, which is useful when there is prior knowledge about item groupings or for testing hypothesized structures.

References

Shojima, K. (2012). Biclustering of binary data matrices using bilinear models. Behaviormetrika, 39(2), 161-178.

Examples

Run this code
# \donttest{
# Perform Biclustering with Binary method (B)
# Analyze data with 5 fields and 6 classes
result.Bi <- Biclustering(J35S515, nfld = 5, ncls = 6, method = "B")

# Perform Biclustering with Rank method (R)
# Store results for further analysis and visualization
result.Rank <- Biclustering(J35S515, nfld = 5, ncls = 6, method = "R")

# Display the Bicluster Reference Matrix (BRM) as a heatmap
plot(result.Rank, type = "Array")

# Plot Field Reference Profiles (FRP) in a 2x3 grid
# Shows the probability patterns for each field
plot(result.Rank, type = "FRP", nc = 2, nr = 3)

# Plot Rank Membership Profiles (RMP) for students 1-9 in a 3x3 grid
# Shows posterior probability distribution of rank membership
plot(result.Rank, type = "RMP", students = 1:9, nc = 3, nr = 3)

# Example of confirmatory analysis with pre-specified fields
# Assign items 1-10 to field 1, 11-20 to field 2, etc.
field_assignments <- c(rep(1, 10), rep(2, 10), rep(3, 15))
result.Conf <- Biclustering(J35S515, nfld = 3, ncls = 5, conf = field_assignments)
# }
# \donttest{
# Perform Biclustering for nominal sample data()
# Analyze data with 5 fields and 6 classes
result.Bi <- Biclustering(J35S515, nfld = 5, ncls = 6, method = "B")
# }

Run the code above in your browser using DataLab