Transformed Item Difficulties (TID) DIF method

Description

Performs DIF detection using Transformed Item Difficulties (TID) method.

Usage

1
2
3
4
5
6
7
8
9
difTID(Data, group, focal.name, anchor = NULL, props = NULL, thrTID = 1.5, 
  	purify = FALSE, nrIter = 10, save.output = FALSE, 
  	output = c("out", "default")) 
## S3 method for class 'TID'
print(x, ...)
## S3 method for class 'TID'
plot(x, plot = "dist", pch = 8, number = TRUE, col = "red", 
  	save.plot = FALSE, save.options = c("plot", "default", "pdf"), ...)
 

Arguments

Data

numeric: either the data matrix only, or the data matrix plus the vector of group membership. See Details.

group

numeric or character: either the vector of group membership or the column indicator (within data) of group membership. See Details.

focal.name

numeric or character indicating the level of group which corresponds to the focal group.

anchor

either NULL (default) or a vector of item names (or identifiers) to specify the anchor items. See Details.

props

either NULL (default) or a two-column matrix with proportions of success in the reference group and the focal group. See Details .

thrTID

numeric: the threshold for detecting DIF items (default is 1.5).

purify

logical: should the method be used iteratively to purify the set of anchor items? (default is FALSE).

nrIter

numeric: the maximal number of iterations in the item purification process (default is 10).

save.output

logical: should the output be saved into a text file? (Default is FALSE).

output

character: a vector of two components. The first component is the name of the output file, the second component is either the file path or "default" (default value). See Details.

x

the result from a TID class object.

plot

character: either "dist" (default) to display the perpendicular distances, or "delta" for the Delta plot. See Details.

pch, col

type of usual pch and col graphical options.

number

logical: should the item number identification be printed (default is TRUE).

save.plot

logical: should the plot be saved into a separate file? (default is FALSE).

save.options

character: a vector of three components. The first component is the name of the output file, the second component is either the file path or "default" (default value), and the third component is the file extension, either "pdf" (default) or "jpeg". See Details.

...

other generic parameters for the plot or the print functions.

Details

The Transformed Item Difficulties (TID) method, also known as Angoff's Delta method (Angoff, 1982; Angoff and Ford, 1973) allows for detecting uniform differential item functioning without requiring an item response model approach.

The Data is a matrix whose rows correspond to the subjects and columns to the items. In addition, Data can hold the vector of group membership. If so, group indicates the column of Data which corresponds to the group membership, either by specifying its name or by giving the column number. Otherwise, group must be a vector of same length as nrow(Data).

Missing values are allowed for item responses (not for group membership) but must be coded as NA values. They are discarded from the computation of proportions of success.

The vector of group membership must hold only two different values, either as numeric or character. The focal group is defined by the value of the argument focal.name.

Alternatively, one can provide the matrix of proportions of success in for each item in each group. This matrix must have the same format as that provided to the trItemDiff function; see the corresponding help file for further details.

The threshold (or cut-score) for classifying items as DIF must be supplied through the thrTID argument. The default value is 1.5, as being one of the most commonbly used values (e.g. Facon and Nuchadee, 2010; Muniz, Hambleton, and Xing, 2001; Robin, Sirecci, and Hambleton, 2003). Other values can be specified instead.

Item purification can be performed by setting purify to TRUE. Purification works as follows: if at least one item was detected as functioning differently at some step of the process, then the intercept and slope parameters of the major axis are re-computed by discarding all items previously flagged as DIF. All perpendicular distances are then re-computed for all items. The process stops when either two successive applications of the method yield the same classifications of the items, or when nrIter iterations are run without obtaining two successive identical classifications. In the latter case a warning message is printed.

A pre-specified set of anchor items can be provided through the anchor argument. It must be a vector of either item names (which must match exactly the column names of Data argument) or integer values (specifying the column numbers for item identification). In case anchor items are provided, they are used to compute the intercept and slope parameters of the major axis. None of the anchor items are tested for DIF: the output separates anchor items and tested items and DIF results are returned only for the latter. Note also that item purification is not activated when anchor items are provided (even if purify is set to TRUE). By default it is NULL so that no anchor item is specified.

The output of the difTID, as displayed by the print.TID function, can be stored in a text file provided that save.output is set to TRUE (the default value FALSE does not execute the storage). In this case, the name of the text file must be given as a character string into the first component of the output argument (default name is "out"), and the path for saving the text file can be given through the second component of output. The default value is "default", meaning that the file will be saved in the current working directory. Any other path can be specified as a character string: see the Examples section for an illustration.

Two types of plots are available through the plot.TID function. If the argument plot is set to "dist" (the default value), then the perpendicular distances are represented on the Y axis of a scatter plot, with each item on the X axis. If plot is set to "delta", the Delta plot is returned, that is, the scatter plot of pairs of Delta scores for each item, with the reference group on the X axis and the focal group on the Y axis. The type of point and the color are fixed by the usual pch and col arguments. Option number permits to display the item numbers instead. Detection thresholds are also printed. Also, the plot can be stored in a figure file, either in PDF or JPEG format. Fixing save.plot to TRUE allows this process. The figure is defined through the components of save.options. The first two components perform similarly as those of the output argument. The third component is the figure format, with allowed values "pdf" (default) for PDF file and "jpeg" for JPEG file.

Value

A list of class "TID" with the following arguments:

Dj

the values of the perpendicular distances.

prop

the matrix of proportions of success.

delta

the matrix of Delta scores, in the same format as the prop matrix.

axisPar

a vector of length two with the intercept and slope parameters of the major axis of Delta points.

thr

the threshold (cut-score) for DIF detection.

DIFitems

either the column indicators of the items which were detected as DIF items, or "No DIF item detected".

purification

the value of purify option.

nrPur

the number of iterations in the item purification process. Returned only if purify is TRUE.

difPur

a binary matrix with one row per iteration in the item purification process and one column per item. Zeros and ones in the i-th row refer to items which were classified respectively as non-DIF and DIF items at the (i-1)-th step. The first row corresponds to the initial classification of the items. Returned only if purify is TRUE.

convergence

logical indicating whether the iterative item purification process stopped before the maximal number nrIter of allowed iterations. Returned only if purify is TRUE.

names

the names of the items.

anchor.names

the value of the anchor argument.

save.output

the value of the save.output argument.

output

the value of the output argument.

Author(s)

David Magis
Department of Education, University of Liege
Research Group of Quantitative Psychology and Individual Differences, KU Leuven
David.Magis@ulg.ac.be, http://ppw.kuleuven.be/okp/home/

References

Angoff, W. H. (1982). Use of difficulty and discrimination indices for detecting item bias. In R. A. Berck (Ed.), Handbook of methods for detecting item bias (pp. 96-116). Baltimore, MD: Johns Hopkins University Press.

Angoff, W. H., and Ford, S. F. (1973). Item-race interaction on a test of scholastic aptitude. Journal of Educational Measurement, 2, 95-106.

Facon, B., and Nuchadee, M.-L. (2010). An item analysis of Raven's Colored Progressive Matrices among participants with Down syndrome. Research in Deevelopmental Disabilities, 31, 243-249.

Muniz, J., Hambleton, R. K., and Xing, D. (2001). Small sample studies to detect flaws in item translations. International Journal of Testing, 1, 115-135.

Robin, F., Sirecci, S. G., and Hambleton, R. K. (2003). Evaluating the equivalence of different language versions of a credentialing exam. International Journal of Testing, 3, 1-20.

See Also

trItemDiff, dichoDif

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
## Not run: 

 # Loading of the verbal data
 data(verbal)

 # Excluding the "Anger" variable
 verbal <- verbal[colnames(verbal) != "Anger"]

 # Three equivalent settings of the data matrix and the group membership
 r <- difTID(verbal, group = 25, focal.name = 1)
 difTID(verbal, group = "Gender", focal.name = 1)
 difTID(verbal[,1:24], group = verbal[,25], focal.name = 1)

 # With item purification and threshold 1
 r2 <- difTID(verbal, group = "Gender", focal.name = 1, purify = TRUE, thrTID = 1)

 # With items 1 to 5 set as anchor items
 difTID(verbal, group = "Gender", focal.name = 1, anchor = 1:5)
 difTID(verbal, group = "Gender", focal.name = 1, anchor = 1:5, purify = TRUE)


 # Saving the output into the "TIDresults.txt" file (and default path)
 difTID(verbal, group = 25, focal.name = 1, save.output = TRUE, 
   output = c("TIDresults", "default"))

 # Providing the proportions of success only
 props <- cbind(colMeans(verbal[verbal[,25]==0,1:24]),
   colMeans(verbal[verbal[,25]==1,1:24]) )
 difTID(prop = props)

 # Graphical devices
 plot(r2)
 plot(r2, plot = "delta")

 # Plotting results and saving it in a PDF figure
 plot(r2, save.plot = TRUE, save.options = c("plot", "default", "pdf"))

 # Changing the path, JPEG figure
 path <- "c:/Program Files/"
 plot(r2, save.plot = TRUE, save.options = c("plot", path, "jpeg"))

## End(Not run)