est_irtpro
runs the IRTPRO in batch mode.
This function requires IRTPRO already installed on your computer. The R program is designed to work on IRTPRO 6.0.
NOTE that sometimes IRTPRO requires administrative privileges to run each time it is opened. You can reopen R or RStudio with administrator privileges (right click R or RStudio icon in start menu and select 'More' > 'Run as administrator') to prevent IRTPRO to ask administrator permission each time it is run.
est_irtpro(
x = NULL,
model = "3PL",
target_dir = getwd(),
D = 1,
analysis_name = "irtpro_calibration",
items = NULL,
examinee_id_var = NULL,
group_var = NULL,
reference_group = NULL,
estimation_method = c("BAEM", "ADQ", "MHRM", "MCMC"),
estimation_args = list(`E-Step` = c(500, 1e-05), SE = "S-EM", `M-Step` = c(500, 1e-09),
Quadrature = c(49, 6), SEM = 0.001, SS = 1e-05),
scoring_method = c("EAP", "MAP"),
scoring_args = list(Mean = 0, SD = 1),
misc_args = list(Decimal = 4, Processors = 1, `Min Exp` = 1),
print_extra = c("StdRes", "CTLD", "M2", "GOF", "Loadings", "P-Nums", "Diagnostic"),
constraints = NULL,
priors = data.frame(model = c("1PL", "2PL", "2PL", "3PL", "3PL", "3PL"), parameter =
c("Intercept[0]", "Slope[0]", "Intercept[0]", "Slope[0]", "Intercept[0]",
"Guessing[0]"), prior_dist = c("Normal", "Lognormal", "Normal", "Lognormal",
"Normal", "Beta"), prior_par_1 = c(0, 0, 0, 0, 0, 4), prior_par_2 = c(2, 1, 2, 1, 2,
16)),
overwrite = FALSE,
show_output_on_console = TRUE,
irtpro_exe_dir = file.path("C:/Program Files/IRTPRO 6.0")
)
Either a data.frame
, matrix
or
Response_set-class
object.
It is assumed that item values start from 0 and goes to number of distinct categories minus one. So, for example, for a polytomous items with four categories, the score values are assumed to be 0, 1, 2, 3. Recode the data to follow this pattern.
A string or a vector of strings to specify the psychometric
model of the items. Either provide a single model for all items or provide
a vector with the same length as the number of items
where each
value is one of the following: One-parameter logistic model ("1PL"
),
Two-parameter logistic model ("2PL"
), three-parameter logistic model
("3PL"
), Generalized Partial Credit model ("GPCM2"
), Graded
Response Model ("GRM"
).
The directory/folder where the IRTPRO analysis and data
files will be saved. The default value is the current working directory,
i.e. get_wd()
.
Scaling constant. The default value is 1
. If, for
"2PL"
, "3PL"
or "GRM"
models, the item parameters
needs to be converted to the commonly used normal scale where D =
1.7
or D = 1.702
, change this value. The item discrimination
parameters estimated by IRTPRO will be divided to D
to get
parameters on the new scale.
A short file name that will be used for the data files created for the analysis.
A vector of column names of the x
that
represents the responses. Default value is NULL
where all items
in x
are assumed to be entering the calibration.
The column name or number that contains individual
subject IDs. If none is provided (i.e. examinee_id_var = NULL
), the
program will check whether the data provided has row names.
The column name or number that contains group membership
information if multi-group calibration is desired. Currently, this function
cannot read multi-group calibration results. The default value is
NULL
, where no multi-group analysis will be performed.
Represent which group's ability distribution will be
set to mean = 0 and standard deviation = 1. For example, if the value is 1,
then the group whose code is 1 will have ability distribution with mean 0
and standard deviation 1. The default value is NULL
.
A string that can take one of the following values:
"BAEM"
(Bock-Aitkin), "ADQ"
(Adaptive Quadrature).
The methods "MHRM"
(Metropolis-Hastings Robbins-Monro) and
"MHRM"
are not available at this time via this program.
A list with named arguments that will specify the estimation. Please use one of the following list templates for each estimation method.
"BAEM"
list(`E-Step` = c(500, 1e-005),
SE = "S-EM",
`M-Step` = c(500, 1e-009),
Quadrature = c(49, 6),
SEM = 0.001,
SS = 1e-005)
"ADQ"
list(`E-Step` = c(100, 0.001),
SE = "S-EM",
Quadrature = c(9, "GH"),
Adaptation = "EAP",
Trust = "Fast")
For "SE"
element, the options are "S-EM"
, "M-Step"
,
"Xpd"
, and "Sandwich"
. See the IRTPRO manual for details.
A string that can take one of the following values:
"EAP"
for Expected-a-Posteriori or "MAP"
for
Maximum-a-Posteriori.
A list with named arguments that will specify the
scoring. The program will automatically add "Score Persons"
.
Following list elements can also be specified (last two elements are
optional):
list(Mean = 0, SD = 1, Minimum = <Minimum Score>,
Maximum = <Maximum Score>)
A list with named arguments that will specify the
miscellaneous arguments such as the number of decimals for the estimated
parameters, the number of processors, etc.
The following elements can be changed:
list(Decimal = 4, Processors = 1, `Min Exp` = 1)
A string vector specifying additional results to be printed: `StdRes` (Print table of standardized residuals) `CTLD` (Compute Chen-Thissen LD and item fit statistics) `M2` (Compute limited-information overall model fit statistics) `GOF` (Print each item's goodness of fit frequency table) `Loadings` (Print factor loadings) `P-Nums` (Print parameter numbers) `Diagnostic` (Print diagnostic information)
A vector of sting commands for constraints section of the
syntax. It is usually used to constrain a parameter to a certain value.
Usually it has the following format:
"Equal = (G1, Item Name, Parameter), (G2, Item Name, Parameter);"
Here is an example:
c(
"Equal = (G1, Item_1, Slope[0]), (G2, Item_1, Slope[0]);",
"Equal = (G1, Item_1, Intercept[0]), (G2, Item_1, Intercept[0]);",
"Equal = (G1, Item_2, Slope[0]), (G2, Item_2, Slope[0]);",
"Equal = (G1, Item_2, Intercept[0]), (G2, Item_2, Intercept[0]);")
or:
c("(Item_1, Slope[0]) = 1.3;",
"(Item_1, Intercept[0]) = 2.1;",
"(Item_2, Slope[0]) = 0.7;",
"(Item_2, Intercept[0]) = -1.2;")
A list that specifies the prior parameters. There are three possible options.
The value can be NULL
where no prior information will be used.
The value can be a data frame with the following format:
Column names: item_id, parameter, prior_dist, prior_par_1,
prior_par_2
.
item_id
column should match item IDs.
parameter
should be following one of the "Slope[0]"
,
"Intercept[0]"
, or "Guessing[0]"
.
prior_par
column should be one of the following values:
"Lognormal"
, "Normal"
, "Beta"
.
prior_par_1
and prior_par_2
should be numeric values for the
prior parameters. For "Normal"
or "Lognormal"
,
prior_par_1
can be 0 (mean) and prior_par_2
can be 1
(standard deviation.
For "Beta"
, prior_par_1
can be 4 (mean) and
prior_par_2
can be 16.
The value can be a data frame with the following format if all items
for a model should follow the same priors:
Column names:model, parameter, prior_dist, prior_par_1, prior_par_2
.
The model
column should match the model
argument of the
function. See the model
argument's description to see the available
options.
If TRUE
and there are already an IRTPRO analysis
files in the target path with the same name, these file will be
overwritten.
logical (not NA), indicates whether to capture
the output of the command and show it on the R console. The default value
is TRUE
.
The location of the "ASCII2SSIG64.exe"
and
"IRTPROx64.exe"
. The default location is
file.path("C:/Program Files/IRTPRO 6.0")
.
Emre Gonulates
if (FALSE) {
resp <- sim_resp(generate_ip(n = 15), rnorm(200), prop_missing = .2)
irtpro_calib <- est_irtpro(x = resp, model = "3PL",
target_dir = file.path("C:/temp/irtpro1"),
overwrite = TRUE)
n_examinee <- 500
resp <- sim_resp(generate_ip(model = sample(c("3PL", "GPCM2"), 20, T)),
rnorm(n_examinee), prop_missing = .2)
resp <- cbind.data.frame(examinee_id = paste0("Ex", 1:n_examinee),
group = sample(c("A", "B"), n_examinee, TRUE),
resp)
irtpro_calib_mixed <- est_irtpro(
x = resp,
items = NULL,
examinee_id_var = "examinee_id",
group_var = "group",
target_dir = file.path("C:/temp/irtpro2"),
overwrite = TRUE)
}
Run the code above in your browser using DataLab