Learn R Programming

sirt (version 1.5-0)

linking.robust: Robust Linking of Item Intercepts

Description

This function implements a robust alternative of mean-mean linking which employs trimmed means instead of means. The linking constant is calculated for varying trimming parameters $k$.

Usage

linking.robust(itempars)

## S3 method for class 'linking.robust':
summary(object,...)

## S3 method for class 'linking.robust':
plot(x, ...)

Arguments

itempars
Data frame of item parameters (item intercepts). The first column contains the item label, the 2nd and 3rd columns item parameters of two studies.
object
Object of class linking.robust
x
Object of class linking.robust
...
Further arguments to be passed

Value

  • A list with following entries
  • ind.koptIndex for optimal scale parameter
  • koptOptimal scale parameter
  • meanpars.koptLinking constant for optimal scale parameter
  • se.koptStandard error for linking constant obtained with optimal scale parameter
  • meanparsLinking constant dependent on the scale parameter
  • seStandard error of the linking constant dependent on the scale parameter
  • sdDIF standard deviation (non-robust estimate)
  • madDIF standard deviation (robust estimate using the MAD measure)
  • parsOriginal item parameters
  • k.robustUsed vector of scale parameters
  • INumber of items
  • itemparsUsed data frame of item parameters

See Also

Other functions for linking: linking.haberman, equating.rasch See also the plink package.

Examples

Run this code
#############################################################################
# EXAMPLE 1: Linking data.si03 
#############################################################################

data(data.si03)
res1 <- linking.robust( itempars=data.si03 )
summary(res1)
  ##   Number of items = 27
  ##   Optimal trimming parameter k = 8 |  non-robust parameter k = 0 
  ##   Linking constant = -0.0345 |  non-robust estimate = -0.056 
  ##   Standard error = 0.0186 |  non-robust estimate = 0.027 
  ##   DIF SD: MAD = 0.0771 (robust) | SD = 0.1405 (non-robust) 
plot(res1)

#############################################################################
# EXAMPLE 2: Linking PISA item parameters data.pisaPars 
#############################################################################

data(data.pisaPars)

# Linking with items
res2 <- linking.robust( data.pisaPars[ , c(1,3,4)] )
summary(res2)
  ##   Optimal trimming parameter k = 0 |  non-robust parameter k = 0 
  ##   Linking constant = -0.0883 |  non-robust estimate = -0.0883 
  ##   Standard error = 0.0297 |  non-robust estimate = 0.0297   
  ##   DIF SD: MAD = 0.1824 (robust) | SD = 0.1487 (non-robust) 
##  -> no trimming is necessary for reducing the standard error
plot(res2)

#############################################################################
# SIMULATED EXAMPLE 3: Linking with simulated item parameters containing outliers 
#############################################################################
	
# simulate some parameters
I <- 38
set.seed(18785)
itempars <- data.frame("item" = paste0("I",1:I) )
itempars$study1 <- rnorm( I , mean = .3 , sd =1.4 )
# simulate DIF effects plus some outliers
bdif <- rnorm(I,mean=.4,sd=.09)+(runif(I)>.9 )* rep( 1*c(-1,1)+.4 , each=I/2 )
itempars$study2 <- itempars$study1 + bdif

# robust linking
res <- linking.robust( itempars )
summary(res)
  ##   Number of items = 38
  ##   Optimal trimming parameter k = 12 |  non-robust parameter k = 0 
  ##   Linking constant = -0.4285 |  non-robust estimate = -0.5727 
  ##   Standard error = 0.0218 |  non-robust estimate = 0.0913 
  ##   DIF SD: MAD = 0.1186 (robust) | SD = 0.5628 (non-robust)
## -> substantial differences of estimated linking constants in this case of 
##    deviations from normality of item parameters
plot(res)

Run the code above in your browser using DataLab