Changes in version 2.0.0

Compatibility

  * Rita() still returns a two-element list. With automatic plotting, the
    second element now contains compact lattice pages by default. Set
    plot_profile = "full" for the historical exhaustive plot grouping. The
    five manual plot groups are still available with autoPlot = FALSE.
  * The default seed is NULL and uses the caller's RNG stream. Version 1.2.0
    reset the stream to a fixed seed. An explicit seed is scoped to the
    call. Rita can change cached state held outside .Random.seed by
    generators such as Box-Muller.
  * Corrected calculations and calibrations can change test statistics,
    p-values and decisions relative to 1.2.0. Legacy numeric method codes
    remain available, alongside descriptive names.
  * Cleaning still begins with numeric coercion and exclusion of all-missing
    and uniform variables. It then filters for common complete cases and
    excludes variables with two or fewer retained distinct values.

Normality tests

  * Above 5,000 usable observations, standalone SWTest() defaults to a random
    subsample without replacement. Use subsample_n to choose its size or
    large_n = "error" to stop with a sample-size diagnostic. When Rita()
    runs Shapiro-Wilk above this limit, its default is one common subsample
    without replacement for all selected transformations. Set
    sw_subsample_n to change its size or sw_large_n = "error" to disallow
    subsampling. Under the error policy, Rita() in all-tests mode reports
    Shapiro-Wilk as unavailable and continues with the other tests.
    Sampling records give the actual analyzed size and map sampled
    observations to their original positions.
  * The Lilliefors test retains the default Molin-Abdi approximation and
    reports clipping at the approximation boundary. Select
    method = "monte-carlo" in KSLTest() for normal-null simulation with
    reported exceedances, resolution and an uncertainty interval.
  * Anderson-Darling corrects how Stephens's piecewise p-value formulas are
    applied at and between breakpoints, and evaluates normal log tails
    directly.
  * D'Agostino-Pearson implements the published moment conversions
    correctly and uses a signed real cube root for the kurtosis transform.
    Both this test and Anderson-Darling standardize in centered, scaled
    coordinates.
  * Jarque-Bera corrects the weighting of adjusted skewness and excess
    kurtosis. For 4 to 1,999 usable observations it now simulates samples
    from the normal null in place of bootstrapping the observed data. From
    2,000 observations it uses a chi-square reference with two degrees of
    freedom.
  * Pearson chi-square uses equiprobable fitted-normal cells, including
    empty cells. The default chi-square approximation uses k - 3 degrees
    of freedom for k cells. An explicit df can override the default.

Input, transformations and descriptive statistics

  * Numeric data-frame columns retain their values during independent column
    coercion. Numeric factor labels are supported, and complex columns are
    rejected explicitly. Cleaning records identify original and introduced
    missingness, exclusions and retained row and column positions.
  * The base-10 logarithm still shifts the minimum to 1, even for positive
    input. Centering before adding 1 preserves that anchor at large
    magnitudes. Scaled arithmetic avoids overflow for extreme finite
    inputs whose difference would overflow.
  * The reciprocal retains reflection and the minimum-1 anchor, and the
    square root retains its minimum-zero anchor. Both handle extreme
    finite ranges more reliably. The arcsine square root also handles
    extreme ranges more reliably and still reanchors positive proportions
    before taking the square root.
  * logitXform() now accepts explicit input modes for counts, proportions,
    percentages and continuous values. Counts are divided by their total.
    The default retains automatic scaling for nonnegative inputs and
    corrects scaling for signed inputs. Rita() uses automatic mode.
  * The empirical logit now replaces only 0 and 1 using half the smallest
    strictly positive proportion and its complement. Constant or reordered
    results are possible, including a constant for c(0, 1). The old
    divisor remains accepted but has no effect. All-zero proportions and
    unrepresentable endpoint corrections now give errors.
  * The log, reciprocal, square-root, arcsine and logit functions report
    invalid input explicitly, including missing or infinite values.
  * Rankit retains its normal scores based on (rank(x) - 0.5) / length(x),
    average ranks for ties, and original observation order. In standalone
    use, R's rank() places missing values last in occurrence order and
    ranks infinities as extremes.
  * Descriptive skewness and excess kurtosis use adjusted Fisher-Pearson
    coefficients with stable sample standardization. Automatic selection
    compares each variable's candidates using squared normal QQ correlation
    on the full cleaned sample and takes the first exact maximum.

Structured results and plotting

  * attr(fit, "rita_analysis") on a Rita() result records cleaning,
    descriptive statistics, transformation scores and choices, and test
    results by variable.
  * attr(result, "rita_test") on a computed test result records unrounded
    statistics and p-values, tested sample size, calibration, validity
    status and the inferential decision. Invalid numerical results have
    an unavailable structured decision. Legacy raw wrapper values remain
    accessible for diagnosis.
  * Compact lattice pages show each original distribution beside its
    selected transformed distribution. The default is three variable
    pairs per page, adjustable with plots_per_page. Use plot_profile = "qq"
    for paired normal QQ diagnostics.
  * attr(fit, "rita_plotting") retains the data used by RitaPlots() to
    regenerate compact, full or QQ plots, even for fits made with plotting
    disabled. Compact and QQ pages adapt labels and axis tick spacing to
    the graphics device. Full names and QQ scores remain in the metadata.
    For batch analysis, assign the return value with display_plots = FALSE.

Statistical and numerical limitations

  * The Stephens extreme-tail approximation can return an invalid numerical
    result. A clipped Molin-Abdi p-value does not establish a true zero or
    one. Monte Carlo calibration has finite resolution. Failure to reject
    does not establish normality. Nominal p-values do not account for
    selecting a transformation on the same data.

Changes in version 1.2.0

  * Rita() added the return argument. The default, return = TRUE, returns
    variables transformed by the best-performing method. Set return = FALSE
    to return the cleaned, untransformed variables eligible for transformation.

Changes in version 1.1.0

Rita()

  * Excluded numeric columns with two or fewer distinct values before
    analysis.
  * Made minor formatting changes to the missing-value report.

SWTest()

  * Added warn to control warnings about resampling and test termination.
  * The test terminated below three observations and warned when warn = TRUE.
  * Above 5,000 observations, the test ran on 5,000 values sampled with
    replacement and reported the resampling when warn = TRUE.

JBTest()

  * Added warn to control warnings about bootstrapping and test termination.
  * Below four observations, the test could not be performed. It warned when
    warn = TRUE.
  * From four through 1,999 observations, the test used bootstrapping to
    obtain the p-value and warned about this when warn = TRUE.

DPTest()

  * Added warn to control the warning when the test terminated.
  * Below eight observations, the test could not be performed. It warned
    when warn = TRUE.

logitXform()

  * Added an empirical-logit fallback when the original transformation
    yielded a single distinct value. The new divisor adjusted epsilon for
    the fallback and was intended to be left at its default.

