DIF and DDF Detection by Non-Linear Regression Models

Detection of differential item functioning (DIF) among dichotomously scored items and differential distractor functioning (DDF) among unscored items with non-linear regression procedures based on generalized logistic regression models (Drabinova and Martinkova, 2017, ).


DIF and DDF Detection by Non-Linear Regression Models.

GHversion version cranlogs

Description

The difNLR package containts method for detection of differential item functioning (DIF) based on non-linear regression. Both uniform and non-uniform DIF effects can be detected when considering one focal group. The method also allows to test the difference in guessing or inattention parameters between reference and focal group. DIF detection method is based either on likelihood-ratio test, or on F-test of submodel. Package also offers method for detection of differential distractor functioning (DDF) based on multinomial log-linear regression model.

Installation

The easiest way to get difNLR package is to install it from CRAN:

install.packages("difNLR")

Or you can get the newest development version from GitHub:

# install.packages("devtools")
devtools::install_github("drabinova/difNLR")

Version

Current version on CRAN is 1.2.2. The newest development version available on GitHub is 1.2.2.

Reference

To cite difNLR package in publications, please, use:

Drabinova A., Martinkova P., & Zvara K. (2018). difNLR: DIF and DDF detection by non-linear regression models. R package version 1.2.2. https://CRAN.R-project.org/package=difNLR

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.

Getting help

In case you find any bug or just need help with difNLR package, you can leave your message as an issue here or directly contact us at [email protected]

News


  •                                              *
    
  • Changes and Developments in the difNLR Package *
  •                                              *
    


  • Changes in difNLR 1.2.2 (2018-05-03) -

  • Version 1.2.2 is CRAN version.
  • It includes version 1.2.1.-1. - 1.2.1.-3.

1.2.1.-3. (2018-04-26) MAJOR UPDATES o S3 methods 'AIC()', 'BIC()', 'logLik()' of 'ddfMLR()' are now item specific.

1.2.1.-2. (2018-03-19) BUG FIXING o difNLR - Check for constraints was fixed. o NLR - initboot = F now works properly.

1.2.1.-1. (2018-03-16) BUG FIXING o difNLR: - P-value adjustment is now performed in the last iteration of purification as described. - In difPur output columns are properly named. o ddfMLR: - P-value adjustment is now performed in the last iteration of purification as described. - In difPur output columns are properly named.

MINOR UPDATES o Warning messages do not include the call.


  • Changes in difNLR 1.2.1 (2018-03-01) -

  • Version 1.2.1 is CRAN version.
  • It includes version 1.2.0.-1. - 1.2.0.-7.

1.2.0.-7. (2018-02-27) MAJOR UPDATES o Argument 'start' in 'difNLR()' function is now item-specific. The input is correctly checked. o In case that some items do not converge, starting values are recalculated from bootstraped sample and problematic models are fitted again. This is done 20 times at most. The options were added into 'difNLR()' and 'NLR()' functions. o Argument 'constraints' in 'difNLR()' function is now item-specific.

MINOR UPDATES o Minor bug fixing: - Typos were fixed in 'print()' method for 'difNLR' class. o Title was shorten. o Description of package was updated. o Description file was updated, reference was added. o README file was updated. o CITATION file was updated.

1.2.0.-6. (2018-02-26) MAJOR UPDATES o S3 methods for 'difNLR' class are now properly describedm, especially, 'plot.difNLR()' and 'predict.difNLR()'. o 'difNLR()' documentation was improved. o Bug fixing: - S3 methods for class 'difNLR' can now properly handle items with convergence issues. - 'NLR()' now detects DIF correctly with F test.

MINOR UPDATES o Typos were fixed.

1.2.0.-5. (2018-02-20) MAJOR UPDATES o 'print()', 'plot()','fitted()', 'predict()', 'logLik()', 'AIC()', 'BIC()' and 'residuals()' for 'difNLR' class now handles item specific arguments ('model', 'type' and 'constraints'). o 'residuals' for 'difNLR' class now uses argument 'item'. o Bug fixing: - Checking inputs in 'difNLR' was fixed and improved. - Fixing degrees of freedom and p-values calculations in 'NLR()'. - Fixing parameters, SE and covariances calculations in 'NLR()'. - S3 methods for 'difNLR' class can now handle convergence issues.

MINOR UPDATES o Documentation of 'difNLR-package' was updated. o Syntax in 'plot()' and 'residuals()' for 'difNLR' was slightly improved. o 'logLik()' for 'difNLR' now returns list of 'logLik' class values.

1.2.0.-4. (2018-02-19) MAJOR UPDATES o Function 'startNLR()' now handles item-specific arguments ('model' and 'parameterization'). Its output is now in the form of list. It can be simplified with argument 'simplify' into table when all parameterizations are the same. o Function 'NLR()' now handles item-specific arguments ('model', 'type' and 'constraints'). o Function 'difNLR()' now handles item-specific arguments ('model', 'type' and 'constraints'). MINOR UPDATES o README file was updated.

1.2.0.-3. (2018-02-19) MAJOR UPDATES o Bug fixing: - Starting values in input of 'estimNLR()' in 'NLR()' are now properly named. - Bug in alternative parameterization for testing differences in parameters c and d in function 'formulaNLR()' was fixed. MINOR UPDATES o Descriptions of 'formulaNLR()' and 'estimNLR()' were improved.

1.2.0.-2. (2018-02-15) MAJOR UPDATES o Function 'genNLR()' can now also generate nominal data based on model specified in 'ddfMLR()'. o Argument 'parameters' in 'genNLR()' is no longer applicable. o Arguments 'a', 'b', 'c', 'd' were added into 'genNLR()' as parameters - discrimination, difficulty, guessing, inattention o Function 'genNLR()' can now also generate different underlying distributions for reference and focal group with arguments 'mu' and 'sigma'. MINOR UPDATES o Email address of maintainer was changed.

1.2.0.-1. (2018-02-14) MAJOR UPDATES o New function 'estimNLR()' to estimate parameters of NLR models was added. This function uses non-linear least squares or maximum likelihood method. o Function 'NLR()' now uses 'estimNLR()' for estimation of models parameters. o Function 'difNLR()' can now estimate models parameters with also maximum likelihood method. o Iteratively reweighted least squares (IRLS) method was added into 'estimNLR()' function. This option is not fully functional. o Bugs fixing: - Bug in 'plot()' for 'ddfMLR' class in matching criterion was fixed. - Bug in 'NLR()' was fixed. User-specified starting values are now available. - Bug in 'startNLR()' was fixed. Function runs even if there are not unique cuts for total scores/match. - Bug in log-likelihood calculation in 'estimNLR()' was fixed. MINOR UPDATES o Some preparation for new estimation methods for F test in 'NLR()' was done. o Convergence failure warning is now item specific. o Warning and error messages were improved.


  • Changes in difNLR 1.1.3 (2018-02-06) -

MAJOR UPDATES

o Bugs fixing: - Bug in delta method in 'NLR()' function was fixed. - Bug in 'match' argument in 'difNLR()' function was fixed. - Bug in one dimensional 'Data' in 'difNLR()' function was fixed. o Specification of upper and lower asymptotes in 'startNLR()' function was improved. o Functions 'ddfMLR()' and 'MLR()' can now handle also total score or other user-specified matching criterion. o S3 functions 'plot()' for class 'ddfMLR' can also handle total score or other user-specified matching criterion.

MINOR UPDATES

o New auxiliary function 'checkInterval()' was added. o Size of labs and title was unified in graphical outputs of functions 'difNLR()' and 'ddfMLR()'.


  • Changes in difNLR 1.1.2 (2017-12-12) -

MAJOR UPDATES

o CITATION file was added with reference to relevant paper. o Bug when loading group by group identificator was fixed. o Condition to check dimension of complete cases data was added. o Function 'residuals.difNLR()' was added. o S3 functions 'AIC()' and 'BIC()' for 'difNLR' class were updated. o S3 functions 'plot()', 'fitted()' and 'predict()' for 'difNLR' class can now handle also other matching criterions than 'zscore'.

MINOR UPDATES

o Reference lists were updated. o README file was updated.


  • Changes in difNLR 1.1.1 (2017-08-28) -

*** THIS IS A CRAN VERSION ***

MAJOR UPDATES

o Bug in 'startNLR()' function for missing values was fixed.

MINOR UPDATES

o Graphical representation for 'difNLR()' and 'ddfMLR()' functions was mildly updated and unified.


  • Changes in difNLR 1.1.0 (2017-08-21) -

*** THIS IS A CRAN VERSION ***

MINOR UPDATES

o Bug in plot.difNLR was fixed. o README file was updated. o Package documentation was updated. o Default value for 'constraints' arguments in 'NLR()' and 'formulaNLR()' functions were set to 'NULL'. o Default starting values were added into 'NLR()' function by 'startNLR()' function.


  • Changes in difNLR 1.0.8 (2017-08-14) -

MAJOR UPDATES

o Several bugs were fixed: - 'difNLR()' function can handle 'Data' with one column. - 'startNLR()' now works when 'match' argument is set. - Check input condition was fixed in 'formulaNLR()' function. - Delta method in 'NLR()' function. o Function 'startNLR()' was mildly updated.


  • Changes in difNLR 1.0.7 (2017-08-10) -

MAJOR UPDATES

o Item purification was implemented into 'ddfMLR()' function. o Anchor items were implemented into 'ddfMLR()' function. o Anchor items were implemented into 'MLR()' function.

MINOR UPDATES

o Minor bug in 'logLik.ddfMLR()' function was fixed. o Documentation of 'difNLR()' was updated.


  • Changes in difNLR 1.0.6 (2017-08-09) -

MAJOR UPDATES

o Item purification was implemented into 'difNLR()' function. o Anchor items were implemented into 'difNLR()' function. o Anchor items were implemented into 'NLR()' function.

MINOR UPDATES

o README file was updated.


  • Changes in difNLR 1.0.5 (2017-08-09) -

MAJOR UPDATES

o Datasets 'difMedical', 'difMedicaltest' and 'difMedicalkey' were renamed. Now they are 'MSATB', 'MSATBtest' and 'MSATBkey' from Medical School Admission Test in Biology.

MINOR UPDATES

o LazyData is now available. o References were updated. o README file updated.


  • Changes in difNLR 1.0.4 (2017-08-08) -

MAJOR UPDATES

o New function 'formulaNLR()' was implemented. Function returns formula for NLR model for 11 predefined models and 4 predefined DIF types to test. Model and DIF type can be also specified with constraints on parameters a, b, c and d. o Function 'NLR()' now handles 11 predefined models and 4 predefined DIF types to test. Model and DIF type can be also specified with constraints on parameters a, b, c and d. o Function 'startNLR()' was edited to return starting parameters with different parameterization. It was also mildly changed to correspond to new version of 'NLR()' function. o Function 'difNLR()' can now handle also total score or other user-specified matching score. o Function 'constrNLR()' is no longer part of the 'difNLR' package.

MINOR UPDATES

o References were updated. o Some minor bugs were fixed: - Items are no longer renamed by 'difNLR()' and 'ddfMLR()' functions. - Starting values are now correctly checked in 'difNLR()' function. o 'msm' package is now used for delta method in 'difNLR()' function


  • Changes in difNLR 1.0.3 (2017-06-15) -

*** THIS IS A CRAN VERSION ***

MAJOR UPDATES

o Bug of 'plot.ddfMLR()' for non-uniform DDF was fixed. o References were updated.


  • Changes in difNLR 1.0.2 (2017-06-06) -

*** THIS IS A CRAN VERSION ***

MAJOR UPDATES

o Bug of dimensions for parameter estimates of 'difNLR()' function was fixed. o Datasets 'GMAT' and 'GMATtest' were extended by 'criterion' variable which is intended to be predicted by test. o 'coef', 'logLik', 'AIC' and 'BIC' S3 methods were added for class 'ddfMLR'.

MINOR UPDATES

o Functions 'plot.ddfMLR()' and 'plot.difNLR()' were slightly improved. o Updated error and warning handling in 'difNLR()' and 'ddfMLR()' functions. o Description file was updated. o Item names are now the same as in original data set. o Readme file updated.


  • Changes in difNLR 1.0.0 (2017-01-10) -

*** THIS IS A CRAN VERSION ***

MAJOR UPDATES

o New function ddfMLR() to detect Differential Distractor Functioning (DDF) with Multinomial Log-linear Regression (MLR) model. S3 methods for class 'ddfMLR' also added - 'print' and 'plot'.

o New function MLR() to calculate likelihood ratio statistic for detecting DDF with MLR model.

o The 'difNLR()' function can handle 6 generalized logistic regression models with option 'model'.

o Functions 'startNLR()', 'genNLR()' ans S3 methods for class 'difNLR' were changed according 'difNLR()' function. S3 method 'coef' was created.

o New functions NLR() and constrNLR() can now calculates DIF detection statistics and specify constraints for generalized logistic regression model.

o Function 'difNLR()' was edited to response to 'difR' package and its DIF detection functions.

o Function 'genNLR()' was changed to generate dataset from generalized logistic regression model with 8 parameters.

MINOR UPDATES

o The CITATION file was updated.

o Several typos were fixed.

o Some default options of input were changed.

o 'AIC()', 'BIC()' and 'logLik()' S3 methods added to 'difNLR()'


  • Changes in difNLR 0.2.0 (2016-11-09) -

*** THIS IS A CRAN VERSION ***

MAJOR UPDATES

o S3 method 'plot' for class 'difNLR' was updated.

o New option of 'test' in 'difNLR()' function was added. Possible choices are now 'F' for F-test and 'LR' for likelihood ratio test.

o Choice of significant level 'alpha' was added into 'difNLR()' function with default option 0.05.

o Six new data sets were added - scored 'GMAT' data, its unscored version 'GMATtest' and its key 'GMATkey'. Scored 'difMedical' data set, its unscored version 'difMedicaltest' and key 'difMedicalkey'.

o New function 'genNLR()' was added to generate scored (binary) data with model by 'difNLR'.

MINOR UPDATES

o Several typos were fixed.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("difNLR")

1.2.2 by Adela Drabinova, 10 months ago


Report a bug at https://github.com/drabinova/difNLR/issues


Browse source code at https://github.com/cran/difNLR


Authors: Adela Drabinova [aut, cre] , Patricia Martinkova [aut] , Karel Zvara [aut]


Documentation:   PDF Manual  


Task views: Psychometric Models and Methods


GPL-3 license


Depends on CTT, ggplot2, methods, msm, nnet, reshape2, stats


Imported by ShinyItemAnalysis.


See at CRAN