1 AT_BANNER([NPAR TESTS])
3 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 < 1])
4 AT_DATA([npar.sps], [dnl
7 DATA LIST LIST NOTABLE /x * w *.
19 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
21 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
22 x,Group1,1.000,6.000,.286,.300,.551
23 ,Group2,2.000,15.000,.714,,
24 ,Total,,21.000,1.000,,
28 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 > 1])
29 AT_DATA([npar.sps], [dnl
32 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
44 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
46 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
47 x,Group1,1,7,.538,.400,.229
53 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 = 1])
54 AT_DATA([npar.sps], [dnl
57 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
69 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
71 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
72 x,Group1,1,8,.500,.400,.284
78 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 < 1])
79 AT_DATA([npar.sps], [dnl
82 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
94 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
96 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
97 x,Group1,1,11,.478,.600,.164
103 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 > 1])
104 AT_DATA([npar.sps], [dnl
107 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
118 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
120 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
121 x,Group1,1,11,.550,.600,.404
127 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 = 1])
128 AT_DATA([npar.sps], [dnl
131 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
142 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
144 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
145 x,Group1,1,11,.500,.600,.228
151 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 < 1])
152 AT_DATA([npar.sps], [dnl
155 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
167 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
169 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
170 x,Group1,1,8,.348,.500,.210
176 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 > 1])
177 AT_DATA([npar.sps], [dnl
180 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
191 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
193 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
194 x,Group1,1,12,.667,.500,.238
200 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1])
201 AT_DATA([npar.sps], [dnl
204 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
216 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
218 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
219 x,Group1,1,10,.500,.500,1.000
225 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1 Cutpoint])
226 AT_DATA([npar.sps], [dnl
229 DATA LIST LIST NOTABLE /x * w *.
239 /BINOMIAL(0.5) = x (10)
242 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
244 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
245 x,Group1,<= 10,10.000,.385,.500,.327
246 ,Group2,,16.000,.615,,
247 ,Total,,26.000,1.000,,
251 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1 Named values])
252 AT_DATA([npar.sps], [dnl
255 DATA LIST LIST NOTABLE /x * w *.
265 /BINOMIAL(0.5) = x (10, 20)
268 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
270 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
271 x,Group1,10.000,10.000,.435,.500,.678
272 ,Group2,20.000,13.000,.565,,
273 ,Total,,23.000,1.000,,
279 dnl Test for a bug which caused binomial to crash.
280 AT_SETUP([NPAR TESTS BINOMIAL - crash])
281 AT_DATA([nparX.sps], [dnl
282 data list list /range *.
288 * This is invalid syntax
290 /BINOMIAL(0.5) = Range().
293 AT_CHECK([pspp -O format=csv nparX.sps], [1], [ignore])
299 AT_SETUP([NPAR TESTS CHISQUARE])
300 AT_DATA([npar.sps], [dnl
301 DATA LIST NOTABLE LIST /x * y * w *.
329 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
331 ,Observed N,Expected N,Residual
341 ,Observed N,Expected N,Residual
348 Table: Test Statistics
352 Asymp. Sig.,.678,.112
355 ,Observed N,Expected N,Residual
362 Table: Test Statistics
370 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
371 1,2.00,3.00,3.16,-.16,2.00,4.00,2.21,1.79
372 2,3.00,5.00,5.26,-.26,3.00,1.00,3.68,-2.68
373 3,4.00,2.00,1.58,.42,4.00,2.00,1.11,.89
374 Total,,10.00,,,,7.00,,
376 Table: Test Statistics
380 Asymp. Sig.,.936,.127
385 AT_SETUP([NPAR TESTS CHISQUARE expected values missing])
386 AT_DATA([npar.sps], [dnl
387 DATA LIST NOTABLE LIST /x * y * w *.
402 /EXPECTED = 3 4 5 4 3 1
406 AT_CHECK([pspp -O format=csv npar.sps], [1], [dnl
407 "error: CHISQUARE test specified 6 expected values, but 4 distinct values were encountered in variable y."
409 Table: Test Statistics
418 AT_SETUP([NPAR TESTS CHISQUARE with DESCRIPTIVES])
419 AT_DATA([npar.sps], [dnl
420 DATA LIST NOTABLE LIST /x * y * w * .
434 MISSING VALUES x (4).
439 /STATISTICS=DESCRIPTIVES
443 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
446 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
447 1,-2.00,.00,1.50,-1.50,-2.00,.00,1.88,-1.88
448 2,-1.00,.00,1.50,-1.50,-1.00,.00,1.88,-1.88
449 3,.00,.00,1.50,-1.50,.00,.00,1.88,-1.88
450 4,1.00,3.00,1.50,1.50,1.00,7.00,1.88,5.13
451 5,2.00,3.00,1.50,1.50,2.00,4.00,1.88,2.13
452 6,3.00,5.00,1.50,3.50,3.00,1.00,1.88,-.88
453 7,4.00,.00,1.50,-1.50,4.00,2.00,1.88,.13
454 8,5.00,1.00,1.50,-.50,5.00,1.00,1.88,-.88
455 Total,,12.00,,,,15.00,,
457 Table: Test Statistics
459 Chi-Square,17.33,22.87
461 Asymp. Sig.,.015,.002
463 Table: Descriptive Statistics
464 ,N,Mean,Std. Deviation,Minimum,Maximum
466 x,12.00,2.47,1.19,1.00,5.00
467 y,15.00,2.07,1.33,1.00,5.00
471 AT_SETUP([NPAR TESTS CHISQUARE, listwise missing])
472 AT_DATA([npar.sps], [dnl
473 DATA LIST NOTABLE LIST /x * y * w * .
487 * MISSING VALUES x (4).
492 /STATISTICS=DESCRIPTIVES
496 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
499 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
500 1,-2.00,.00,1.75,-1.75,-2.00,.00,1.75,-1.75
501 2,-1.00,.00,1.75,-1.75,-1.00,.00,1.75,-1.75
502 3,.00,.00,1.75,-1.75,.00,.00,1.75,-1.75
503 4,1.00,3.00,1.75,1.25,1.00,7.00,1.75,5.25
504 5,2.00,3.00,1.75,1.25,2.00,4.00,1.75,2.25
505 6,3.00,5.00,1.75,3.25,3.00,1.00,1.75,-.75
506 7,4.00,2.00,1.75,.25,4.00,2.00,1.75,.25
507 8,5.00,1.00,1.75,-.75,5.00,.00,1.75,-1.75
508 Total,,14.00,,,,14.00,,
510 Table: Test Statistics
512 Chi-Square,13.43,26.00
514 Asymp. Sig.,.062,.001
516 Table: Descriptive Statistics
517 ,N,Mean,Std. Deviation,Minimum,Maximum
519 x,14.00,2.69,1.23,1.00,5.00
520 y,14.00,1.86,1.10,1.00,4.00
524 AT_SETUP([NPAR TESTS WILCOXON])
525 AT_DATA([npar.sps], [dnl
526 data list notable list /foo * bar * w (f8.0).
544 variable labels foo "first" bar "second".
549 /wilcoxon=foo with bar (paired)
554 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
556 ,,N,Mean Rank,Sum of Ranks
557 first - second,Negative Ranks,8,6.00,48.00
558 ,Positive Ranks,5,8.60,43.00
562 Table: Test Statistics
565 Asymp. Sig. (2-tailed),.861
566 Exact Sig. (2-tailed),.893
567 Exact Sig. (1-tailed),.446
572 AT_SETUP([NPAR TESTS WILCOXON with missing values])
573 AT_DATA([npar.sps], [dnl
574 data list notable list /foo * bar * dummy *.
594 variable labels foo "first" bar "second".
597 /wilcoxon=foo with bar (paired)
602 dnl This is the same output as the previous test.
603 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
605 ,,N,Mean Rank,Sum of Ranks
606 first - second,Negative Ranks,8,6.00,48.00
607 ,Positive Ranks,5,8.60,43.00
611 Table: Test Statistics
614 Asymp. Sig. (2-tailed),.861
615 Exact Sig. (2-tailed),.893
616 Exact Sig. (1-tailed),.446
620 AT_SETUP([NPAR TESTS SIGN])
621 AT_DATA([npar.sps], [dnl
624 data list notable list /age * height rank *.
635 /sign=age height WITH height rank (PAIRED)
640 AT_CHECK([pspp -o pspp.csv npar.sps])
641 dnl Some machines return .313 instead of .312
642 dnl (see bug #31611).
643 AT_CHECK([sed -e 's/\.313$/.312/' -e 's/^Exact Sig\. (1-tailed),\.313/Exact Sig. (1-tailed),.312/' pspp.csv], [0], [dnl
646 age - height,Negative Differences,3
647 ,Positive Differences,1
650 height - rank,Negative Differences,2
651 ,Positive Differences,3
655 Table: Test Statistics
656 ,age - height,height - rank
657 Exact Sig. (2-tailed),.625,1.000
658 Exact Sig. (1-tailed),.312,.500
659 Point Probability,.250,.312
664 AT_SETUP([NPAR Kruskal-Wallis test])
667 AT_DATA([kw-simple.sps], [dnl
670 data list notable list /gv * xscore *.
691 3 "handled the ball".
694 /kruskal-wallis xscore by gv (1, 3)
698 AT_CHECK([pspp -o pspp.csv kw-simple.sps])
699 AT_CHECK([cat pspp.csv], [0], [dnl
702 xscore,timed out,5,4.400
704 ,handled the ball,4,11.500
707 Table: Test Statistics
715 dnl Now try a missing value in the group variable
716 AT_DATA([kw-missing-group.sps], [dnl
719 data list notable list /gv * xscore *.
738 missing values gv (2.5).
743 3 "handled the ball".
746 /kruskal-wallis xscore by gv (1, 3)
751 AT_CHECK([pspp -o pspp2.csv kw-missing-group.sps])
753 dnl The result should be the same as before
754 AT_CHECK([diff pspp.csv pspp2.csv], [0])
759 AT_SETUP([NPAR Kruskal-Wallis multiple-variables])
761 AT_DATA([kw-multi.sps], [dnl
764 data list notable list /gv * xscore * yscore.
796 /k-w xscore yscore by gv (1, 5)
802 AT_CHECK([pspp -o pspp.csv kw-multi.sps])
803 AT_CHECK([cat pspp.csv], [0], [dnl
806 xscore,timed out,5,4.400
808 ,handled the ball,4,11.500
810 yscore,hit wicket,5,7.400
811 ,handled the ball,4,11.500
815 Table: Test Statistics
817 Chi-Square,,6.406,6.406,
819 Asymp. Sig.,,.041,.041,
826 AT_SETUP([NPAR TESTS Runs])
827 AT_DATA([npar-runs.sps], [dnl
829 data list notable list /score * w *.
872 /runs (MEDIAN) = score
878 AT_CHECK([pspp -O format=csv npar-runs.sps], [0],
881 Test Value (median),3.0000
882 Cases < Test Value,177.0000
883 Cases ≥ Test Value,309.0000
887 Asymp. Sig. (2-tailed),2.000
891 Test Value (mean),3.6379
892 Cases < Test Value,259.0000
893 Cases ≥ Test Value,227.0000
897 Asymp. Sig. (2-tailed),2.000
901 Test Value (mode),6.0000
902 Cases < Test Value,316.0000
903 Cases ≥ Test Value,170.0000
907 Asymp. Sig. (2-tailed),2.000
913 dnl Thanks to Douglas Bonett for providing this test case.
914 AT_SETUP([NPAR TESTS Runs (2)])
915 AT_DATA([npar-runs.sps], [dnl
916 data list notable free /y.
918 1 1 2 1 2 1 1 2 1 1 1 2 1 2
920 NPAR TEST /RUNS(1.5) = y.
923 AT_CHECK([pspp -O format=csv npar-runs.sps], [0], [dnl
932 Asymp. Sig. (2-tailed),.206
937 AT_SETUP([NPAR TESTS Friedman])
938 AT_DATA([npar-friedman.sps], [dnl
940 data list notable list /x * y * z.
958 AT_CHECK([pspp -O format=csv npar-friedman.sps], [0], [dnl
965 Table: Test Statistics
976 AT_SETUP([NPAR TESTS Mann-Whitney])
977 AT_DATA([npar-mann-whitney.sps], [dnl
980 data list notable list /height * sex (f1.0).
1019 /M-W = height BY sex (0,1).
1022 AT_CHECK([pspp -O format=csv npar-mann-whitney.sps], [0], [dnl
1024 ,N,,,Mean Rank,,Sum of Ranks,
1026 height,15.0000,15.0000,30.0000,14.5333,16.4667,218.0000,247.0000
1028 Table: Test Statistics
1029 ,Mann-Whitney U,Wilcoxon W,Z,Asymp. Sig. (2-tailed)
1030 height,98.0000,218.0000,-.6020,.547
1037 AT_SETUP([NPAR TESTS Cochran])
1038 AT_DATA([npar-cochran.sps], [dnl
1041 data list notable list /v1 * v2 * v3 * v4 * v5 * v6 * v7 *.
1055 /cochran = v1 to v7 .
1059 AT_CHECK([pspp -o pspp.csv npar-cochran.sps])
1061 AT_CHECK([cat pspp.csv], [0], [dnl
1064 ,Success (2),Failure (1)
1073 Table: Test Statistics
1084 AT_SETUP([NPAR TESTS Kendall])
1085 AT_DATA([npar-kendall.sps], [dnl
1088 data list notable list /v1 * v2 * v3
1128 AT_CHECK([pspp -o pspp.csv npar-kendall.sps])
1130 AT_CHECK([cat pspp.csv], [0], [dnl
1137 Table: Test Statistics
1149 AT_SETUP([NPAR TESTS McNemar])
1151 AT_DATA([mcnemar.sps], [dnl
1153 data list notable list /v1 * v2 * junk *.
1178 /mcnemar = v1 WITH v2 junk.
1181 AT_CHECK([pspp -O format=csv mcnemar.sps], [0], [dnl
1194 Table: Test Statistics
1195 ,N,Exact Sig. (2-tailed),Exact Sig. (1-tailed),Point Probability
1196 v1 & v2,20,.065,.033,.027
1197 v1 & junk,20,.453,.227,.164
1203 AT_SETUP([NPAR TESTS Kolmogorov-Smirnov Uniform parameters given])
1205 AT_DATA([ks-uniform.sps], [dnl
1207 data list notable list /x *.
1221 npar tests k-s (uniform 0 1) = x.
1224 AT_CHECK([pspp -O format=csv ks-uniform.sps], [0], [dnl
1225 Table: One-Sample Kolmogorov-Smirnov Test
1228 Uniform Parameters,Minimum,.000
1230 Most Extreme Differences,Absolute,.289
1233 Kolmogorov-Smirnov Z,,.914
1234 Asymp. Sig. (2-tailed),,.374
1240 AT_SETUP([NPAR TESTS Kolmogorov-Smirnov Normal parameters imputed])
1242 AT_DATA([ks-normal.sps], [dnl
1245 data list notable list /foo * bar *.
1424 /k-s (normal) = foo bar.
1427 AT_CHECK([pspp -O format=csv ks-normal.sps], [0], [dnl
1428 Table: One-Sample Kolmogorov-Smirnov Test
1431 Normal Parameters,Mean,62.109,13.108
1432 ,Std. Deviation,11.548,.718
1433 Most Extreme Differences,Absolute,.059,.115
1435 ,Negative,-.059,-.082
1436 Kolmogorov-Smirnov Z,,.785,.795
1437 Asymp. Sig. (2-tailed),,.569,.552
1444 AT_SETUP([NPAR TESTS Median Test (median imputed)])
1446 AT_DATA([median1.sps], [dnl
1448 data list notable list /ignore * animal * years * w *.
1483 variable label years 'Years expected'.
1484 variable label animal 'Animal Genus'.
1486 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1489 /median = years by animal (1, 5)
1494 AT_CHECK([pspp -O format=csv median1.sps], [0], [dnl
1497 ,,Animal 1,Animal 2,Animal 3,Animal 4,Animal 5
1498 Years expected,> Median,2,1,2,3,4
1501 Table: Test Statistics
1502 ,N,Median,Chi-Square,df,Asymp. Sig.
1503 Years expected,28,7.000,4.317,4,.365
1509 AT_SETUP([NPAR TESTS Median Test (median given)])
1511 AT_DATA([median2.sps], [dnl
1513 data list notable list /ignore * animal * years * w *.
1546 variable label years 'Years expected'.
1547 variable label animal 'Animal Genus'.
1549 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1552 /median (7) = years by animal (1, 5)
1557 AT_CHECK([pspp -O format=csv median2.sps], [0], [dnl
1560 ,,Animal 1,Animal 2,Animal 3,Animal 4,Animal 5
1561 Years expected,> Median,2,1,2,3,4
1564 Table: Test Statistics
1565 ,N,Median,Chi-Square,df,Asymp. Sig.
1566 Years expected,28,7.000,4.317,4,.365
1572 AT_SETUP([NPAR TESTS Median Test (two sample)])
1574 AT_DATA([median3.sps], [dnl
1576 data list notable list /xx * animal * years * w *.
1609 variable label years 'Years expected'.
1610 variable label animal 'Animal Genus'.
1612 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1615 /median (7) = xx years by animal (5, 1)
1620 AT_CHECK([pspp -O format=csv median3.sps], [0], [dnl
1626 Years expected,> Median,2,4
1629 Table: Test Statistics
1630 ,N,Median,Chi-Square,df,Asymp. Sig.
1631 xx,9,7.000,NaN,1,NaN
1632 Years expected,9,7.000,.900,1,.343
1638 AT_SETUP([NPAR TESTS Jonckheere-Terpstra])
1640 AT_DATA([jt.sps], [dnl
1642 data list notable list /x * g * w *.
1667 npar test /jonckheere-terpstra = x by g (5, 2).
1671 AT_CHECK([pspp -O format=csv jt.sps], [0], [dnl
1672 Table: Jonckheere-Terpstra Test
1673 ,Number of levels in g,N,Observed J-T Statistic,Mean J-T Statistic,Std. Deviation of J-T Statistic,Std. J-T Statistic,Asymp. Sig. (2-tailed)
1674 x,4,24.000,29.500,65.000,15.902,-2.232,.026
1679 dnl Checks that (PAIRED) can have lists where the same
1680 dnl variable appears more than once.
1681 AT_SETUP([NPAR TESTS (PAIRED)])
1682 AT_DATA([npar.sps], [dnl
1684 data list notable list /a * b * c *.
1692 npar tests /wilcoxon a b with c c (paired).
1695 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
1697 ,,N,Mean Rank,Sum of Ranks
1698 a - c,Negative Ranks,2,2.500,5.000
1699 ,Positive Ranks,2,2.500,5.000
1702 b - c,Negative Ranks,1,1.500,1.500
1703 ,Positive Ranks,2,2.250,4.500
1707 Table: Test Statistics
1710 Asymp. Sig. (2-tailed),1.000,.414
1718 AT_SETUP([NPAR TESTS CHISQUARE crash])
1719 dnl This syntax had been observed to crash pspp
1721 AT_DATA([npar.sps], [dnl
1722 data list list /x *.
1736 * This happens to be invalid syntax. But should not crash.
1738 /CHISQUARE= x(0.098, 99.098)
1742 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
1747 AT_SETUP([NPAR TESTS - crash on invalid syntax])
1749 AT_DATA([npar.sps], [dnl
1750 data list notable list /ev * xscore *.
1761 /kruskal-wallis xscore by(gv (1, 3).
1764 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
1771 AT_SETUP([NPAR TESTS - crash on unterminated string])
1773 AT_DATA([npar.sps], [dnl
1774 DATA LIST NOTABLE LIST /x * y * w * .
1783 " CHISQUARE=x y(-2,5)
1784 /STATISTICS=DESCRIPTIVES
1788 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])