startNLR {difNLR}R Documentation

Calculates starting values for non-linear regression DIF models.

Description

Calculates starting values for difNLR() function based on linear approximation.

Usage

startNLR(Data, group, model, match = "zscore", parameterization = "alternative",
         simplify = FALSE)

Arguments

Data

Data data.frame or matrix: dataset which rows represent scored examinee answers ("1" correct, "0" incorrect) and columns correspond to the items.

group

numeric: binary vector of group membership. "0" for reference group, "1" for focal group.

model

character: generalized logistic regression model for which starting values should be estimated. See Details.

match

character or numeric: matching criterion to be used as estimate of trait. Can be either "zscore" (default, standardized total score), "score" (total test score), or numeric vector of the same length as number of observations in Data.

parameterization

character: parameterization of regression coefficients. Possible options are "classic" (IRT parameterization), "alternative" (default) and "logistic" (logistic regression). See Details.

simplify

logical: should initial values be simplified into the matrix? This is only applicable when parameterization is the same for all items.

Details

The unconstrained form of 4PL generalized logistic regression model for probability of correct answer (i.e., y = 1) is

P(y = 1) = (c + cDif * g) + (d + dDif * g - c - cDif * g) / (1 + exp(-(a + aDif * g) * (x - b - bDif * g))),

where x is by default standardized total score (also called Z-score) and g is a group membership. Parameters a, b, c, and d are discrimination, difficulty, guessing, and inattention. Terms aDif, bDif, cDif, and dDif then represent differences between two groups (reference and focal) in relevant parameters.

The model argument offers several predefined models. The options are as follows: Rasch for 1PL model with discrimination parameter fixed on value 1 for both groups, 1PL for 1PL model with discrimination parameter fixed for both groups, 2PL for logistic regression model, 3PLcg for 3PL model with fixed guessing for both groups, 3PLdg for 3PL model with fixed inattention for both groups, 3PLc (alternatively also 3PL) for 3PL regression model with guessing parameter, 3PLd for 3PL model with inattention parameter, 4PLcgdg for 4PL model with fixed guessing and inattention parameter for both groups, 4PLcgd (alternatively also 4PLd) for 4PL model with fixed guessing for both groups, 4PLcdg (alternatively also 4PLc) for 4PL model with fixed inattention for both groups, or 4PL for 4PL model.

Three possible parameterization can be specified in "parameterization" argument: "classic" returns IRT parameters of reference group and differences in these parameters between reference and focal group. "alternative" returns IRT parameters of reference group, the differences in parameters "a" and "b" between two groups and parameters "c" and "d" for focal group. "logistic" returns parameters in logistic regression parameterization.

Value

A list containing elements representing items. Each element is a named numeric vector of length 8 with initial values for generalized logistic regression model.

Author(s)

Adela Hladka (nee Drabinova)
Institute of Computer Science of the Czech Academy of Sciences
Faculty of Mathematics and Physics, Charles University
hladka@cs.cas.cz

Patricia Martinkova
Institute of Computer Science of the Czech Academy of Sciences
martinkova@cs.cas.cz

References

Drabinova, A. & Martinkova, P. (2017). Detection of differential item functioning with nonlinear regression: A non-IRT approach accounting for guessing. Journal of Educational Measurement, 54(4), 498–517, doi:10.1111/jedm.12158.

Hladka, A. (2021). Statistical models for detection of differential item functioning. Dissertation thesis. Faculty of Mathematics and Physics, Charles University.

See Also

difNLR

Examples

# loading data
data(GMAT)
Data <- GMAT[, 1:20] # items
group <- GMAT[, "group"] # group membership variable

# starting values for 3PL model
startNLR(Data, group, model = "3PL")

# starting values for 3PL model
# simplified into single table
startNLR(Data, group, model = "3PL", simplify = TRUE)

# starting values for 3PL model
# with score as matching criterion
startNLR(Data, group, model = "3PL", match = "score")

# starting values for model specified for each item
startNLR(Data, group,
  model = c(
    rep("1PL", 5), rep("2PL", 5),
    rep("3PL", 5), rep("4PL", 5)
  )
)

[Package difNLR version 1.4.2-1 Index]