Releases: D-score/dscore
dscore 1.9.0
Overview
This is a major update of the dscore
package featuring:
- a new default reference
"preliminary_standards"
- a correction of an issue with the scaling factor
- a major clean-up of the itembank, references, keys, and R code
- improved documentation and examples
Major issues
BREAKING CHANGE: On May 31, 2024 we detected a long-time error in the calculation of the D-score resulting from an incorrect scale factor that led us to believe that item characteristic curves are steeper than the actually are. The impact of the error on the result is as follows:
- There is no effect on the difficulty estimates of the Rasch models,
- The D-score estimates are slightly altered but changes are small,
- The references are largely unaffected and need not to be redone,
- The estimates of the SEMs can differ substantially, so inferences based on the SEMs should be re-evaluated,
- When there were changes in the analyses, the results in the newer method look smoother and are preferred.
The correction appeared in the development version dscore 1.8.8
, and is now incorporated into release dscore 1.9.0
. For backward compatibility to dscore 1.8.7
and earlier, use the argument algorithm = "1.8.7"
in calls to the dscore()
function.
BREAKING CHANGE: dscore_posterior()
now returns a data.frame
with column names that indicate the quadrature point. This was an unnamed matrix
. Code that expects a matrix
as the return of dscore_posterior()
may need to be adapted.
NEW DEFAULT KEY: Adds a new reference "preliminary_standards"
calculated from selected subsample of the GSED Phase 1 data, and makes these the default in this release. The reference is a temporary stand-in for a future norm-based standard for normal early child development. This reference replaces the temporary reference "phase1_healthy"
that was introduced in dscore 1.8.7
. Compared to the "phase1"
reference, the "preliminary_standards"
reference has the following differences: 1) D-score estimation uses the new model 20240601 with correct scale factor, 2) Calculates the D-score for SF and LF separately (not combined), 3) Tunes the GAMSLSS model to fit the healthy subsample. The "phase1_healthy"
object is removed.
Major changes
- Adds a new age-conditional reference for population
"dutch"
calculated using the"gsed2212"
key. - Defines a new key
"gsed2406"
to accomodate for the changed prior mean because of the adoption of the new reference"preliminary_standards"
as the base population. The key"gsed2406"
is identical to"gsed2212"
, and is the default key in this release. - Adds a new
builtin_keys
table that contains proper defaults for the base reference, transformation and quadrature points per key - Indexed a reference now by two fields:
key
andpopulation
. Previously the index was based on onlypopulation
. This change allows for multiple references per key, and for references created for the same population under different keys. Thekey
field is now mandatory in the reference table. - Adds a
verbose
option todscore()
,dscore_posterior()
,get_age_equivalent()
,get_reference()
,get_tau()
,daz()
andzad()
to print progress messages to the console on the values ofkey
,population
,transform
,qp
andalgorithm
. This is useful for debugging and for understanding the behavior of the functions. - Cleans up the R code to take advantage of the specification made in the new
builtin_keys
table. This makes the code more readable and maintainable. - Retires keys
sf2206
,lf2206
,294_0
,gsed2206
,gsed2208
and removes from thebuiltin_itembank
. dscore()
anddscore_posterior()
can now copy variables from the inputdata
into the output through theprepend
argument. (#46)
Minor changes
- Simplifies the package DESCRIPTION file
- New internal
init_key()
andset_default_xxx()
functions to regulate values forkey
,population
,transform
andqp
arguments - Renames the files in
data-raw/data/keys
to more consistent names, adaptsdata-raw/R/save_builtin_itembank.R
to reflect model history, and rebuildsbuiltin_itembank
- Removes the dependency on
tibble
andtidyselect
, and replaces the dependency onstringr
by the lighterstringi
- Rename the argument name
reference
toreference_table
indaz()
andzad()
to avoid confusion with thereferences
argument inget_reference()
- Simplifies the spelling of the term "D-score" to improve consistency and readability
- Replaces
magrittr
pipe%>%
by base pipe|>
- Make style more consistent with
styler
- Per request from CRAN (
Specified C++11: please drop specification unless essential
), removes a C++11 specification - Moves error evasion code into internal
pBCT()
- Document up-rounding to a D-score of 1 or higher when
daz()
andzad()
using the BCT transformation for positive values - Removes the superfluous
names
attribute from the return value ofdaz()
andzad()
- Evades an error produced by internal
pBCT()
whenis.na(nu)
isTRUE
- Renames GSED HH to GSED HF
- Change CITATION file to use the
bibtex
package - Moved all keys to the
data-raw/data/keys
folder and renamed them to improve readability
dscore 1.8.0
Major changes
- Adds instrument
gh1
(GSED-HH, JAN 2023) tobuiltin_itemtable
andbuiltin_itembank
as part of keygsed2212
- Adds example datasets:
sample_sf
,sample_lf
andsample_hf
- Adds vignette to calculate D-scores and DAZ dedicated to GSED instruments
- Renames streams in
gl1
instruments as: aa --> gm, bb --> lg, cc --> fm - Replaces item name
gl1aad001
-->gl1gmd001
, and so on
Minor changes
- Rewrite calls to
select()
andpivot_longer()
to conform totidyselect 1.2.0
grammar
dscore 1.7.0
Major issue
- On 22021130, we found errors in the LF item order. This error was introduced on May 30, 2022 and invalidates keys
gsed2206
andgsed2208
, as well as analyses that rely on correct LF item labels. Version 1.7.0 corrects these problems. - Item labels are taken from
LF1
, corrected using original source file comparisons from
Phase_1_master_data_dictionary_V1.0_29_11_2022.xlsx
;LF2
, from
GSED LF Item Guide_October22_FINAL_clean_27Nov22.docx
and
manually matched toLF1
.
- Rerun core 293_0 model, check edits, redocument, regenerate
diagnostic plots, etc. Check that result is identical. - Refit full 818_6 model. In general better ICC's, effect on
D-score calculation is minor, six items were bad matches
Major changes
- Introduces new default key
gsed2212
- Introduces new instrument codes
gs1
(GSED SF V1.0) andgl1
(GSED LF V1.0) - Updates
gto
labels with correct order - Set default key to
gsed2212
. This key repairs problems ingsed2206
andgsed2208
. get_labels()
now returns the labels in the same order asitems
- Extends key
gsed2212
with 18 ECDI items using Phase 1 validation data - Updates
builtin_itemtable
andbuiltin_itembank
with correct LF
item order - Redocuments upper anchor item
Minor changes
- Solves bug that crashed
dscore::count_mu_phase1(t)
whent
is a
vector containingNA
s - Adds example data set
gsample
with 10 cases with SF and LF scores - Adds
order
argument toget_itemnames()
- Repairs an error in the
sort_itemnames()
example - Replaces bitwise by more elegant elementwise comparison in
dscore.cpp
- Removes the dependency on the
sirt
package
dscore 1.6.0
Major changes
- Solves a long-standing issue that led to severe incongruence
between LF and SF at the earliest ages (<6M). - Adds two new keys (
gsed2208
and293_0
) using the Phase 1
validation data for the GSED SF and GSED LF. - Sets
293_0
as the GSED core model and extended it to include
the 818 items that fitted the previous model ("gsed2206"). - Adds a new reference (named
phase1
), based on LF and SF data from
cohorts GSED-BGD, GSED-PAK and GSED-TZA studies. - **Changes the default key to
gsed2208
and defaultpopulation
to "phase1".**. If you want the old behavior, specify
key =
"gsed1912"or
key =
"gsed2206"to functions that accept the
keyargument (
dscore(),
dscore_posterior(),
get_age_equivalent(),
get_tau()`).
Minor changes
- Many simplications and update to increase legibility and
consistency. - Makes arguments of
get_age_equivalent()
andget_tau()
consistent
withdscore()
- Adapts BCT functions to work with missing and out-of-range data
- Adds support for
phase1
reference toget_reference()
- Adds support for BCT references in
zad()
anddaz()
- Adds
count_mean_phase1()
for setting prior mean equal to the GSED
Phase 1 reference - Adds round 2 estimates to
count_mean_phase1()
- Prepares
dscore()
prior_mean functionality to deal with the
to-be-implemented new reference as "phase1" - Adds
count_mean_phase1()
function - Adds 18 ECDI items to keys
gsed2206
and294_0
- Initialise proper default
population
when key is294_0
. - Adds experimental key
294_0
to thebuiltin_itembank
. - Adds a
relevance
argument todscore()
anddscore_posterior()
to restrict calculation of D-scores to those items that have their
tau
within this relevance interval around the dynamic EAP
estimate. - Repairs bug in
builtin_itembank
that inherits old (gsed1912) tau's
into new key (gsed2206) for instrumentsgto
andgpa
. As a
consequence, D-score were incorrectly calculated whengto
and
gpa
item names were used. - Repairs a bug in
get_age_equivalent()
that resulted in age
interval estimates that were too narrow on the D-score scale.
dscore 1.5.0
Major changes
- Adds three new keys (
gsed2206
,lf2206
andsf2206
) that
incorporate Phase 1 validation data for the GSED SF, GSED LF and
BSID. - Changes the default key to
gsed2206
. If you want the old
behavior, specifykey = "gsed1912"
to functions that accept the
key
argument (dscore()
,dscore_posterior()
,
get_age_equivalent()
,get_tau()
). - Extends
builtin_itemtable
with names and labels forgpa
(SF),
gto
(LF) andgsd
(novel SF) items. - Solves a long-standing issue #29 that gave different D-score under
different transformation. This change affects solutions calculated
with themetric = "logit"
andtransform
parameters specified.
The D-scores calculated under different transforms are now linear
transformations of each other.
Minor changes
- Repairs a few problematic outbound URLs
dscore 1.4.0
Major changes
- Updates tau estimates for Mullen items in itembank covering a much wider age range: 65 out of the 85 Mullen items from previous itembank version have new tau estimates; 20 items are removed.
- Updates itembank with new Mullen items. There are 73 new Mullen items added to the new itembank. In total there are now 139 Mullen items in the itembank, estimates are based on PROVIDE and BAMBAM data.
- Moves sources to organisation repository
D-score/dscore
for increased visibility
Minor changes
- Update external links
- Repairs six incorrect BDS numbers in
data-raw/data/bds)edited.csv
dscore 1.3.0
This release updates the item table, adds new functionality and solves some problems:
- Adds equate groups translated from the
ddata
package tobuiltin_itemtable
- Adds new
itemtable_20200424.txt
with minimal item definitions - Adds 522 missing items that were defined in the
ddata
package - Minimizes the data stored in
builtin_itemtable
- The
get_itemtable()
function gets a new argumentdecompose
for adding info from decomposed item names - Solves warning from
get_itemtable()
whenitemtable
argument is specified
dscore 1.2.0
This release
- Addresses a problem with the integration of
tibble 3.0.0
. - Adds a new facility to create a dynamic (on-the-fly) itemtable from specified item names in
get_itemtable()
.
dscore 1.1.0
This release fixes a few glitches and improves consistency.
- The default rounding is now 2 (D-score), 3 (DAZ). Fixed rounding are now
4 (age) and 4 (p) decimals. - There was a slight discrepancy in the calculation of DAZ between the
dscore
andclopus
packages. Thedscore
package now first rounds
the D-score and then calculate DAZ. - The
dscore()
function now automatically select theprior_mean = ".dutch"
option when the user specifieskey == "dutch"
. This change repair an error
in the D-score calculation that occurs when onlykey == "dutch"
was given. - The
dscore()
function now silently handles warnings that may result
from taking the log of negative ages.
On its way to CRAN!
Hi, welcome to dscore 1.0.0
!
- The
dscore
package is available on CRAN per 2020/01/18 at https://CRAN.R-project.org/package=dscore - For the development history, see https://github.com/stefvanbuuren/dscore
- Added a
NEWS.md
file to track changes to the package.