Repository navigation
contentvalidR 0.6.0
Sixth public release. v0.6.0 finishes the Delphi workflow: a Delphi study can
now be handed off to empirical validation, carrying for each item the round it
settled in, and plot() shows the two trends a Delphi is about. It also adds
a test layer that checks the package's printed claims against what the code
actually computes.
The package continues to declare Imports: stats only.
No default changes. Existing calls return the same values as in 0.5.0.
New method: plot() for delphi_validity(). content_handoff() accepts a
Delphi fit.
Published on GitHub and R-universe. 0.4.0 remains in CRAN's review queue, and
CRAN policy asks that no further version be submitted while one is pending.
Seeing a Delphi's trends
plot()fordelphi_validity()
(#44), so the Delphi
workflow matches the others in having one.which = "consensus"(default) draws each item's share of experts
agreeing, round by round. A line that stops early belongs to an item that
settled and was set aside, so the picture shows when each item left the
study.which = "stability"draws the stability statistic per pair of rounds,
with the share of experts who kept their rating as open circles.- Nothing is drawn that the analysis did not apply. The consensus
threshold appears only when one was set, and kappa gets no shaded bands,
because its verbal benchmarks are arbitrary and it falls as a panel
converges. - Item labels sit at the end of each line and are nudged apart when items
finish at the same height.
Printed claims are tested against what the code computes
- A new test file checks the package's printed output against the fitted
objects it describes, rather than against strings copied from the print
methods (#41). A test
that asserts what the documentation claims can pass while being false. It
checks that:- every number printed for an item is the number the object holds;
- the printed settings are the settings that ran;
- a method's critique appears when that method ran, and not otherwise;
- percentages written into prose match the computed proportions;
- a claim about how a statistic was computed holds of the numbers. The
note that quadratic weighting makes kappa an intraclass correlation is
checked against the intraclass correlation itself, and is absent under
linear weights, where it would be false; compare_rounds()claims comparability only when the settings match;- the status legend's example words are real recommendation values in some
workflow; - statistics stay inside the ranges the glossary claims, under unanimous,
rejected, and evenly split panels.
.print_key()now fails on an unknown term instead of dropping it. A typo
in a print method's key used to remove a column's explanation in silence.
A Delphi study can hand off
content_handoff()now accepts adelphi_validity()fit
(#42). It used to
refuse one, and its message did not even mention Delphi.- Each item travels with its own last round. A Delphi settles one item
at a time: an item that reached consensus early was set aside before the
final round.roundnow holds that round's index, so it varies between
items. This is the first workflow where it carries real information. - Relevance evidence comes from the item's last round, taken from that
round'sexpert_validity()fit, with intervals:I-CVIagainst the
consensus threshold,Aiken's V, andmodified kappa. Modified kappa
carries no criterion, because a Delphi decides on the consensus
threshold rather than on the 0.74 rule. - Stability travels as evidence, never as a carry decision:
proportion unchangedplus the statistic that ran, named for its
method, such asweighted kappa (quadratic)orGoodman-Kruskal lambda. The chi-square methods addstability p_value. The names are
qualified so a downstream report cannot misread them
(nomologR#46). roundcannot be set by hand for a Delphi fit, since the fit supplies it.
- Each item travels with its own last round. A Delphi settles one item
- No schema change. These are new values in existing columns, so a schema
version 1 reader still reads the object.