blob: 7846ad23bab3f28226256f5bf887c67b649794ca [file] [log] [blame]
/* -----------------------------------------------------------------------------
* Test ANOVA.
*
* Example taken from:
* http://www.itl.nist.gov/div898/handbook/prc/section4/prc433.htm
* -------------------------------------------------------------------------- */
CREATE TABLE nist_anova_test (
id SERIAL,
resistance FLOAT8[]
);
COPY nist_anova_test(resistance) FROM stdin;
{6.9,8.3,8.0}
{5.4,6.8,10.5}
{5.8,7.8,8.1}
{4.6,9.2,6.9}
{4.0,6.5,9.3}
\.
CREATE TABLE one_way_anova_nist AS
SELECT (one_way_anova(level, value)).* FROM (
SELECT level, resistance[level] AS value
FROM
nist_anova_test, (
SELECT * FROM generate_series(1,3) level
) q
) q;
SELECT * FROM one_way_anova_nist;
SELECT assert(
relative_error(statistic, 9.59) < 0.001 AND
relative_error(sum_squares_between, 27.897) < 0.001 AND
relative_error(sum_squares_within, 17.452) < 0.001 AND
df_between = 2 AND
df_within = 12 AND
relative_error(mean_squares_between, 13.949) < 0.001 AND
relative_error(mean_squares_within, 1.454) < 0.001,
'One-way ANOVA: Wrong results'
) FROM one_way_anova_nist;