Contact

CVMTEST Function (Gnumeric)

Statistical Intermediate Gnumeric

Test fitted-normal sample shape in Gnumeric with CVMTEST, a three-row p-value/statistic/count result and Cramer-von Mises interpretation limits.

Verification status: Gnumeric 1.12.57 ssconvert bounded CVMTEST fixtures only; retained 1.12.62 source inspected separately; no GUI. How formula examples are checked

CVMTEST performs a Cramér–von Mises test of normality using a sample’s estimated mean and sample standard deviation. It returns three values, not just a p-value. It is useful as one diagnostic of distributional shape, but a large p-value is not proof that a population is normal.

Syntax and output layout

=CVMTEST(x)

The single required argument x is a sample range or array. There are no optional significance-level, population-mean or population-standard-deviation arguments. Gnumeric estimates the normal model from the supplied sample.

Select a destination of three rows and one column, type the formula and confirm with Ctrl+Shift+Enter. The first row is an approximate p-value, the second the test statistic and the third the usable observation count. Inspect all three outputs rather than selecting only the first cell.

The implementation ignores text, logical values and blanks in the sample. Numeric zero counts. Input errors propagate. At least eight usable numeric observations are required. Use a nonconstant sample with positive estimated spread; a sample with no variation is not a meaningful normality-test input.

Worked example: inspect all three results

Enter the integers 1 through 10 in A1:A10. Select C1:C3 and array-enter =CVMTEST(A1:A10). The independently expected outputs are approximately:

Cell Meaning Expected value
C1 approximate p-value 0.975608491771
C2 Cramér–von Mises statistic 0.018200440159
C3 observation count 10

The sample mean is 5.5 and its sample variance is 55/6. To check the statistic independently, sort the observations and compute their fitted-normal cumulative probabilities Fᵢ. Sum (Fᵢ−(2i−1)/(2n))² for i = 1 through n, then add 1/(12n). This gives the displayed statistic.

Gnumeric applies a sample-size adjustment to that statistic internally for a piecewise p-value approximation. The second output row remains the unadjusted statistic. The expected p-value above evaluates that same documented/source algorithm independently; it is not a claim that a different statistical package’s calibration must match exactly.

Advanced use: verify invariance to units

If B1:B10 contains =100+2*A1 copied down, the transformed values are 102, 104, …, 120. A positive affine change alters the sample mean and standard deviation together, leaving the standardized observations unchanged. Therefore CVMTEST on B1:B10 should give the same statistic, approximate p-value and count as the original dataset, within floating-point precision.

This provides a useful model check when changing measurement units. It does not make an arbitrary nonlinear transformation harmless: a logarithm can genuinely change the distributional shape and the scientific question. Record transformations before interpreting the test.

A test result should be considered alongside a plot, knowledge of measurement resolution and the study design. Small samples have limited power to reveal departures, while large samples can detect departures that may be practically unimportant.

Errors and interpretation traps

  • For A1:A4, the output is #VALUE!, #VALUE!, 4 in the three rows. The observation count remains available even though the test cannot be calculated.
  • Eight filled cells are not necessarily eight numeric observations; imported numeric text is excluded.
  • The p-value is not the probability that the data are normally distributed or that a null hypothesis is true.
  • A significance threshold is chosen outside the function. It is not a second CVMTEST argument.
  • The function estimates mean and spread from the sample; do not compare its calibration with a fully specified-distribution test without accounting for that difference.
  • Avoid constant samples and correct input errors rather than replacing them with zeros that would change the distribution.

History and references

Official NEWS records CVMTEST as added in Gnumeric 1.9.16. The inspected source is retained 1.12.62; native execution is scoped separately below. No retirement date is inferred.

AVERAGE, STDEV and COUNT help audit the fitted sample model and its usable size.

Official sources

Native verification scope

On 17 October 2026, Gnumeric 1.12.57 ssconvert recalculated 2 bounded CVMTEST fixture records in C.UTF-8. The recorded outputs matched the independent expectations described here. Both three-row outputs were inspected, including the retained count for the too-small sample. The p-value reference calculation uses the source approximation, not an independent alternative calibration. This is engine evidence, not GUI or screenshot evidence. Examples using composed helper formulas or affine transformations are mathematical checks unless separately recorded; other versions and untested boundaries remain outside this scope.