| /* ----------------------------------------------------------------------------- |
| * Test Mann-Whitney-test. |
| * |
| * Example taken from: |
| * http://www.itl.nist.gov/div898/handbook/prc/section3/prc35.htm |
| * -------------------------------------------------------------------------- */ |
| |
| m4_include(`SQLCommon.m4') |
| m4_changequote(<!,!>) |
| m4_ifdef(<!__HAS_ORDERED_AGGREGATES__!>,<! |
| |
| CREATE TABLE nist_mw_example ( |
| id SERIAL, |
| group_a FLOAT8, |
| rank_a FLOAT8, |
| group_b FLOAT8, |
| rank_b FLOAT8 |
| ); |
| |
| COPY nist_mw_example(group_a, rank_a, group_b, rank_b) FROM stdin; |
| .55 8 .49 5 |
| .67 15.5 .68 17 |
| .43 1 .59 9.5 |
| .51 6 .72 19 |
| .48 3.5 .67 15.5 |
| .60 11 .75 20.5 |
| .71 18 .65 13.5 |
| .53 7 .77 22 |
| .44 2 .62 12 |
| .65 13.5 .48 3.5 |
| .75 20.5 .59 9.5 |
| \. |
| |
| CREATE TABLE mw_test AS |
| SELECT (mw_test(from_first, value ORDER BY value)).* |
| FROM ( |
| SELECT TRUE AS from_first, group_a AS value |
| FROM nist_mw_example |
| UNION ALL |
| SELECT FALSE, group_b |
| FROM nist_mw_example |
| ) q; |
| |
| SELECT * FROM mw_test; |
| SELECT assert( |
| relative_error(statistic, -1.346133) < 0.001 AND |
| u_statistic = 40 AND |
| relative_error(p_value_one_sided, 1 - 0.089130) < 0.001, |
| 'Mann-Whitney test: Wrong results' |
| ) FROM mw_test; |
| |
| !>) |
| m4_changequote(<!`!>,<!'!>) |