Carla.emission_responsevecMethod
emission_responsevec(
EmissionType::ResponseFunction, QMatrix::Matrix,
itemID::Integer, t::Integer, αMatrix::Matrix
)

Computes the local emission response vectors $\psi_{jt} (\alpha)$

$$$\psi_{jt} (\alpha) = \begin{cases} [1, \Pi_{k \in S_{jt}} \alpha_k] & \text{ if DINA-type emission} \\ [1, 1 - \Pi_{k \in S_{jt}} (1 - \alpha_k)] & \text{ if DINO-type emission} \\ [1, \frac{\Sigma_{k \in S_{jt}} \alpha_k}{K}] & \text{ if FUZZYDINA-type emission} \end{cases}$$$

Arguments

• EmissionType: Emission Response Type (DINA(),DINO(), or FUZZYDINA())
• QMatrix: J (No. of Items) × K (No. of Skills) Matirx
• itemID: Integer denoting the jth item
• t: time index
• αMatrix: K (No. of Skills) × T (No. of Timepoints) Matrix

Output:

A 2-element Vector{Float64}

source
Carla.transition_responsevecMethod
transition_responsevec(
TransitionType::ResponseFunction, RMatrix::Matrix,
skillID::Integer, t::Integer, αMatrix::Matrix
)

Computes the local transition response vectors $\phi_{kt} (\alpha)$

When t = 1

$$$\phi_{kt} (\alpha) = -1$$$

else

$$$\phi_{kt} (\alpha) = \begin{cases} [1, \Pi_{k \in S_{kt}} \alpha_k] & \text{ if DINA-type transition} \\ [1, 1 - \Pi_{k \in S_{kt}} (1 - \alpha_k)] & \text{ if DINO-type transition} \\ [1, \frac{\Sigma_{k \in S_{kt}} \alpha_k}{K}] & \text{ if FUZZYDINA-type transition} \end{cases}$$$

Arguments

• TransitionType: DINA(),DINO(), or FUZZYDINA()
• RMatrix: K (No. of Skills) × K (No. of Skills) Matirx
• skillID: Integer denoting the jth skill
• t: time index
• αMatrix: K (No. of Skills) × T (No. of Timepoints) Matrix

Output:

A 2-element Vector{Float64}

source
Carla.local_emissionMethod
local_emission(
EmissionType::ResponseFunction, QMatrix,
itemID, t, αMatrix, betavector
)

Computes the probability that an examinee with the given skill profile (αMatrix) will correctly answer the item - itemID, at given time t. This is also known as the complete-data local emission conditional probability $P_{\beta_j}^{\alpha} (t)$

$$$P_{\beta_j}^{\alpha} (t) = \rho (\beta_j(t)^T \psi_{jt} (\alpha(t)))$$$

where $\rho$ is a logistic sigmoidal function. $\rho(x) = \frac{1}{1 + e^{-x}}$

Arguments

• EmissionType: Emission Response Type (DINA(),DINO(), or FUZZYDINA())
• QMatrix: J (No. of Items) × K (No. of Skills) Matirx
• itemID: Integer denoting the jth item
• t: time index
• αMatrix: K (No. of Skills) × T (No. of Timepoints) Matrix
• betavector - β values for the given item

Output:

A Float64

source
Carla.local_transitionMethod
local_transition(
TransitionType::ResponseFunction, RMatrix,
skillID, t, αMatrix, δ0, δ, temperature
)

Computes the probability that an examinee has mastered the latent skill k at assessment time t, given the examinee's latent skill profile at t-1. This is also known as the complete-data local transition probability $P_{\delta_k}^{\alpha} (t)$

$$$P_{\delta_k}^{\alpha} (t) = \rho(\delta_k(t)^T \phi_{kt}(\alpha (t -1)))$$$

where $\rho$ is a logistic sigmoidal function. $\rho(x) = \frac{1}{1 + e^{-x}}$

Arguments

• TransitionType: Transition Response Type (DINA(),DINO(), or FUZZYDINA())
• RMatrix: K (No. of Skills) × K (No. of Skills) Matirx
• skillID: Integer denoting the jth skill
• t: time index
• αMatrix: K (No. of Skills) × T (No. of Timepoints) Matrix
• δ0 - initial delta values
• δ - delta values

Output

A Float64

source
Carla.global_emissionMethod
global_emission(
EmissionType::ResponseFunction, data, QMatrix, αMatrix, β)

Computes the likelihood of the evidence for an examinee given their evidence & proficiency models.

Arguments

• EmissionType: specifies if it's a DINA(), DINO(), or FUZZYDINA() emission response
• data: StudentResponse of the examinee
• data.itemResponse: J (No. of items) × T (No. of Time points)
• data.missingindicator: J (No. of items) × T (No. of Time points)
• QMatrix: J (No. of Items) × K (No. of Skills) Matirx
• αMatrix: K (No. of Skills) × T (No. of Timepoints) Matrix
• β: β values for the item bank, Vector of length J

Output

A Float64

source
Carla.global_transitionMethod
global_transition(
TransitionType::ResponseFunction, RMatrix, αMatrix, δ0, δ, temperature)

Computes the latent skill profile trajectory probability for an examinee.

Arguments

• TransitionType: Specify if it's a DINA(), DINO() or FUZZYDINA() transition type
• RMatrix:
• αMatrix: latent attribute profile trajectory (K × T)
• δ0: initial detlas, δ
• δ: delta values
• temperature: temeprature parameter strictly positive. (used during importance sampling)

Output

A Float64

source
Carla.likelihoodcompletealphaMethod
likelihoodcompletealpha(
model::CPM, data, QMatrix,
RMatrix, αMatrix, θ, temperature
)

Computes the likelihood of the αMtrix and the observed responses of an examinee where we assume αMatrix is fully observable.

$$$\mathit{\ddot{L}^i (\mathbf{\theta ; \alpha})} = \Pi_{t=1}^T \Pi_{j=1}^J \Pi_{k=1}^K p_{\beta_j (t)} (x_{ij}(t) | \alpha(t)) p_{\delta_k (t)} (\alpha_k(t) | \alpha (t-1))$$$

Arguments

• model: The Carla Probability Model
• data: StudentResponse of the examiniee
• data.itemResponse: J (No. of items) × T (No. of Time points)
• data.missingindicator: J (No. of items) × T (No. of Time points)
• QMatrix: J (No. of Items) × K (No. of Skills) Matirx
• RMatrix: RMatrix specifies how skills are temporally connected
• αMatrix: K (No. of Skills) × T (No. of Timepoints) Matrix
• θ: Parameter values, A named tuple θ = (β, δ0, δ)
• temperature: temeprature parameter for importance sampling

Output

A Float64

source
Carla.∇riskMethod
∇risk(model::CPM, data, QMatrix, RMatrix, θ;e_strategy::Exact)

Computes the expectation of the complete gradient of the empirical risk computed in ∇riskαᵢ.

Arguments

• model: the Carla Probability Model
• data: StudentResponse of the examinee
• data.itemResponse: J (No. of items) × T (No. of Time points)
• data.missingindicator: J (No. of items) × T (No. of Time points)
• QMatrix: J (No. of Items) × K (No. of Skills) Matrix
• RMatrix: RMatrix specifies how skills are temporally connected
• θ: Parameter values, A named tuple θ = (β, δ0, δ)

Output

2J when estimatebeta = 1 and estimatedelta=0 for T = 1
2J+K when estimatebeta =1 and estimatedelta = 1 for T=1
2J when estimatebeta = 1 and estimatedelta = 0 for T > 1
2J + 2K + K when estimatebeta = 1 and estimatedelta = 1 for T > 1

source
Carla.∇riskαᵢMethod
∇riskαᵢ(
model::CPM, data::StudentResponse, αMatrix,
QMatrix, RMatrix, θ, temperature
)

Computes the gradient of the empirical risk of a given student for a particular skill profile

Arguments

• model: the Carla Probability Model

• data: StudentResponse of the examinee

• data.itemResponse: J (No. of items) × T (No. of Time points)
• data.missingindicator: J (No. of items) × T (No. of Time points)
• αMatrix: K (No. of Skills) × T (No. of Timepoints) Matrix

• QMatrix: J (No. of Items) × K (No. of Skills) Matrix

• RMatrix: RMatrix specifies how skills are temporally connected

• θ: Parameter values, A named tuple θ = (β, δ0, δ)

• temperature: temperature parameter for importance sampling

Output

2J when estimatebeta = 1 and estimatedelta=0 for T = 1
2J+K when estimatebeta =1 and estimatedelta = 1 for T=1
2J when estimatebeta = 1 and estimatedelta = 0 for T > 1
2J + 2K + K when estimatebeta = 1 and estimatedelta = 1 for T > 1

source
Carla.mapriskMethod
maprisk(model::CPM, data,
QMatrix, RMatrix, θ;e_strategy=Exact())

Computes the MAP risk using exact method.

$$$\ddot{l(\theta)} = - (1/n) log P_{\theta} (\theta) - (1/n) \Sigma_{i=1}^n log \Sigma_{\alpha} \ddot{L^i} (\theta; \alpha)$$$

where $\ddot{L^i} (\theta; \alpha)$ is the likelihoodcompletealpha

Arguments

• model: The Carla Probability Model
• data: StudentResponse of the examiniee
• data.itemResponse: J (No. of items) × T (No. of Time points)
• data.missingindicator: J (No. of items) × T (No. of Time points)
• QMatrix: J (No. of Items) × K (No. of Skills) Matirx
• RMatrix: RMatrix specifies how skills are temporally connected

θ: Parameter values, A named tuple θ = (β, δ0, δ)

Output

(MAPrisk, ML Risk)

source
Carla.batchdecentMethod
batchdecent(args...)

A Batch descent algorithm

Arguments

• model: The Carla Probability Model
• data: StudentResponse of the examiniee
• data.itemResponse: J (No. of items) × T (No. of Time points)
• data.missingindicator: J (No. of items) × T (No. of Time points)
• QMatrix: J (No. of Items) × K (No. of Skills) Matirx
• RMatrix: RMatrix specifies how skills are temporally connected
• θ: Parameter values, A named tuple θ = (β, δ0, δ)

Keyword Arguments

• e_strategy: Estimation Strategy (Exact or IS)
• learning: Batch or Adaptive
• m_strategy: Risk Minimization strategy (Gradient Descent/ LBFGS)
source
Carla.CARLAMethod
CARLA(model,data,QMatrix, kwargs...)

Arguments

• model: The Carla Probability Model
• data: StudentResponse of the examiniee
• data.itemResponse: J (No. of items) × T (No. of Time points)
• data.missingindicator: J (No. of items) × T (No. of Time points)
• QMatrix: J (No. of Items) × K (No. of Skills) Matirx
• RMatrix: RMatrix specifies how skills are temporally connected

Keyword Arguments

• e_strategy: Estimation Strategy (Exact by default)
• learning: Batch or Adaptive (Batch by default)
• m_strategy: Risk Minimization strategy. (GradientDescent by default)
• linesearch: Algorithm for stepsize selection (BackTracking by default)
• doprojection: false by default
source