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, δ[0]
  • δ: 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