SCAtools 0.4.3

Authorship and maintainer

Authors@R named a placeholder, SCAtools Contributors <maintainer@example.org>, which CRAN rejects: the maintainer must be a real person at a working address. Both are now Young Chan youngchanresearcher@gmail.com.

inst/CITATION was missed by that pass and still returned the placeholder author with R package version 0.1.0, so citation("SCAtools") contradicted both DESCRIPTION and the package guide. It now names the same person and reads the version from DESCRIPTION, so it cannot fall behind again.

URL pointed at the CRAN page of NCA, the computational engine, which reads as if it were this package’s home. It now points at this package’s repository, and BugReports is set alongside it:

URL: https://github.com/youngchanresearcher/SCAtools
BugReports: https://github.com/youngchanresearcher/SCAtools/issues

NCA’s authorship and licence are stated in Description, inst/NOTICE and the README, which is where that attribution belongs.

sca_power() refuses a slope its direction cannot use

A frontier line bounds only two of the four corners: a rising line the upper-left and lower-right (HH, LL), a falling line the upper-right and lower-left (LH, HL). A horizontal line is accepted for any direction.

sca_random() inherited the engine’s error for the impossible combination, but nca_power() only warned and returned NULL. sca_power(direction = "LH") with the default slope = 1 therefore produced no result at all, and the failure was silent by the time the NULL reached sca_powerplot(). sca_power() now checks the sign itself and stops with the direction, the corner and the offending value named. Every combination that worked before still works: the check refuses exactly what the engine already refused.

Documentation

SCAtools 0.4.2

A packaging release. No code, argument, column or default changed.

R CMD check --as-cran on 0.4.1 was already clean for this package – 0 errors, 0 warnings, 505 tests passing. This removes the one remaining avoidable NOTE.

SCAtools 0.4.1

OLS is a reference line, not a ceiling technique

ceilings = "ols" asked the NCA engine for an ordinary least-squares regression of the outcome on the condition, fitted to all the data: the line lm(y ~ x) returns. It is a central-tendency summary, not a frontier. It estimates no empty space, so it yields no ceiling zone, no effect size, no permutation p value and no threshold table – and it was the first entry of the default ceilings, which made it the line sca_extract() reached for when no ceiling was named.

Section 4.3 of the condition analysis in degree framework states the difference: a frontier is fixed by the most extreme observations rather than by the central tendency. Section 6.1 is why the line is still worth drawing. Average-effect models and condition analysis answer different questions about the same relationship and are most informative side by side, not merged into one number.

Nothing else changed. No column, argument or status value was renamed.

SCAtools 0.4.0

This release adopts the vocabulary of condition analysis in degree, the framework that sets SCA and NSCA beside NCA. Terminology follows the article; the package’s own names are kept only where the article has nothing to say. Nothing was removed: every retired name still works.

Boundary and frontier are different objects

Section 3.2 of the framework uses five terms in sequence. The scope is the region of the X-Y space bounded by the theoretical or observed extremes. An expected empty space (or empty zone) is the part of that scope which should hold no observations if the hypothesised relation holds. A boundary is the theoretical line separating that space from the compatible region. A frontier is the boundary estimated from data. Ceiling and floor name the direction in which Y is bounded.

The package already used frontier for the estimated line, which is correct. It also used boundary for something else entirely – whether a reported rule uses > or >= – and that name is now needed for the theoretical line.

Ceiling and floor are now reported

For sufficiency the fitted boundary is a floor whenever the outcome level is high (HH, LH) and a ceiling whenever it is low (HL, LL). The package estimated the right thing but never said which it was, because the argument is called ceilings in every direction. Three columns now state the geometry in the framework’s own words:

All three appear in sca_table(), sca_corner_map() and the printed mapping; boundary_type and relationship also appear in sca_thresholds(). They are derived from the empty corner, which remains the single source of truth.

The threshold is a sufficiency threshold

Section 4.3 names the quantity a sufficiency analysis reports: the lowest X at which the estimated sufficiency frontier reaches a stated outcome target.

This also makes the two packages agree: NSCA already used these names for the same quantity, and previously had to read SCAtools’ differently named column.

Retired names still work

Also

SCAtools 0.2.1

SCAtools 0.2.0

Threshold tables replace bottleneck tables

Percentage, percentile and standard-deviation scales

Other changes

SCAtools 0.1.0