Installation
To install the package
using Pkg; Pkg.add(url="https://github.com/athulsudheesh/Carla.jl")Getting Data
In this example we'll use one of the data available through CDMrdata package
using CDMrdata
using DataFrames
dat = load_data("ecpe")
Q = dat["q.matrix"]
X = dat["data"]
first(X,3) # hideIn the above item-response data, we can se that we have an unwanted column - id. Always make sure you delete these kind of redundant columns first before doing any sort of data preparation using the functions available in Carla.jl package.
X = X[:,Not(:id)]
first(X, 3) # hideNote
Also make sure you convert the item response matrix and Q-Matrix into Matrices. (i.e don't work with dataframes). When you load a dataset from CDMrpackage or your own data using CSV.read(path,DataFrame) function, the X and Q will be in dataframe format. This needs to be converted to matrices.
X = Matrix(X)
Q = Matrix(Q)
nothing # hideThe item-response data needs to be converted into StudentResponse data type, to be compatible with Carla.jl routines. This is achieved by the convertX() function.
using Carla
X = convertX(X)
first(X,3) # hideInitializing a model
To instantiate a Carla Probability Model with defaults, you can call the CPM constructor
M1 = CPM()CPM(DINA(), DINA(), [1.2, 0.6], 0.1865671641791045, EstimandOpts(0.2, true, false), (min = -Inf, max = Inf))Configuring the Model
The above function create a Carla probability model with DINA type emission and transition probability. By default, the model is only configured to estimate beta. If you want to estimate delta also, it can be configured using EstimandOpts
M1 = CPM(opts = EstimandOpts(estimatedelta=true))CPM(DINA(), DINA(), [1.2, 0.6], 0.1865671641791045, EstimandOpts(0.2, true, true), (min = -Inf, max = Inf))Suppose you are interested in a different emission response type (say DINO), in that case you initialize the model as follows:
M1 = CPM(emissionprob=DINO(), opts = EstimandOpts(estimatedelta=true))CPM(DINO(), DINA(), [1.2, 0.6], 0.1865671641791045, EstimandOpts(0.2, true, true), (min = -Inf, max = Inf))All configurable options available while initializing a model can be found in the documnetation for CPM and EstimandOpts.
Estimation
The estimation process is initiated by the CARLA function. To initiate the estimation using the default configuration, you call the CARLA function with the data and Q:
results = CARLA(M1,data, Q)By default, CARLA uses GradientDescent and Exact method. To change it to LBFGS
results = CARLA(M1,data,Q, m_strategy = LBFGS())list of configurable options are available in the documentation for CARLA function.