sim_dina_attributes: Simulate a DINA Model's eta Matrix

View source: R/RcppExports.R

sim_dina_attributesR Documentation

Simulate a DINA Model's \eta Matrix

Description

Generates a DINA model's \eta matrix based on alphas and the \mathbf{Q} matrix.

Usage

sim_dina_attributes(alphas, Q)

Arguments

alphas

A N by K matrix of latent attributes.

Q

A J by K matrix indicating which skills are required for which items.

Value

The \eta matrix with dimensions N \times J under the DINA model.

Author(s)

Steven Andrew Culpepper and James Joseph Balamuta

See Also

sim_dina_class() and sim_dina_items()

Examples

N = 200
K = 5
J = 30
delta0 = rep(1, 2 ^ K)

# Creating Q matrix
Q = matrix(rep(diag(K), 2), 2 * K, K, byrow = TRUE)
for (mm in 2:K) {
  temp = combn(seq_len(K), m = mm)
  tempmat = matrix(0, ncol(temp), K)
  for (j in seq_len(ncol(temp)))
    tempmat[j, temp[, j]] = 1
  Q = rbind(Q, tempmat)
}
Q = Q[seq_len(J), ]

# Setting item parameters and generating attribute profiles
ss = gs = rep(.2, J)
PIs = rep(1 / (2 ^ K), 2 ^ K)
CLs = c((1:(2 ^ K)) %*% rmultinom(n = N, size = 1, prob = PIs))

# Defining matrix of possible attribute profiles
As = rep(0, K)
for (j in seq_len(K)) {
  temp = combn(1:K, m = j)
  tempmat = matrix(0, ncol(temp), K)
  for (j in seq_len(ncol(temp)))
    tempmat[j, temp[, j]] = 1
  As = rbind(As, tempmat)
}
As = as.matrix(As)

# Sample true attribute profiles
Alphas = As[CLs, ]

# Simulate item data under DINA model 
dina_items = sim_dina_items(Alphas, Q, ss, gs)

# Simulate attribute data under DINA model 
dina_attributes = sim_dina_attributes(Alphas, Q)

simcdm documentation built on May 29, 2024, 2:09 a.m.