est_mg {irtQ} | R Documentation |
Multiple-group item calibration using MMLE-EM algorithm
Description
This function conducts a multiple-group item calibration (Bock & Zimowski, 1997) using the marginal maximum likelihood estimation via the expectation-maximization (MMLE-EM) algorithm (Bock & Aitkin, 1981). This function also implements the multiple-group fixed item parameter calibration (MG-FIPC; e.g., Kim & Kolen, 2016). The MG-FIPC is an extension of the single-group FIPC method (Kim, 2006) to multiple-group data. For dichotomous items, IRT one-, two-, and three-parameter logistic models are available. For polytomous items, the graded response model (GRM) and the (generalized) partial credit model (GPCM) are available.
Usage
est_mg(
x = NULL,
data,
group.name = NULL,
D = 1,
model = NULL,
cats = NULL,
item.id = NULL,
free.group = NULL,
fix.a.1pl = FALSE,
fix.a.gpcm = FALSE,
fix.g = FALSE,
a.val.1pl = 1,
a.val.gpcm = 1,
g.val = 0.2,
use.aprior = FALSE,
use.bprior = FALSE,
use.gprior = TRUE,
aprior = list(dist = "lnorm", params = c(0, 0.5)),
bprior = list(dist = "norm", params = c(0, 1)),
gprior = list(dist = "beta", params = c(5, 16)),
missing = NA,
Quadrature = c(49, 6),
weights = NULL,
group.mean = 0,
group.var = 1,
EmpHist = FALSE,
use.startval = FALSE,
Etol = 0.001,
MaxE = 500,
control = list(eval.max = 200, iter.max = 200),
fipc = FALSE,
fipc.method = "MEM",
fix.loc = NULL,
fix.id = NULL,
se = TRUE,
verbose = TRUE
)
Arguments
x |
A list containing item metadata across all groups to be analyzed. For example, if five group data are analyzed, the list should include
five internal objects of the item metadata for the five groups. The internal objects of the list should be ordered in accordance with the order of the group names
specified in the |
data |
A list containing item response matrices across all groups to be analyzed. For example, if five group data are analyzed, the list should include
five internal objects of the response data matrices for the five groups. The internal objects of the list should be ordered in accordance with the order of the group names
specified in the |
group.name |
A vector of character strings indicating group names. For example, if five group data are analyzed, |
D |
D A scaling factor in IRT models to make the logistic function as close as possible to the normal ogive function (if set to 1.7). Default is 1. |
model |
A list containing character vectors of the IRT models used to calibrate items across all groups' data. For example,
if five group data are analyzed, the list should include five internal objects of the character vectors for the five groups.
The internal objects of the list should be ordered in accordance with the order of the group names specified in the |
cats |
A list containing numeric vectors specifying the number of score categories of items across all groups' data to be analyzed. For example,
if five group data are analyzed, the list should include five internal objects of the numeric vectors for the five groups. The internal objects of the list
should be ordered in accordance with the order of the group names specified in the |
item.id |
A list containing character vectors of item IDs across all groups' data to be analyzed. For example,
if five group data are analyzed, the list should include five internal objects of the character vectors of item IDs for the five groups.
The internal objects of the list should be ordered in accordance with the order of the group names specified in the |
free.group |
A numeric or character vector indicating groups in which scales (i.e., a mean and standard deviation) of the latent ability
distributions are freely estimated. The scales of other groups not specified in this argument are fixed based on the information provided in
the |
fix.a.1pl |
A logical value. If TRUE, the slope parameters of the 1PLM items are fixed to a specific value specified in the argument
|
fix.a.gpcm |
A logical value. If TRUE, the GPCM items are calibrated with the partial credit model and the slope parameters of
the GPCM items are fixed to a specific value specified in the argument |
fix.g |
A logical value. If TRUE, the guessing parameters of the 3PLM items are fixed to a specific value specified in the argument
|
a.val.1pl |
A numeric value. This value is used to fixed the slope parameters of the 1PLM items. |
a.val.gpcm |
A numeric value. This value is used to fixed the slope parameters of the GPCM items. |
g.val |
A numeric value. This value is used to fixed the guessing parameters of the 3PLM items. |
use.aprior |
A logical value. If TRUE, a prior distribution for the slope parameters is used for the parameter calibration across all items. Default is FALSE. |
use.bprior |
A logical value. If TRUE, a prior distribution for the difficulty (or threshold) parameters is used for the parameter calibration across all items. Default is FALSE. |
use.gprior |
A logical value. If TRUE, a prior distribution for the guessing parameters is used for the parameter calibration across all 3PLM items. Default is TRUE. |
aprior |
A list containing the information of the prior distribution for item slope parameters. Three probability distributions
of Beta, Log-normal, and Normal distributions are available. In the list, a character string of the distribution name must be specified
in the first internal argument and a vector of two numeric values for the two parameters of the distribution must be specified in the
second internal argument. Specifically, when Beta distribution is used, "beta" should be specified in the first argument. When Log-normal
distribution is used, "lnorm" should be specified in the first argument. When Normal distribution is used, "norm" should be specified
in the first argument. In terms of the two parameters of the three distributions, see |
bprior |
A list containing the information of the prior distribution for item difficulty (or threshold) parameters. Three probability distributions
of Beta, Log-normal, and Normal distributions are available. In the list, a character string of the distribution name must be specified
in the first internal argument and a vector of two numeric values for the two parameters of the distribution must be specified in the
second internal argument. Specifically, when Beta distribution is used, "beta" should be specified in the first argument. When Log-normal
distribution is used, "lnorm" should be specified in the first argument. When Normal distribution is used, "norm" should be specified
in the first argument. In terms of the two parameters of the three distributions, see |
gprior |
A list containing the information of the prior distribution for item guessing parameters. Three probability distributions
of Beta, Log-normal, and Normal distributions are available. In the list, a character string of the distribution name must be specified
in the first internal argument and a vector of two numeric values for the two parameters of the distribution must be specified in the
second internal argument. Specifically, when Beta distribution is used, "beta" should be specified in the first argument. When Log-normal
distribution is used, "lnorm" should be specified in the first argument. When Normal distribution is used, "norm" should be specified
in the first argument. In terms of the two parameters of the three distributions, see |
missing |
A value indicating missing values in the response data set. Default is NA. |
Quadrature |
A numeric vector of two components specifying the number of quadrature points (in the first component) and the symmetric minimum and maximum values of these points (in the second component). For example, a vector of c(49, 6) indicates 49 rectangular quadrature points over -6 and 6. The quadrature points are used in the E step of the EM algorithm. Default is c(49, 6). |
weights |
A two-column matrix or data frame containing the quadrature points (in the first column) and the corresponding weights
(in the second column) of the latent variable prior distribution. If not NULL, the scale of the latent ability distributions of the groups that
are not freely estimated (i.e., the groups not specified in the |
group.mean |
A numeric value to set the mean of latent variable prior distribution when |
group.var |
A positive numeric value to set the variance of latent variable prior distribution when |
EmpHist |
A logical value. If TRUE, the empirical histograms of the latent variable prior distributions across all groups are simultaneously estimated with the item parameters using Woods's (2007) approach. The items are calibrated against the estimated empirical prior distributions. |
use.startval |
A logical value. If TRUE, the item parameters provided in the item metadata (i.e., the argument |
Etol |
A positive numeric value. This value sets the convergence criterion for E steps of the EM algorithm. Default is 1e-3. |
MaxE |
A positive integer value. This value determines the maximum number of the E steps in the EM algorithm. Default is 500. |
control |
A list of control parameters to be passed to the optimization function of |
fipc |
A logical value. If TRUE, the MG-FIPC is implemented for item parameter estimation. When |
fipc.method |
A character string specifying the FIPC method. Available methods include "OEM" for "No Prior Weights Updating and One EM Cycle
(NWU-OEM; Wainer & Mislevy, 1990)" and "MEM" for "Multiple Prior Weights Updating and Multiple EM Cycles (MWU-MEM; Kim, 2006)."
When |
fix.loc |
A list of positive integer vectors. Each internal integer vector indicates the locations of the items to be fixed in the item metadata
(i.e., |
fix.id |
A vector of character strings specifying IDs of the items to be fixed when the MG-FIPC is implemented (i.e., |
se |
A logical value. If FALSE, the standard errors of the item parameter estimates are not computed. Default is TRUE. |
verbose |
A logical value. If FALSE, all progress messages including the process information on the EM algorithm are suppressed. Default is TRUE. |
Details
The multiple-group (MG) item calibration (Bock & Zimowski, 1996) provides a unified approach to the testing situations or problems involving multiple groups such as nonequivalent groups equating, vertical scaling, and identification of differential item functioning (DIF). In such contexts, typically there exist test takers from different groups responding to the same test form or to the common items shared between different test forms.
The goal of the MG item calibration is to estimate the item parameters and the latent ability distributions of the multiple groups
simultaneously (Bock & Zimowski, 1996). In the irtQ package, the est_mg
function supports the MG item calibration
using the marginal maximum likelihood estimation via the expectation-maximization (MMLE-EM) algorithm (Bock & Aitkin, 1981). In addition,
The function also supports the MG fixed item parameter calibration (MG-FIPC; e.g., Kim & Kolen, 2016) if the parameters of certain items
need to be fixed across multiple test forms,
In MG IRT analyses, it is commonly seen that the test forms of multiple groups share some common (or anchor) items between the groups. By default the common items that have the same item IDs between different groups are automatically constrained so that they can have the same item parameter estimates across the groups in the codeest_mg function.
Most of the features of the est_mg
function are similar with those of the est_irt
function. The main difference is
that several arguments in the est_mg
functions take an object of a list format which contains several internal objects
corresponding to the groups to be analyzed. Those arguments include x
, data
, model
, cats
, item.id
,
and fix.loc
.
Also, the est_mg
has two new arguments, the group.name
and free.group
. The group.name
is required to
assign a unique group name to each group. The order of internal objects in the lists provided in the x
, data
, model
, cats
,
item.id
, and fix.loc
arguments must match that of the group names supplied to the group.name
argument.
The free.group
argument is necessary to indicate the freed groups in which scales (i.e., a mean and standard deviation) of the latent ability
distributions are estimated. When no item parameters are fixed (i.e., fipc = FALSE
), at least one group should have a fixed scale
(e.g., a mean of 0 and variance of 1) of the latent ability distribution among the multiple groups that shares common items in order to
solve the scale indeterminancy in IRT estimation. By providing which are the freed groups into the free.group
argument, the scales
of the groups specified in the free.group
argument are freely estimated while the scales of all other groups not specified
in the argument are fixed based on the information provided in the group.mean
and group.var
arguments or
the weights
argument.
The situations where the implementation of MG-FIPC is necessary arise when the new latent ability scales from MG test data are linked to the established scale (e.g., the scale of an item bank). In a single run of MG-FIPC method, all the parameters of freed items across multiple test forms and the density of the latent ability distributions for multiple groups can be estimated on the scale of the fixed items (Kim & Kolen, 2016). Suppose that three different test forms, Form 1, Form 2, and Form 3, are administered to three nonequivalent groups, Group1, Group2, and Group3. Form 1 and Form 2 share 12 common items, C1I1 to C1I12, and Form 2 and Form 3 share 10 common items, C2I1 to C2I10, while there is no common item between Form 1 and Form 3. Also, suppose that all unique items of Form 1 came from an item bank, which were already calibrated on the scale of the item bank. In this case, the goal of the MG-FIPC is to estimate the parameters of all the items across the three test forms, except the unique items in Form 1, and the latent ability distributions of the three groups on the same scale of the item bank. To accomplish this task, the unique items in Form 1 need to be fixed during the MG-FIPC to link the current MG test data and the item bank.
The est_mg
function can implement the MG-FIPC by setting fipc = TRUE
. Then, the information of which items are fixed needs
to be supplied via either of fix.loc
or fix.id
. When utilizing the fix.loc
argument, a list of the locations of the items that are
fixed in each group test form should be prepared. For example, suppose that three group data are analyzed. For the first group test form,
the 1st, 3rd, and 5th items are fixed, for the second group test form, the 2nd, 3rd, 4th, and 7th items are fixed, and for the third group test form,
the 1st, 2nd, and 6th items are fixed. Then fix.loc = list(c(1, 3, 5), c(2, 3, 4, 7), c(1, 2, 6))
. Instead of using the fix.loc
, the fix.id
argument can be used by providing a vector of the IDs of the items to be fixed. Again suppose that the three group data are analyzed. For the first group
test form, the three items in which IDs are G1I1, C1I1, are C1I2 are fixed. For the second group test form, the four items in which IDs are C1I1, C1I2, C2I1,
and C2I2 are fixed. For the third group test form, the three items in which IDs are C2I1, C2I2, and G3I1 are fixed. Then there are six unique items to
be fixed across the three groups (i.e., G1I1, C1I1, C1I2, C2I1, C2I2, and G3I1) because C1I1 and C1I2 are common items between the first and the second groups,
and C2I1 and C2I2 are common items between the second and the third groups. Thus, fix.id = c("G1I1", "C1I1", "C1I2", "C2I1", "C2I2", "G3I1")
should be
set. Note that when the information of item IDs supplied in the fix.id
argument overrides the information provided into the fix.loc
argument.
Value
This function returns an object of class est_mg
. Within this object, several internal objects are contained such as:
estimates |
A list containing two internal objects (i.e., overall and group) of the item parameter estimates and the corresponding standard errors of estimates. The first internal object (overall) is a data frame of the item parameter and standard error estimates for the combined data set across all groups. Accordingly, the data frame includes unique items across all groups. The second internal object (group) is a list of group specific data frames containing item parameter and standard error estimates |
par.est |
A list containing two internal objects (i.e., overall and group) of the item parameter estimates. The format of the list is the same with the internal object of 'estimates' |
se.est |
A list containing two internal objects (i.e., overall and group) of the standard errors of item parameter estimates. The format of the list is the same with the internal object of 'estimates'. Note that the standard errors are estimated using the cross-production approximation method (Meilijson, 1989). |
pos.par |
A data frame containing the position number of each item parameter being estimated. This item position data frame was created based on the combined data sets across all groups (see the first internal object of 'estimates'). The position information is useful when interpreting the variance-covariance matrix of item parameter estimates. |
covariance |
A matrix of variance-covariance matrix of item parameter estimates. This matrix was created based on the combined data sets across all groups (see the first internal object of 'estimates') |
loglikelihood |
A list containing two internal objects (i.e., overall and group) of the log-likelihood values of observed data set (marginal log-likelihood). The format of the list is the same with the internal object of 'estimates'. Specifically, the first internal object (overall) contains a sum of the log-likelihood values of the observed data set across all unique items of all groups. The second internal object (group) shows the group specific log-likelihood values. |
aic |
A model fit statistic of Akaike information criterion based on the loglikelihood of all unique items.. |
bic |
A model fit statistic of Bayesian information criterion based on the loglikelihood of all unique items. |
group.par |
A list containing the summary statistics (i.e., a mean, variance, and standard deviation) of latent variable prior distributions across all groups. |
weights |
a list of the two-column data frames containing the quadrature points (in the first column) and the corresponding weights (in the second column) of the (updated) latent variable prior distributions for all groups. |
posterior.dist |
A matrix of normalized posterior densities for all the response patterns at each of the quadrature points. The row and column indicate each individual's response pattern and the quadrature point, respectively. |
data |
A list containing two internal objects (i.e., overall and group) of the examinees' response data sets. The format of the list is the same with the internal object of 'estimates'. |
scale.D |
A scaling factor in IRT models. |
ncase |
A list containing two internal objects (i.e., overall and group) with the total number of response patterns. The format of the list is the same with the internal object of 'estimates'. |
nitem |
A list containing two internal objects (i.e., overall and group) with the total number of items included in the response data set. The format of the list is the same with the internal object of 'estimates'. |
Etol |
A convergence criteria for E steps of the EM algorithm. |
MaxE |
The maximum number of E steps in the EM algorithm. |
aprior |
A list containing the information of the prior distribution for item slope parameters. |
gprior |
A list containing the information of the prior distribution for item guessing parameters. |
npar.est |
A total number of the estimated parameters across all unique items. |
niter |
The number of EM cycles completed. |
maxpar.diff |
A maximum item parameter change when the EM cycles were completed. |
EMtime |
Time (in seconds) spent for the EM cycles. |
SEtime |
Time (in seconds) spent for computing the standard errors of the item parameter estimates. |
TotalTime |
Time (in seconds) spent for total compuatation. |
test.1 |
Status of the first-order test to report if the gradients has vanished sufficiently for the solution to be stable. |
test.2 |
Status of the second-order test to report if the information matrix is positive definite, which is a prerequisite for the solution to be a possible maximum. |
var.note |
A note to report if the variance-covariance matrix of item parameter estimates is obtainable from the information matrix. |
fipc |
A logical value to indicate if FIPC was used. |
fipc.method |
A method used for the FIPC. |
fix.loc |
A list containing two internal objects (i.e., overall and group) with the locations of the fixed items when the FIPC was implemented. The format of the list is the same with the internal object of 'estimates'. |
The internal objects can be easily extracted using the function getirt
.
Author(s)
Hwanggyu Lim hglim83@gmail.com
References
Bock, R. D., & Aitkin, M. (1981). Marginal maximum likelihood estimation of item parameters: Application of an EM algorithm. Psychometrika, 46, 443-459.
Bock, R. D., & Zimowski, M. F. (1997). Multiple group IRT. In W. J. van der Linden & R. K. Hambleton (Eds.), Handbook of modern item response theory (pp. 433-448). New York: Springer.
Kim, S. (2006). A comparative study of IRT fixed parameter calibration methods. Journal of Educational Measurement, 43(4), 355-381.
Kim, S., & Kolen, M. J. (2016). Multiple group IRT fixed-parameter estimation for maintaining an extablished ability scale. Center for Advanced Studies in Measurement and Assessment Report, 49.
Meilijson, I. (1989). A fast improvement to the EM algorithm on its own terms. Journal of the Royal Statistical Society: Series B (Methodological), 51, 127-138.
Woods, C. M. (2007). Empirical histograms in item response theory with ordinal data. Educational and Psychological Measurement, 67(1), 73-87.
See Also
Examples
##------------------------------------------------------------------------------
# 1. MG-calibration using simMG data
# - Details :
# (a) constrain the common items between the groups to have
# the same item parameters (i.e., items C1I1 - C1I12 between
# Groups 1 and 2, and items C2I1 - C2I10 between Groups 2 and 3)
# (b) freely estimate the means and variances of ability
# distributions except the reference group in which mean
# and variance are fixed to 0 and 1, respectively.
##------------------------------------------------------------------------------
# 1-(1). freely estimates the means and variances of groups 2 and 3
# import the true item metadata of the three groups
x <- simMG$item.prm
# extract model, score category, and item ID information from
# the item metadata for the three groups
model <- list(x$Group1$model, x$Group2$model, x$Group3$model)
cats <- list(x$Group1$cats, x$Group2$cats, x$Group3$cats)
item.id <- list(x$Group1$id, x$Group2$id, x$Group3$id)
# import the simulated response data sets of the three groups
data <- simMG$res.dat
# import the group names of the three groups
group.name <- simMG$group.name
# set the groups 2 and 3 as the free groups in which scale
# of the ability distributions will be freely estimated.
# then, the group 1 will be a reference group in which the scale
# of the ability distribution will be fixed to the values specified
# in the 'group.mean' and 'group.var' arguments
free.group <- c(2, 3) # or use 'free.group <- group.name[2:3]'
# estimate the IRT parameters:
# as long as the common items between any groups have the same item IDs,
# their item parameters will be constrained to be the same between
# the groups unless the FIPC is not implemented
fit.1 <-
est_mg(data=data, group.name=group.name, model=model,
cats=cats, item.id=item.id, D=1, free.group=free.group,
use.gprior=TRUE, gprior=list(dist="beta", params=c(5, 16)),
group.mean=0, group.var=1, EmpHist=TRUE, Etol=0.001, MaxE=500)
# summary of the estimation
summary(fit.1)
# extract the item parameter estimates
getirt(fit.1, what="par.est")
# extract the standard error estimates
getirt(fit.1, what="se.est")
# extract the group parameter estimates (i.e., scale parameters)
getirt(fit.1, what="group.par")
# extract the posterior latent ability distributions of the groups
getirt(fit.1, what="weights")
# 1-(2). or the same parameter estimation can be implemented by
# inserting a list of item metadata for the groups into the 'x'
# argument. if the item metadata contains the item parameters
# which you want to use as starting values for the estimation,
# you can set 'use.startval = TRUE'.
# also set the groups in which scales of ability distributions
# will be freely estimated using the group names
free.group <- group.name[2:3]
fit.2 <-
est_mg(x=x, data=data, group.name=group.name, D=1,
free.group=free.group, use.gprior=TRUE,
gprior=list(dist="beta", params=c(5, 16)),
group.mean=0, group.var=1, EmpHist=TRUE, use.startval=TRUE,
Etol=0.001, MaxE=500)
# summary of the estimation
summary(fit.2)
##------------------------------------------------------------------------------
# 2. MG-calibration with the FIPC using simMG data
# - Details :
# (a) fix the parameters of the common items between the groups
# (i.e., items C1I1 - C1I12 between Groups 1 and 2, and
# items C2I1 - C2I10 between Groups 2 and 3)
# (b) freely estimate the means and variances of ability
# distributions of all three groups
##------------------------------------------------------------------------------
# 2-(1). freely estimates the means and variances of all three groups
# set all three groups as the free groups in which scale
# of the ability distributions will be freely estimated.
free.group <- 1:3 # or use 'free.group <- group.name'
# specify the locations of items to be fixed in each group data
# note that for the first group, the common items C1I1 - C1I12 are located
# in the 1st - 10th and 11th to 12th rows of the first group's item metadata
# for the second group, the common items C1I1 - C1I12 are located
# in the 1st - 12th rows of the second group's item metadata
# also, for the second group, the common items C2I1 - C2I10 are located
# in the 41st - 50th rows of the second group's item metadata
# for the third group, the common items C2I1 - C2I10 are located
# in the 1st - 10th rows of the third group's item metadata
fix.loc <- list(c(1:10, 49:50),
c(1:12, 41:50),
c(1:10))
# estimate the IRT parameters using FIPC:
# when the FIPC is implemented, a list of the item metadata for all
# groups must be provided into the 'x' argument.
# for the fixed items, their item parameters must be specified
# in the item metadata
# for other non-fixed items, any parameter values can be provided
# in the item metadata
# also, set fipc = TRUE and fipc.method = "MEM"
fit.3 <-
est_mg(x=x, data=data, group.name=group.name, D=1,
free.group=free.group, use.gprior=TRUE,
gprior=list(dist="beta", params=c(5, 16)),
EmpHist=TRUE, Etol=0.001, MaxE=500, fipc=TRUE,
fipc.method="MEM", fix.loc=fix.loc)
# summary of the estimation
summary(fit.3)
# extract the item parameter estimates
getirt(fit.3, what="par.est")
# extract the standard error estimates
getirt(fit.3, what="se.est")
# extract the group parameter estimates (i.e., scale parameters)
getirt(fit.3, what="group.par")
# extract the posterior latent ability distributions of the groups
getirt(fit.3, what="weights")
# 2-(2). or the FIPC can be implemented by providing which items
# will be fixed in a different way using the 'fix.id' argument.
# a vector of the fixed item IDs needs to be provided into the
# 'fix.id' argument as such.
fix.id <- c(paste0("C1I", 1:12), paste0("C2I", 1:10))
fit.4 <-
est_mg(x=x, data=data, group.name=group.name, D=1,
free.group=free.group, use.gprior=TRUE,
gprior=list(dist="beta", params=c(5, 16)),
EmpHist=TRUE, Etol=0.001, MaxE=500, fipc=TRUE,
fipc.method="MEM", fix.id=fix.id)
# summary of the estimation
summary(fit.4)
##------------------------------------------------------------------------------
# 3. MG-calibration with the FIPC using simMG data
# (estimate the group parameters only)
# - Details :
# (a) fix all item parameters across all three groups
# (b) freely estimate the means and variances of ability
# distributions of all three groups
##------------------------------------------------------------------------------
# 3-(1). freely estimates the means and variances of all three groups
# set all three groups as the free groups in which scale
# of the ability distributions will be freely estimated.
free.group <- 1:3 # or use 'free.group <- group.name'
# specify the locations of all item parameters to be fixed
# in each item metadata
fix.loc <- list(1:50, 1:50, 1:38)
# estimate the group parameters only using FIPC:
fit.5 <-
est_mg(x=x, data=data, group.name=group.name, D=1,
free.group=free.group, use.gprior=TRUE,
gprior=list(dist="beta", params=c(5, 16)),
EmpHist=TRUE, Etol=0.001, MaxE=500, fipc=TRUE,
fipc.method="MEM", fix.loc=fix.loc)
# summary of the estimation
summary(fit.5)
# extract the group parameter estimates (i.e., scale parameters)
getirt(fit.5, what="group.par")
##------------------------------------------------------------------------------
# 4. MG-calibration with the FIPC using simMG data
# (fix the unique items of the group 1 only)
# - Details :
# (a) fix item parameters of unique items in the group 1 only
# (b) constrain the common items between the groups to have
# the same item parameters (i.e., items C1I1 - C1I12 between
# Groups 1 and 2, and items C2I1 - C2I10 between Groups 2 and 3)
# (c) freely estimate the means and variances of ability
# distributions of all three groups
##------------------------------------------------------------------------------
# 4-(1). freely estimates the means and variances of all three groups
# set all three groups as the free groups in which scale
# of the ability distributions will be freely estimated.
free.group <- group.name # or use 'free.group <- 1:3'
# specify the item IDs of the unique items in the group 1 to be fixed
# in each item metadata using the 'fix.id' argument or
# you can use the 'fix.loc' argument by setting
# 'fix.loc = list(11:48, NULL, NULL)'
fix.id <- paste0("G1I", 1:38)
# estimate the IRT parameters using FIPC:
fit.6 <-
est_mg(x=x, data=data, group.name=group.name, D=1,
free.group=free.group, use.gprior=TRUE,
gprior=list(dist="beta", params=c(5, 16)),
EmpHist=TRUE, Etol=0.001, MaxE=500, fipc=TRUE,
fipc.method="MEM", fix.loc=NULL, fix.id=fix.id)
# summary of the estimation
summary(fit.6)
# extract the group parameter estimates (i.e., scale parameters)
getirt(fit.6, what="group.par")