Carla.emission_responsevec
— Methodemission_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) MatirxitemID
: Integer denoting the jth itemt
: time indexαMatrix
: K (No. of Skills) × T (No. of Timepoints) Matrix
Output:
A 2-element Vector{Float64}
Carla.transition_responsevec
— Methodtransition_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) MatirxskillID
: Integer denoting the jth skillt
: time indexαMatrix
: K (No. of Skills) × T (No. of Timepoints) Matrix
Output:
A 2-element Vector{Float64}
Carla.local_emission
— Methodlocal_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) MatirxitemID
: Integer denoting the jth itemt
: time indexαMatrix
: K (No. of Skills) × T (No. of Timepoints) Matrixbetavector
- β values for the given item
Output:
A Float64
Carla.local_transition
— Methodlocal_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) MatirxskillID
: Integer denoting the jth skillt
: time indexαMatrix
: K (No. of Skills) × T (No. of Timepoints) Matrixδ0
- initial delta valuesδ
- delta values
Output
A Float64
Carla.global_emission
— Methodglobal_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()
, orFUZZYDINA()
emission response data
:StudentResponse
of the examineedata.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
Carla.global_transition
— Methodglobal_transition(
TransitionType::ResponseFunction, RMatrix, αMatrix, δ0, δ, temperature)
Computes the latent skill profile trajectory probability for an examinee.
Arguments
TransitionType
: Specify if it's aDINA()
,DINO()
orFUZZYDINA()
transition typeRMatrix
:αMatrix
: latent attribute profile trajectory (K × T)δ0
: initial detlas, δ[0]δ
: delta valuestemperature
: temeprature parameter strictly positive. (used during importance sampling)
Output
A Float64
Carla.likelihoodcompletealpha
— Methodlikelihoodcompletealpha(
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 Modeldata
:StudentResponse
of the examinieedata.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) MatirxRMatrix
: 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
Carla.∇risk
— Method∇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 Modeldata
:StudentResponse
of the examineedata.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) MatrixRMatrix
: 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
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 Modeldata
:StudentResponse
of the examineedata.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) MatrixQMatrix
: J (No. of Items) × K (No. of Skills) MatrixRMatrix
: 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
Carla.maprisk
— Methodmaprisk(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 Modeldata
:StudentResponse
of the examinieedata.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) MatirxRMatrix
: RMatrix specifies how skills are temporally connected
θ
: Parameter values, A named tuple θ = (β, δ0, δ)
Output
(MAPrisk
, ML Risk
)
Carla.batchdecent
— Methodbatchdecent(args...)
A Batch descent algorithm
Arguments
model
: The Carla Probability Modeldata
:StudentResponse
of the examinieedata.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) MatirxRMatrix
: RMatrix specifies how skills are temporally connectedθ
: Parameter values, A named tuple θ = (β, δ0, δ)
Keyword Arguments
e_strategy
: Estimation Strategy (Exact
orIS
)learning
:Batch
orAdaptive
m_strategy
: Risk Minimization strategy (Gradient Descent/ LBFGS)
Carla.CARLA
— MethodCARLA(model,data,QMatrix, kwargs...)
Arguments
model
: The Carla Probability Modeldata
:StudentResponse
of the examinieedata.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) MatirxRMatrix
: RMatrix specifies how skills are temporally connected
Keyword Arguments
e_strategy
: Estimation Strategy (Exact
by default)learning
:Batch
orAdaptive
(Batch
by default)m_strategy
: Risk Minimization strategy. (GradientDescent
by default)linesearch
: Algorithm for stepsize selection (BackTracking
by default)doprojection
:false
by default