Title: | Calibrating Parameters for the Samejima's Continuous IRT Model |
---|---|
Description: | Estimates item and person parameters for the Continuous Response Model (CRM; Samejima, 1973, <doi:10.1007/BF02291114>), computes item fit residual statistics, draws empirical 3D item category response curves, draws theoretical 3D item category response curves, and generates data under the CRM for simulation studies. |
Authors: | Cengiz Zopluoglu |
Maintainer: | Cengiz Zopluoglu <[email protected]> |
License: | GPL (>= 2) |
Version: | 1.6 |
Built: | 2025-03-02 03:33:41 UTC |
Source: | https://github.com/cran/EstCRM |
Computes the standard errors of item parameter estimates using a non-parametric bootstrapping approach
bootCRM(data,max.item,min.item,max.EMCycle=500,converge=.01, type="Shojima",BFGS=TRUE,nsample=50)
bootCRM(data,max.item,min.item,max.EMCycle=500,converge=.01, type="Shojima",BFGS=TRUE,nsample=50)
data |
a data frame with N rows and m columns, with N denoting the number of subjects and m denoting the number of items. |
max.item |
a vector of length m indicating the maximum possible score for each item. |
min.item |
a vector of length m indicating the minimum possible score for each item. |
max.EMCycle |
a number of maximum EM Cycles used in the iteration. Default is 500. |
converge |
a criteria value indicating the difference between loglikelihoods of two consecutive EM cycles to stop the iteration. Default is .01 |
type |
type of optimization. Default is the non-iterative EM developed by Shojima(2005). |
BFGS |
a valid argument when |
nsample |
a number of bootstrap samples used in estimating the standard errors. Default is 50 |
bootCRM
computes the standard errors of item parameter estimates using a non-parametric bootstrap sampling approach.
bootCRM
returns a list with three elements. Each element of the list is an mx3 matrix where m is the number of items. The first column includes the item parameter estimates from the original sample, the second column includes the average item parameter estimates from R bootstrap samples (the mean of the empirical sampling distribution), and the third column includes the standard errors of the item parameter estimates obtained from bootstrap samples (standard deviation of the empirical sampling distribution).
Discrimination |
Estimates for item discriminations |
Difficulty |
Estimates for item difficulties |
Alpha |
Estimates for alpha parameters |
It may make take too long to get the results if you request a large number of bootstrap samples. By default, the number of bootstrap samples is 50, and it takes a couple minutes for the sample datasets provided in the package. It would be a good idea to try 100 or 500 bootstrap samples if you have enough time.
Cengiz Zopluoglu
EstCRMitem
for estimating item parameters,
EstCRMperson
for estimating person parameters,
fitCRM
for computing item-fit statistics and drawing empirical 3D item response curves,
plotCRM
for drawing theoretical 3D item category response curves,
## Not run: ##load the dataset EPIA data(EPIA) bootCRM(data=EPIA, max.item=c(112,112,112,112,112), min.item=c(0,0,0,0,0), max.EMCycle=200, converge=.01, nsample=100) ##load the dataset SelfEff data(SelfEff) bootCRM(data=SelfEff, max.item=c(11,11,11,11,11,11,11,11,11,11), min.item=c(0,0,0,0,0,0,0,0,0,0), max.EMCycle=200, converge=.01, nsample=100) ## End(Not run)
## Not run: ##load the dataset EPIA data(EPIA) bootCRM(data=EPIA, max.item=c(112,112,112,112,112), min.item=c(0,0,0,0,0), max.EMCycle=200, converge=.01, nsample=100) ##load the dataset SelfEff data(SelfEff) bootCRM(data=SelfEff, max.item=c(11,11,11,11,11,11,11,11,11,11), min.item=c(0,0,0,0,0,0,0,0,0,0), max.EMCycle=200, converge=.01, nsample=100) ## End(Not run)
The data came from a published study and was kindly provided by Dr. Ferrando. A group of 1,033 undergraduate students were asked to check on a 112 mm line segment with two end points (almost never, almost always) using their own judgement for the five items taken from the Spanish version of the EPI-A impulsivity subscale. The direct item score was the distance in mm of the check mark from the left end point (Ferrando, 2002).
data(EPIA)
data(EPIA)
A data frame with 1033 observations on the following 5 variables.
Item 1
Longs for excitement
Item 2
Does not stop and think things over before doing anything
Item 3
Often shouts back when shouted at
Item 4
Likes doing things in which he/she has to act quickly
Item 5
Tends to do many things at the same time
Ferrando, P.J.(2002). Theoretical and Empirical Comparison between Two Models for Continuous Item Responses. Multivariate Behavioral Research, 37(4), 521-542.
Ferrando, P.J.(2002). Theoretical and Empirical Comparison between Two Models for Continuous Item Responses. Multivariate Behavioral Research, 37(4), 521-542.
This package includes the tools to estimate model parameters for the Samejima's Continuous Response Model (CRM) via marginal maximum likelihood estimation and EM algorithm, to compute item fit residual statistics, to draw empirical 3D item category response curves, to draw theoretical 3D item category response curves, and to generate data under the CRM for simulation studies.
Package: | EstCRM |
Type: | Package |
Version: | 1.5 |
Date: | 2022-06-13 |
License: | GPL-2 |
LazyLoad: | yes |
The package can be used to estimate item parameters by using EstCRMitem
, to estimate person ability parameters by using EstCRMperson
, to compute the item fit residual statistics after parameter calibration by using fitCRM
, to draw empirical 3D item category response curves by using fitCRM
, to draw theoretical 3D item category response curves by using plotCRM
, and to generate data under the Continuous Response Model for the simulation studies by using simCRM
.
Cengiz Zopluoglu
Maintainer: Cengiz Zopluoglu <[email protected]>
Kan, A.(2009). Effect of scale response format on psychometric properties in teaching self-efficacy. Euroasian Journal of Educational Research, 34, 215-228.
Ferrando, P.J.(2002). Theoretical and Empirical Comparison between Two Models for Continuous Item Responses. Multivariate Behavioral Research, 37(4), 521-542.
Samejima, F.(1973). Homogeneous Case of the Continuous Response Model. Psychometrika, 38(2), 203-219.
Shojima, K.(2005). A Noniterative Item Parameter Solution in Each EM Cycyle of the Continuous Response Model. Educational Technology Research, 28, 11-22.
Wang, T. & Zeng, L.(1998). Item Parameter Estimation for a Continuous Response Model Using an EM Algorithm. Applied Psychological Measurement, 22(4), 333-343.
EstCRMitem
for estimating item parameters,
EstCRMperson
for estimating person parameters,
fitCRM
for computing item-fit residual statistics and drawing empirical 3D item category response curves,
plotCRM
for drawing theoretical 3D item category response curves,
simCRM
for simulating data under CRM.
Estimate item parameters for the Continuous Response Model (Samejima,1973)
EstCRMitem(data, max.item, min.item, max.EMCycle = 500, converge = 0.01, type="Shojima",BFGS=TRUE)
EstCRMitem(data, max.item, min.item, max.EMCycle = 500, converge = 0.01, type="Shojima",BFGS=TRUE)
data |
a data frame with N rows and m columns, with N denoting the number of subjects and m denoting the number of items. |
max.item |
a vector of length m indicating the maximum possible score for each item. |
min.item |
a vector of length m indicating the minimum possible score for each item. |
max.EMCycle |
a number of maximum EM Cycles used in the iteration. Default 500. |
converge |
a criteria value indicating the difference between loglikelihoods of two consecutive EM cycles to stop the iteration. Default .01 |
type |
type of optimization. Takes two values, either "Shojima" or "Wang&Zeng". Default is the non-iterative EM developed by Shojima(2005). See details. |
BFGS |
a valid argument when |
Samejima (1973) proposed an IRT model for continuous item scores as a limiting form of the graded response model. Even though the Continuous Response Model (CRM) is as old as the well-known and popular binary and polytomous IRT models, it is not commonly used in practice. This may be due to the lack of accessible computer software to estimate the parameters for the CRM. Another reason might be that the continuous outcome is not a type of response format commonly observed in the field of education and psychology. There are few published studies that used the CRM (Ferrando, 2002; Wang & Zeng, 1998). In the field of education, the model may have useful applications for estimating a single reading ability from a set of reading passages in the Curriculum Based Measurement context. Also, this type of continuous response format may be more frequently observed in the future as the use of computerized testing increases. For instance, the examinees or raters may check anywhere on the line between extremely positive and extremely negative in a computerized testing environment rather than responding to a likert type item.
Wang & Zeng (1998) proposed a re-parameterized version of the CRM. In this re-parameterization, the probability of an examinee i with a spesific θ obtaining a score of x or higher on a particular item j with a continuous measurement scale ranging from 0 to k and with the parameters a, b, and α is defined as the following:
where a is a discrimination parameter, b is a difficulty parameter, and α represents a scaling parameter that defines some scale transformation linking the original observed score scale to the θ scale (Wang & Zeng, 1998). k is the maximum possible score for the item. a and b in this model have practical meaning and are interpreted same as in the binary and polytomous IRT models. α is a scaling parameter and does not have a practical meaning.
In the model fitting process, the observed X scores are first transformed to a random variable Z by using the following equation:
Then, the conditional probability density function of the random variable Z is equal to:
The conditional pdf of Z is a normal density function with a mean of α(θ-b) and a variance of α^2/ a^2.
Wang & Zeng (1998) proposed an algorithm to estimate the CRM parameters via marginal maximum likelihood and Expectation-Maximization (EM) algorithm. In the Expectation step, the expected log-likelihood function is obtained based on the integration over the posterior θ distribution by using the Gaussian quadrature points. In the Maximization step, the parameters are estimated by solving the first and second derivatives of the expected log-likelihood function with rescpect to a, b, and α parameters via Newton-Raphson procedure. A sequence of E-step and M-step repeats until the difference between the two consecutive loglikelihoods is smaller than a convergence criteria. This procedure is available through type="Wang&Zeng"
argument. If type
is equal to "Wang&Zeng", then user can specify BFGS
argument as either TRUE or FALSE. If BFGS
argument is TRUE, then the Broyden-Fletcher-Goldfarb-Shanno (BFGS) algorithm is used to approximate Hessian. If BFGS
argument is FALSE, then the Hessian is directly computed.
Shojima (2005) simplified the EM algorithm proposed by Wang & Zeng(1998). He derived the closed formulas for computing the loglikelihood in the E-step and estimating the parameters in the M-step (please see the reference paper below for equations). He showed that the equations of the first derivatives in the M-step can be solved algebraically by assuming flat (non-informative) priors for the item parameters. This procedure is available through type="Shojima"
argument.
EstCRMitem()
returns an object of class "CRM
". An object of class "CRM
" is a list containing the following components:
data |
original data |
descriptive |
descriptive statistics for the original data and the transformed z scores |
param |
estimated item parameters in the last EM Cycle |
iterations |
a list that reports the information for each EM cycle |
dif |
The difference of loglikelihoods between the last two EM cycles |
* The ID variable ,if included, has to be excluded from the data before the analysis. If the format of the data is not a "data frame", the function does not work. Please use "as.data.frame()" to change the format of the input data.
* A previous published simulation study (Shojima, 2005) was replicated as an example to check the performance of EstCRMitem()
.Please see the examples of simCRM
in this package.
*The example below is a reproduction of the results from another published study (Ferrando, 2002). Dr. Ferrando kindly provided the dataset used in the published study. The dataset was previously analyzed by using EM2 program and the estimated CRM item parameters were reported in Table 2 in the paper. The estimates from EstCRMitem()
is comparable to the item parameter estimates reported in Table 2.
Cengiz Zopluoglu
Ferrando, P.J.(2002). Theoretical and Empirical Comparison between Two Models for Continuous Item Responses. Multivariate Behavioral Research, 37(4), 521-542.
Samejima, F.(1973). Homogeneous Case of the Continuous Response Model. Psychometrika, 38(2), 203-219.
Shojima, K.(2005). A Noniterative Item Parameter Solution in Each EM Cycyle of the Continuous Response Model. Educational Technology Research, 28, 11-22.
Wang, T. & Zeng, L.(1998). Item Parameter Estimation for a Continuous Response Model Using an EM Algorithm. Applied Psychological Measurement, 22(4), 333-343.
EstCRMperson
for estimating person parameters,
fitCRM
for computing item-fit residual statistics and drawing empirical 3D item category response curves,
plotCRM
for drawing theoretical 3D item category response curves,
simCRM
for generating data under CRM.
## Not run: ##load the dataset EPIA data(EPIA) ##Check the class. "data.frame" is required. class(EPIA) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 112 and the minimum possible score was 0 for all items max.item <- c(112,112,112,112,112) min.item <- c(0,0,0,0,0) ##The maximum number of EM Cycle and the convergence criteria can be ##specified max.EMCycle=200 converge=.01 ##Estimate the item parameters CRM <- EstCRMitem(EPIA, max.item, min.item, max.EMCycle, converge) CRM ##Other details CRM$descriptive CRM$param CRM$iterations CRM$dif ##load the dataset SelfEff data(SelfEff) ##Check the class. "data.frame" is required. class(SelfEff) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 11 and the minimum possible score was 0 for all items max.item <- c(11,11,11,11,11,11,11,11,11,11) min.item <- c(0,0,0,0,0,0,0,0,0,0) ##Estimate the item parameters CRM2 <- EstCRMitem(SelfEff, max.item, min.item, max.EMCycle=200, converge=.01) CRM2 ##Other details CRM2$descriptive CRM2$param CRM2$iterations CRM2$dif ## End(Not run)
## Not run: ##load the dataset EPIA data(EPIA) ##Check the class. "data.frame" is required. class(EPIA) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 112 and the minimum possible score was 0 for all items max.item <- c(112,112,112,112,112) min.item <- c(0,0,0,0,0) ##The maximum number of EM Cycle and the convergence criteria can be ##specified max.EMCycle=200 converge=.01 ##Estimate the item parameters CRM <- EstCRMitem(EPIA, max.item, min.item, max.EMCycle, converge) CRM ##Other details CRM$descriptive CRM$param CRM$iterations CRM$dif ##load the dataset SelfEff data(SelfEff) ##Check the class. "data.frame" is required. class(SelfEff) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 11 and the minimum possible score was 0 for all items max.item <- c(11,11,11,11,11,11,11,11,11,11) min.item <- c(0,0,0,0,0,0,0,0,0,0) ##Estimate the item parameters CRM2 <- EstCRMitem(SelfEff, max.item, min.item, max.EMCycle=200, converge=.01) CRM2 ##Other details CRM2$descriptive CRM2$param CRM2$iterations CRM2$dif ## End(Not run)
Estimate person parameters for the Continuous Response Model(Samejima,1973)
EstCRMperson(data,ipar,min.item,max.item)
EstCRMperson(data,ipar,min.item,max.item)
data |
a data frame with N rows and m columns, with N denoting the number of subjects and m denoting the number of items. |
ipar |
a matrix with m rows and three columns, with m denoting the number of items. The first column is the a parameters, the second column is the b parameters, and the third column is the alpha parameters |
min.item |
a vector of length m indicating the minimum possible score for each item. |
max.item |
a vector of length m indicating the maximum possible score for each item. |
Samejima(1973) derived the closed formula for the maximum likelihood estimate (MLE) of the person parameters (ability levels) under Continuous Response Model. Given that the item parameters are known, the parameter for person i (ability level) can be estimated from the following equation:
As suggested in Ferrando (2002), the ability level estimates are re-scaled once they are obtained from the equation above. So, the mean and the variance of the sample estimates equal those of the latent distribution on which the estimation is based.
Samejima (1973) also derived that the item information is equal to:
So, the item information is constant along the theta continuum in the Continuous Response Model.
The asymptotic standard error of the MLE ability level estimate is the square root of the reciprocal of the total test information:
In the Continuous Response Model, the standard error of the ability estimate is same for all examinees unless an examinee has missing data. If the examinee has missing data, the ability level estimate and its standard error is obtained from the available item scores.
EstCRMperson()
returns an object of class "CRMtheta
". An object of class "CRMtheta
" contains the following component:
thetas |
a three column matrix, the first column is the examinee ID, the second column is the re-scaled theta estimate, the third column is the standard error of the theta estimate. |
See the examples of simCRM
for an R code that runs a simulation to examine the recovery of person parameter estimates by EstCRMperson
.
Cengiz Zopluoglu
Ferrando, P.J.(2002). Theoretical and Empirical Comparison between Two Models for Continuous Item Responses. Multivariate Behavioral Research, 37(4), 521-542.
Samejima, F.(1973). Homogeneous Case of the Continuous Response Model. Psychometrika, 38(2), 203-219.
Wang, T. & Zeng, L.(1998). Item Parameter Estimation for a Continuous Response Model Using an EM Algorithm. Applied Psychological Measurement, 22(4), 333-343.
EstCRMitem
for estimating item parameters,
fitCRM
for computing item-fit residual statistics and drawing empirical 3D item category response curves,
plotCRM
for drawing theoretical 3D item category response curves,
simCRM
for generating data under CRM.
## Not run: #Load the dataset EPIA data(EPIA) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 112 and the minimum possible score was 0 for all items max.item <- c(112,112,112,112,112) min.item <- c(0,0,0,0,0) ##Estimate item parameeters CRM <- EstCRMitem(EPIA, max.item, min.item, max.EMCycle = 500, converge = 0.01) par <- CRM$param ##Estimate the person parameters CRMthetas <- EstCRMperson(EPIA,par,min.item,max.item) theta.par <- CRMthetas$thetas theta.par #Load the dataset SelfEff data(SelfEff) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 11 and the minimum possible score was 0 for all items max.item <- c(11,11,11,11,11,11,11,11,11,11) min.item <- c(0,0,0,0,0,0,0,0,0,0) ##Estimate the item parameters CRM2 <- EstCRMitem(SelfEff, max.item, min.item, max.EMCycle=200, converge=.01) par2 <- CRM2$param ##Estimate the person parameters CRMthetas2 <- EstCRMperson(SelfEff,par2,min.item,max.item) theta.par2 <- CRMthetas2$thetas theta.par2 ## End(Not run)
## Not run: #Load the dataset EPIA data(EPIA) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 112 and the minimum possible score was 0 for all items max.item <- c(112,112,112,112,112) min.item <- c(0,0,0,0,0) ##Estimate item parameeters CRM <- EstCRMitem(EPIA, max.item, min.item, max.EMCycle = 500, converge = 0.01) par <- CRM$param ##Estimate the person parameters CRMthetas <- EstCRMperson(EPIA,par,min.item,max.item) theta.par <- CRMthetas$thetas theta.par #Load the dataset SelfEff data(SelfEff) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 11 and the minimum possible score was 0 for all items max.item <- c(11,11,11,11,11,11,11,11,11,11) min.item <- c(0,0,0,0,0,0,0,0,0,0) ##Estimate the item parameters CRM2 <- EstCRMitem(SelfEff, max.item, min.item, max.EMCycle=200, converge=.01) par2 <- CRM2$param ##Estimate the person parameters CRMthetas2 <- EstCRMperson(SelfEff,par2,min.item,max.item) theta.par2 <- CRMthetas2$thetas theta.par2 ## End(Not run)
Compute item fit residual statistics for the Continuous Response Model as described in Ferrando (2002)
fitCRM(data, ipar, est.thetas, max.item,group)
fitCRM(data, ipar, est.thetas, max.item,group)
data |
a data frame with N rows and m columns, with N denoting the number of subjects and m denoting the number of items. |
ipar |
a matrix with m rows and three columns, with m denoting the number of items. The first column is the a parameters, the second column is the b parameters, and the third column is the alpha parameters |
est.thetas |
object of class " |
max.item |
a vector of length m indicating the maximum possible score for each item. |
group |
an integer, number of ability groups to compute item fit residual statistics. Default 20. |
The function computes the item fit residual statistics as decribed in Ferrando (2002). The steps in the procedure are as the following:
1- Re-scaled θ estimates are obtained.
2- θ estimates are sorted and assigned to k intervals on the θ continuum.
3- The mean item score is computed in each interval for each of the items.
4- The expected item score and the conditional variance in each interval are obtained with the item parameter estimates and taking the median theta estimate for the interval.
5- An approximate standardized residual for item m at ability interval k is obtained as:
fit.stat |
a data frame with k rows and m+1 columns with k denoting the number of ability intervals and m denoting the number of items. The first column is the ability interval. Other elements are the standardized residuals of item m in ability interval k. |
emp.irf |
a list of length m with m denoting the number of items. Each element is a 3D plot representing the item category response curve based on the empirical probabilities. See examples below. |
Cengiz Zopluoglu
Ferrando, P.J.(2002). Theoretical and Empirical Comparison between Two Models for Continuous Item Responses. Multivariate Behavioral Research, 37(4), 521-542.
EstCRMperson
for estimating person parameters,
EstCRMitem
for estimating item parameters
plotCRM
for drawing theoretical 3D item category response curves,
simCRM
for generating data under CRM.
## Not run: ##load the dataset EPIA data(EPIA) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 112 and the minimum possible score was 0 for all items max.item <- c(112,112,112,112,112) min.item <- c(0,0,0,0,0) ##Estimate item parameters CRM <- EstCRMitem(EPIA, max.item, min.item, max.EMCycle = 500, converge = 0.01) par <- CRM$param ##Estimate the person parameters CRMthetas <- EstCRMperson(EPIA,par,min.item,max.item) ##Compute the item fit residual statistics and empirical item category ##response curves fit <- fitCRM(EPIA, par, CRMthetas, max.item,group=10) ##Item-fit residual statistics fit$fit.stat ##Empirical item category response curves fit$emp.irf[[1]] #Item 1 ## End(Not run)
## Not run: ##load the dataset EPIA data(EPIA) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 112 and the minimum possible score was 0 for all items max.item <- c(112,112,112,112,112) min.item <- c(0,0,0,0,0) ##Estimate item parameters CRM <- EstCRMitem(EPIA, max.item, min.item, max.EMCycle = 500, converge = 0.01) par <- CRM$param ##Estimate the person parameters CRMthetas <- EstCRMperson(EPIA,par,min.item,max.item) ##Compute the item fit residual statistics and empirical item category ##response curves fit <- fitCRM(EPIA, par, CRMthetas, max.item,group=10) ##Item-fit residual statistics fit$fit.stat ##Empirical item category response curves fit$emp.irf[[1]] #Item 1 ## End(Not run)
This function draws the 3D item category response curves given the item parameter matrix and the maximum and minimum possible values that examinees can get as a score for the item. This 3D representation is an extension of 2D item category response curves in binary and polytomous IRT models. Due to the fact that there are many possible response categories, another dimension is drawn for the response categories in the 3D representation.
plotCRM(ipar, item, min.item, max.item)
plotCRM(ipar, item, min.item, max.item)
ipar |
a matrix with m rows and three columns, with m denoting the number of items. The first column is the a parameters, the second column is the b parameters, and the third column is the alpha parameters |
item |
item number, an integer between 1 and m with m denoting the number of items |
min.item |
a vector of length m indicating the minimum possible score for each item. |
max.item |
a vector of length m indicating the maximum possible score for each item. |
irf |
a 3D theoretical item category response curves |
Cengiz Zopluoglu
EstCRMitem
for estimating item parameters,
EstCRMperson
for estimating person parameters,
fitCRM
for computing item-fit residual statistics and drawing empirical 3D item category response curves,
simCRM
for generating data under CRM.
## Not run: ##load the dataset EPIA data(EPIA) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 112 and the minimum possible score was 0 for all items min.item <- c(0,0,0,0,0) max.item <- c(112,112,112,112,112) ##Estimate item parameters CRM <- EstCRMitem(EPIA, max.item, min.item, max.EMCycle = 500, converge = 0.01) par <- CRM$param ##Draw theoretical item category response curves for Item 2 plotCRM(par,2,min.item, max.item) ## End(Not run)
## Not run: ##load the dataset EPIA data(EPIA) ##Define the vectors "max.item" and "min.item". The maximum possible ##score was 112 and the minimum possible score was 0 for all items min.item <- c(0,0,0,0,0) max.item <- c(112,112,112,112,112) ##Estimate item parameters CRM <- EstCRMitem(EPIA, max.item, min.item, max.EMCycle = 500, converge = 0.01) par <- CRM$param ##Draw theoretical item category response curves for Item 2 plotCRM(par,2,min.item, max.item) ## End(Not run)
CRM
Print the output for the object of class CRM
## S3 method for class 'CRM' print(x, ...)
## S3 method for class 'CRM' print(x, ...)
x |
an object of class |
... |
More options to pass to summary and print |
The summary output includes the information from the last EM Cycle, final parameter estimates, and the descriptive statistics of the original data and the transformed data.
The data came from a published study and was kindly provided by Dr. Adnan Kan. A group of 307 pre-service teachers graduated from various departments in the college of education were asked to check on a 11 cm line segment with two end points (can not do at all, highly certain can do) using their own judgement for the 10 items that measure teacher self-efficacy on different activities. The direct item score was the distance in cm of the check mark from the left end point (Kan, 2009).
data(SelfEff)
data(SelfEff)
A data frame with 307 observations on the following 10 items.
Item1
Implementing variety of teaching strategies
Item2
Creating learning environments for the effective participation of students
Item3
Providing the acquisition of learning experiences according to the students' physical, emotional, and psychomotor characteristics
Item4
Creating learning environments in which students can effectively express themselves
Item5
Implementing a variety of assessment strategies (formal, informal)
Item6
Understanding differences in students' learning styles and providing learning opportunities in compliance with these differences
Item7
Using teaching methods and techniques within the framework of educational plans and aims
Item8
Discovering students' interests and skills and guiding them accordingly
Item9
Using educational technology effectively in classrooms to support teaching
Item10
Designing and implementing educational variables such as motivation, reinforcement, feedback, etc.
Kan, A.(2009). Effect of scale response format on psychometric properties in teaching self-efficacy. Euroasian Journal of Educational Research, 34, 215-228.
Kan, A.(2009). Effect of scale response format on psychometric properties in teaching self-efficacy. Euroasian Journal of Educational Research, 34, 215-228.
Generating data under the Continuous Response Model
simCRM(thetas, true.param, max.item)
simCRM(thetas, true.param, max.item)
thetas |
a vector of length N with N denoting the number of examinees. Each element of the vector is the true ability level for an examinee |
true.param |
a matrix of true item parameters with m rows and three columns, with m denoting the number of items. The first column is the a parameters, the second column is the b parameters, and the third column is the alpha parameters |
max.item |
a vector of length m indicating the maximum possible score for each hypothetical item. |
The simCRM
generates data under Continuous Response Model as described in Shojima(2005). Given the true ability level for person i and the true item parameters for item j, the transformed response of person i for item j follows a normal distribution with a mean of α((θ-β)) and a standard deviation of α^2/a^-2.
a data frame with N rows and m columns with N denoting the number of observations and m denoting the number of items.
Cengiz Zopluoglu
Shojima, K.(2005). A Noniterative Item Parameter Solution in Each EM Cycyle of the Continuous Response Model. Educational Technology Research, 28, 11-22.
EstCRMitem
for estimating item parameters,
EstCRMperson
for estimating person parameters,
fitCRM
for computing item-fit statistics and drawing empirical 3D item response curves,
plotCRM
for drawing theoretical 3D item category response curves,
## Not run: ##################################################### # Example 1: # # Basic data generation and parameter recovery # ##################################################### #Generate true person ability parameters for 1000 examinees from #a standard normal distribution true.thetas <- rnorm(1000,0,1) #Generate the true item parameter matrix for the hypothetical items true.par <- matrix(c(.5,1,1.5,2,2.5, -1,-.5,0,.5,1,1,.8,1.5,.9,1.2), nrow=5,ncol=3) true.par #Generate the vector maximum possible scores that students can #get for the items max.item <- c(30,30,30,30,30) #Generate the response matrix simulated.data <- simCRM(true.thetas,true.par,max.item) #Let's examine the simulated data head(simulated.data) summary(simulated.data) #Let's try to recover the item parameters min.item <- c(0,0,0,0,0) CRM <- EstCRMitem(simulated.data,max.item, min.item, max.EMCycle=500,converge=0.01) #Compare the true item parameters with the estimated item parameters. #The first three column is the true item parameters, and the second #three column is the estimated item parameters cbind(true.par,CRM$param) #Let's recover the person parameters par <- CRM$param CRMthetas <- EstCRMperson(simulated.data,par,min.item,max.item) theta.par <- CRMthetas$thetas #Compare the true person ability parameters to the estimated person ##ability parameters.The first column is the true parameters and the ##second column is the estimated parameters thetas <- cbind(true.thetas,theta.par[,2]) head(thetas) cor(thetas) plot(thetas[,1],thetas[,2]) #RMSE for the estimated person parameters sqrt(sum((thetas[,1]-thetas[,2])^2)/nrow(thetas)) #RMSE is comparable and similar to the standard error of the #theta estimates. Standard error of the theta estimate is the square #root of the reciprocal of the total test information which is the sum #of square of the "a" parameters sqrt(1/sum(CRM$param[,1]^2)) ##################################################### # Example 2: # # Item fit Residuals, Empirical and Theoretical # # Item Category Response Curves for the Simulated # # Data Above # ##################################################### #Because of the run time issues during the package development, #I run the fit analysis for a subset of simulated data above. #The simulated data has 1000 examinees, but I run the fit analysis #for the first 100 subjects of the simulated data. Please ignore the #following line and run the analysis for whole data simulated.data <- simulated.data[1:100,] #Ignore this line par <- CRM$param max.item <- c(30,30,30,30,30) min.item <- c(0,0,0,0,0) CRMthetas <- EstCRMperson(simulated.data,par,min.item,max.item) theta.par <- CRMthetas$thetas mean(theta.par[,2]) sd(theta.par[,2]) hist(theta.par[,2]) fit <- fitCRM(simulated.data,par, CRMthetas, max.item, group=10) #Item-Fit Residuals fit$fit.stat #Empirical Item Category Response Curves fit$emp.irf[[1]] #Item 1 fit$emp.irf[[5]] #Item 5 #Theoretical Item Category Response Curves plotCRM(par,1,min.item, max.item) #Item 1 ##################################################### # Example 3: # # The replication of Shojima's simulation study # # 2005 # ##################################################### #In Shojima's simulation study published in 2005 #true person parameters were generated from a standard normal distribution. #The natural logarithm of the true "a" parameters were generated from a N(0,0.09) #The true "b" parameters were generated from a N(0,1) #The natural logarithm of the true "alpha" parameters were generated from a N(0,0.09) #The independent variables were the number of items and sample size #in the simulation study #There were 9 different conditions and 100 replications for each condition. #In Table 1 (Shojima,2005), the RMSD statistics were reported for each condition. #The code below replicates the same study. The results are comparable to the Table 1. #The user #should only specify the sample size and the number of items. Then, the user should #run the rest of the code. #At the end, RMSEa, RMSEb, RMSEalp are the item parameter recovery statistics which is #comparable to Table 1 #Set the conditions for the simulation study. #It takes longer to run for big number of replications N=500 #sample size n=10 #number of items replication=1 #number if replications for each condition ############################################################ # Run the rest of the code from START to END # ############################################################ #START true.person <- vector("list",replication) true.item <- vector("list",replication) est.person <- vector("list",replication) est.item <- vector("list",replication) simulated.datas <- vector("list",replication) for(i in 1:replication) { true.person[[i]] <- rnorm(N,0,1) true.item[[i]] <- cbind(exp(rnorm(n,0,.09)),rnorm(n,0,1),1/exp(rnorm(n,0,.09))) } max.item <- rep(50,n) min.item <- rep(0,n) for(i in 1:replication) { simulated.datas[[i]] <- simCRM(true.person[[i]],true.item[[i]],max.item) } for(i in 1:replication) { CRM<-EstCRMitem(simulated.datas[[i]],max.item,min.item,max.EMCycle= 500,converge=0.01) est.item[[i]]=CRM$par } for(i in 1:replication) { persontheta <- EstCRMperson(simulated.datas[[i]],est.item[[i]],min.item,max.item) est.person[[i]]<- persontheta$thetas[,2] } #END ############################################################ #RMSE for parameter "a" RMSEa <- c() for(i in 1:replication) { RMSEa[i]=sqrt(sum((true.item[[i]][,1]-est.item[[i]][,1])^2)/n) } mean(RMSEa) #RMSE for parameter "b" RMSEb <- c() for(i in 1:replication) { RMSEb[i]=sqrt(sum((true.item[[i]][,2]-est.item[[i]][,2])^2)/n) } mean(RMSEb) #RMSE for parameter "alpha" RMSEalp <- c() for(i in 1:replication) { RMSEalp[i]=sqrt(sum((true.item[[i]][,3]-est.item[[i]][,3])^2)/n) } mean(RMSEalp) #RMSE for person parameter RMSEtheta <- c() for(i in 1:replication) { RMSEtheta[i]=sqrt(sum((true.person[[i]]-est.person[[i]])^2)/N) } mean(RMSEtheta) ## End(Not run)
## Not run: ##################################################### # Example 1: # # Basic data generation and parameter recovery # ##################################################### #Generate true person ability parameters for 1000 examinees from #a standard normal distribution true.thetas <- rnorm(1000,0,1) #Generate the true item parameter matrix for the hypothetical items true.par <- matrix(c(.5,1,1.5,2,2.5, -1,-.5,0,.5,1,1,.8,1.5,.9,1.2), nrow=5,ncol=3) true.par #Generate the vector maximum possible scores that students can #get for the items max.item <- c(30,30,30,30,30) #Generate the response matrix simulated.data <- simCRM(true.thetas,true.par,max.item) #Let's examine the simulated data head(simulated.data) summary(simulated.data) #Let's try to recover the item parameters min.item <- c(0,0,0,0,0) CRM <- EstCRMitem(simulated.data,max.item, min.item, max.EMCycle=500,converge=0.01) #Compare the true item parameters with the estimated item parameters. #The first three column is the true item parameters, and the second #three column is the estimated item parameters cbind(true.par,CRM$param) #Let's recover the person parameters par <- CRM$param CRMthetas <- EstCRMperson(simulated.data,par,min.item,max.item) theta.par <- CRMthetas$thetas #Compare the true person ability parameters to the estimated person ##ability parameters.The first column is the true parameters and the ##second column is the estimated parameters thetas <- cbind(true.thetas,theta.par[,2]) head(thetas) cor(thetas) plot(thetas[,1],thetas[,2]) #RMSE for the estimated person parameters sqrt(sum((thetas[,1]-thetas[,2])^2)/nrow(thetas)) #RMSE is comparable and similar to the standard error of the #theta estimates. Standard error of the theta estimate is the square #root of the reciprocal of the total test information which is the sum #of square of the "a" parameters sqrt(1/sum(CRM$param[,1]^2)) ##################################################### # Example 2: # # Item fit Residuals, Empirical and Theoretical # # Item Category Response Curves for the Simulated # # Data Above # ##################################################### #Because of the run time issues during the package development, #I run the fit analysis for a subset of simulated data above. #The simulated data has 1000 examinees, but I run the fit analysis #for the first 100 subjects of the simulated data. Please ignore the #following line and run the analysis for whole data simulated.data <- simulated.data[1:100,] #Ignore this line par <- CRM$param max.item <- c(30,30,30,30,30) min.item <- c(0,0,0,0,0) CRMthetas <- EstCRMperson(simulated.data,par,min.item,max.item) theta.par <- CRMthetas$thetas mean(theta.par[,2]) sd(theta.par[,2]) hist(theta.par[,2]) fit <- fitCRM(simulated.data,par, CRMthetas, max.item, group=10) #Item-Fit Residuals fit$fit.stat #Empirical Item Category Response Curves fit$emp.irf[[1]] #Item 1 fit$emp.irf[[5]] #Item 5 #Theoretical Item Category Response Curves plotCRM(par,1,min.item, max.item) #Item 1 ##################################################### # Example 3: # # The replication of Shojima's simulation study # # 2005 # ##################################################### #In Shojima's simulation study published in 2005 #true person parameters were generated from a standard normal distribution. #The natural logarithm of the true "a" parameters were generated from a N(0,0.09) #The true "b" parameters were generated from a N(0,1) #The natural logarithm of the true "alpha" parameters were generated from a N(0,0.09) #The independent variables were the number of items and sample size #in the simulation study #There were 9 different conditions and 100 replications for each condition. #In Table 1 (Shojima,2005), the RMSD statistics were reported for each condition. #The code below replicates the same study. The results are comparable to the Table 1. #The user #should only specify the sample size and the number of items. Then, the user should #run the rest of the code. #At the end, RMSEa, RMSEb, RMSEalp are the item parameter recovery statistics which is #comparable to Table 1 #Set the conditions for the simulation study. #It takes longer to run for big number of replications N=500 #sample size n=10 #number of items replication=1 #number if replications for each condition ############################################################ # Run the rest of the code from START to END # ############################################################ #START true.person <- vector("list",replication) true.item <- vector("list",replication) est.person <- vector("list",replication) est.item <- vector("list",replication) simulated.datas <- vector("list",replication) for(i in 1:replication) { true.person[[i]] <- rnorm(N,0,1) true.item[[i]] <- cbind(exp(rnorm(n,0,.09)),rnorm(n,0,1),1/exp(rnorm(n,0,.09))) } max.item <- rep(50,n) min.item <- rep(0,n) for(i in 1:replication) { simulated.datas[[i]] <- simCRM(true.person[[i]],true.item[[i]],max.item) } for(i in 1:replication) { CRM<-EstCRMitem(simulated.datas[[i]],max.item,min.item,max.EMCycle= 500,converge=0.01) est.item[[i]]=CRM$par } for(i in 1:replication) { persontheta <- EstCRMperson(simulated.datas[[i]],est.item[[i]],min.item,max.item) est.person[[i]]<- persontheta$thetas[,2] } #END ############################################################ #RMSE for parameter "a" RMSEa <- c() for(i in 1:replication) { RMSEa[i]=sqrt(sum((true.item[[i]][,1]-est.item[[i]][,1])^2)/n) } mean(RMSEa) #RMSE for parameter "b" RMSEb <- c() for(i in 1:replication) { RMSEb[i]=sqrt(sum((true.item[[i]][,2]-est.item[[i]][,2])^2)/n) } mean(RMSEb) #RMSE for parameter "alpha" RMSEalp <- c() for(i in 1:replication) { RMSEalp[i]=sqrt(sum((true.item[[i]][,3]-est.item[[i]][,3])^2)/n) } mean(RMSEalp) #RMSE for person parameter RMSEtheta <- c() for(i in 1:replication) { RMSEtheta[i]=sqrt(sum((true.person[[i]]-est.person[[i]])^2)/N) } mean(RMSEtheta) ## End(Not run)