Fixed misleading results in the Kruskal-Wallis test
[pspp] / tests / language / stats / npar.at
1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017, 2022 Free Software Foundation, Inc.
3 dnl
4 dnl This program is free software: you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation, either version 3 of the License, or
7 dnl (at your option) any later version.
8 dnl
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 dnl GNU General Public License for more details.
13 dnl
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 dnl
17 AT_BANNER([NPAR TESTS])
18
19 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 < 1])
20 AT_DATA([npar.sps], [dnl
21 SET FORMAT F8.3.
22
23 DATA LIST LIST NOTABLE /x * w *.
24 BEGIN DATA.
25 1   6
26 2   15
27 END DATA.
28
29 WEIGHT BY w.
30
31 NPAR TESTS
32         /BINOMIAL(0.3) = x
33         .
34 ])
35 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
36 Table: Binomial Test
37 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
38 x,Group 1,1.000,6.000,.286,.300,.551
39 ,Group 2,2.000,15.000,.714,,
40 ,Total,,21.000,1.000,,
41 ])
42 AT_CLEANUP
43
44 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 > 1])
45 AT_DATA([npar.sps], [dnl
46 SET FORMAT F8.3.
47
48 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
49 BEGIN DATA.
50 1   7
51 2   6
52 END DATA.
53
54 WEIGHT BY w.
55
56 NPAR TESTS
57         /BINOMIAL(0.4) = x
58         .
59 ])
60 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
61 Table: Binomial Test
62 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
63 x,Group 1,1,7,.538,.400,.229
64 ,Group 2,2,6,.462,,
65 ,Total,,13,1.000,,
66 ])
67 AT_CLEANUP
68
69 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 = 1])
70 AT_DATA([npar.sps], [dnl
71 SET FORMAT F8.3.
72
73 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
74 BEGIN DATA.
75 1   8
76 2   8
77 END DATA.
78
79 WEIGHT BY w.
80
81 NPAR TESTS
82         /BINOMIAL(0.4) = x
83         .
84 ])
85 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
86 Table: Binomial Test
87 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
88 x,Group 1,1,8,.500,.400,.284
89 ,Group 2,2,8,.500,,
90 ,Total,,16,1.000,,
91 ])
92 AT_CLEANUP
93
94 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 < 1])
95 AT_DATA([npar.sps], [dnl
96 SET FORMAT F8.3.
97
98 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
99 BEGIN DATA.
100 1   11
101 2   12
102 END DATA.
103
104 WEIGHT BY w.
105
106 NPAR TESTS
107         /BINOMIAL(0.6) = x
108         .
109 ])
110 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
111 Table: Binomial Test
112 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
113 x,Group 1,1,11,.478,.600,.164
114 ,Group 2,2,12,.522,,
115 ,Total,,23,1.000,,
116 ])
117 AT_CLEANUP
118
119 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 > 1])
120 AT_DATA([npar.sps], [dnl
121 SET FORMAT F8.3.
122
123 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
124 BEGIN DATA.
125 1   11
126 2   9
127 END DATA.
128
129 WEIGHT BY w.
130
131 NPAR TESTS
132         /BINOMIAL(0.6) = x.
133 ])
134 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
135 Table: Binomial Test
136 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
137 x,Group 1,1,11,.550,.600,.404
138 ,Group 2,2,9,.450,,
139 ,Total,,20,1.000,,
140 ])
141 AT_CLEANUP
142
143 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 = 1])
144 AT_DATA([npar.sps], [dnl
145 SET FORMAT F8.3.
146
147 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
148 BEGIN DATA.
149 1   11
150 2   11
151 END DATA.
152
153 WEIGHT BY w.
154
155 NPAR TESTS
156         /BINOMIAL(0.6) = x.
157 ])
158 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
159 Table: Binomial Test
160 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
161 x,Group 1,1,11,.500,.600,.228
162 ,Group 2,2,11,.500,,
163 ,Total,,22,1.000,,
164 ])
165 AT_CLEANUP
166
167 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 < 1])
168 AT_DATA([npar.sps], [dnl
169 SET FORMAT F8.3.
170
171 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
172 BEGIN DATA.
173 1   8
174 2   15
175 END DATA.
176
177 WEIGHT BY w.
178
179 NPAR TESTS
180         /BINOMIAL = x
181         .
182 ])
183 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
184 Table: Binomial Test
185 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
186 x,Group 1,1,8,.348,.500,.210
187 ,Group 2,2,15,.652,,
188 ,Total,,23,1.000,,
189 ])
190 AT_CLEANUP
191
192 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 > 1])
193 AT_DATA([npar.sps], [dnl
194 SET FORMAT F8.3.
195
196 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
197 BEGIN DATA.
198 1   12
199 2   6
200 END DATA.
201
202 WEIGHT BY w.
203
204 NPAR TESTS
205         /BINOMIAL(0.5) = x.
206 ])
207 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
208 Table: Binomial Test
209 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
210 x,Group 1,1,12,.667,.500,.238
211 ,Group 2,2,6,.333,,
212 ,Total,,18,1.000,,
213 ])
214 AT_CLEANUP
215
216 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1])
217 AT_DATA([npar.sps], [dnl
218 SET FORMAT F8.3.
219
220 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
221 BEGIN DATA.
222 1   10
223 2   10
224 END DATA.
225
226 WEIGHT BY w.
227
228 NPAR TESTS
229         /BINOMIAL(0.5) = x
230         .
231 ])
232 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
233 Table: Binomial Test
234 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
235 x,Group 1,1,10,.500,.500,1.000
236 ,Group 2,2,10,.500,,
237 ,Total,,20,1.000,,
238 ])
239 AT_CLEANUP
240
241 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1 Cutpoint])
242 AT_DATA([npar.sps], [dnl
243 SET FORMAT F8.3.
244
245 DATA LIST LIST NOTABLE /x * w *.
246 BEGIN DATA.
247 9    3
248 10   7
249 11   16
250 END DATA.
251
252 WEIGHT BY w.
253
254 NPAR TESTS
255         /BINOMIAL(0.5) = x (10)
256         .
257 ])
258 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
259 Table: Binomial Test
260 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
261 x,Group 1,<= 10,10.000,.385,.500,.327
262 ,Group 2,,16.000,.615,,
263 ,Total,,26.000,1.000,,
264 ])
265 AT_CLEANUP
266
267 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1 Named values])
268 AT_DATA([npar.sps], [dnl
269 SET FORMAT F8.3.
270
271 DATA LIST LIST NOTABLE /x * w *.
272 BEGIN DATA.
273 10   10
274 15   45
275 20   13
276 END DATA.
277
278 WEIGHT BY w.
279
280 NPAR TESTS
281         /BINOMIAL(0.5) = x (10, 20)
282         .
283 ])
284 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
285 Table: Binomial Test
286 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
287 x,Group 1,10.000,10.000,.435,.500,.678
288 ,Group 2,20.000,13.000,.565,,
289 ,Total,,23.000,1.000,,
290 ])
291 AT_CLEANUP
292
293
294
295 dnl Test for a bug which caused binomial to crash.
296 AT_SETUP([NPAR TESTS BINOMIAL - crash])
297 AT_DATA([nparX.sps], [dnl
298 data list list /range *.
299 begin data.
300 0
301 1
302 end data.
303
304 * This is invalid syntax
305 NPAR TEST
306         /BINOMIAL(0.5) = Range().
307
308 ])
309 AT_CHECK([pspp -O format=csv nparX.sps], [1], [ignore])
310
311 AT_CLEANUP
312
313
314
315 AT_SETUP([NPAR TESTS CHISQUARE])
316 AT_DATA([npar.sps], [dnl
317 DATA LIST NOTABLE LIST /x * y * w *.
318 BEGIN DATA.
319 1   2  1
320 2   1  3
321 3.1 1  4
322 3.2 2  1
323 4   2  2
324 5   3  1
325 1   4  2
326 END DATA.
327
328 WEIGHT BY w.
329
330 NPAR TESTS
331   CHISQUARE=x y
332   .
333
334 NPAR TESTS
335   CHISQUARE=y
336   /EXPECTED=3 4 5 4
337   .
338
339 NPAR TESTS
340   CHISQUARE=x y(2, 4)
341   /EXPECTED = 6 10 3
342   .
343 ])
344
345 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
346 Table: x
347 Value,Observed N,Expected N,Residual
348 1.00,3.00,2.33,.67
349 2.00,3.00,2.33,.67
350 3.10,4.00,2.33,1.67
351 3.20,1.00,2.33,-1.33
352 4.00,2.00,2.33,-.33
353 5.00,1.00,2.33,-1.33
354 Total,14.00,,
355
356 Table: y
357 Value,Observed N,Expected N,Residual
358 1.00,7.00,3.50,3.50
359 2.00,4.00,3.50,.50
360 3.00,1.00,3.50,-2.50
361 4.00,2.00,3.50,-1.50
362 Total,14.00,,
363
364 Table: Test Statistics
365 ,Chi-square,df,Asymp. Sig.
366 x,3.14,5,.678
367 y,6.00,3,.112
368
369 Table: y
370 Value,Observed N,Expected N,Residual
371 1.00,7.00,2.63,4.38
372 2.00,4.00,3.50,.50
373 3.00,1.00,4.38,-3.38
374 4.00,2.00,3.50,-1.50
375 Total,14.00,,
376
377 Table: Test Statistics
378 ,Chi-square,df,Asymp. Sig.
379 y,10.61,3,.014
380
381 Table: Frequencies
382 ,x,,,,y,,,
383 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
384 1,2.00,3.00,3.16,-.16,2.00,4.00,2.21,1.79
385 2,3.00,5.00,5.26,-.26,3.00,1.00,3.68,-2.68
386 3,4.00,2.00,1.58,.42,4.00,2.00,1.11,.89
387 Total,,10.00,,,,7.00,,
388
389 Table: Test Statistics
390 ,Chi-square,df,Asymp. Sig.
391 x,.13,2,.936
392 y,4.13,2,.127
393 ])
394
395 AT_CLEANUP
396
397 AT_SETUP([NPAR TESTS CHISQUARE expected values missing])
398 AT_DATA([npar.sps], [dnl
399 DATA LIST NOTABLE LIST /x * y * w *.
400 BEGIN DATA.
401 1   2  1
402 2   1  3
403 3.1 1  4
404 3.2 2  1
405 4   2  2
406 5   3  1
407 1   4  2
408 END DATA.
409
410 WEIGHT BY w.
411
412 NPAR TESTS
413   CHISQUARE=y
414   /EXPECTED = 3 4 5 4 3 1
415   .
416 ])
417
418 AT_CHECK([pspp -O format=csv npar.sps], [1], [dnl
419 "error: CHISQUARE test specified 6 expected values, but variable y has 4 distinct values."
420
421 Table: Test Statistics
422 ,Chi-square,df,Asymp. Sig.
423 y,.00,0,1.000
424 ])
425
426 AT_CLEANUP
427
428 AT_SETUP([NPAR TESTS CHISQUARE with DESCRIPTIVES])
429 AT_DATA([npar.sps], [dnl
430 DATA LIST NOTABLE LIST /x * y * w * .
431 BEGIN DATA.
432 1   2  1
433 2   1  3
434 3.1 1  4
435 3.2 2  1
436 4   2  2
437 5   3  1
438 1   4  2
439 .   5  1
440 END DATA.
441
442 WEIGHT BY w.
443
444 MISSING VALUES x (4).
445
446 NPAR TESTS
447   CHISQUARE=x y(-2,5)
448   /MISSING=ANALYSIS
449   /STATISTICS=DESCRIPTIVES
450   .
451 ])
452
453 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
454 Table: Frequencies
455 ,x,,,,y,,,
456 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
457 1,-2.00,.00,1.50,-1.50,-2.00,.00,1.88,-1.88
458 2,-1.00,.00,1.50,-1.50,-1.00,.00,1.88,-1.88
459 3,.00,.00,1.50,-1.50,.00,.00,1.88,-1.88
460 4,1.00,3.00,1.50,1.50,1.00,7.00,1.88,5.13
461 5,2.00,3.00,1.50,1.50,2.00,4.00,1.88,2.13
462 6,3.00,5.00,1.50,3.50,3.00,1.00,1.88,-.88
463 7,4.00,.00,1.50,-1.50,4.00,2.00,1.88,.13
464 8,5.00,1.00,1.50,-.50,5.00,1.00,1.88,-.88
465 Total,,12.00,,,,15.00,,
466
467 Table: Test Statistics
468 ,Chi-square,df,Asymp. Sig.
469 x,17.33,7,.015
470 y,22.87,7,.002
471
472 Table: Descriptive Statistics
473 ,N,Mean,Std. Deviation,Minimum,Maximum
474 x,12.00,2.47,1.19,1.00,5.00
475 y,15.00,2.07,1.33,1.00,5.00
476 ])
477 AT_CLEANUP
478
479 AT_SETUP([NPAR TESTS CHISQUARE, listwise missing])
480 AT_DATA([npar.sps], [dnl
481 DATA LIST NOTABLE LIST /x * y * w * .
482 BEGIN DATA.
483 1   2  1
484 2   1  3
485 3.1 1  4
486 3.2 2  1
487 4   2  2
488 5   3  1
489 1   4  2
490 .   5  1
491 END DATA.
492
493 WEIGHT BY w.
494
495 * MISSING VALUES x (4).
496
497 NPAR TESTS
498   CHISQUARE=x y(-2,5)
499   /MISSING=LISTWISE
500   /STATISTICS=DESCRIPTIVES
501   .
502 ])
503
504 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
505 Table: Frequencies
506 ,x,,,,y,,,
507 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
508 1,-2.00,.00,1.75,-1.75,-2.00,.00,1.75,-1.75
509 2,-1.00,.00,1.75,-1.75,-1.00,.00,1.75,-1.75
510 3,.00,.00,1.75,-1.75,.00,.00,1.75,-1.75
511 4,1.00,3.00,1.75,1.25,1.00,7.00,1.75,5.25
512 5,2.00,3.00,1.75,1.25,2.00,4.00,1.75,2.25
513 6,3.00,5.00,1.75,3.25,3.00,1.00,1.75,-.75
514 7,4.00,2.00,1.75,.25,4.00,2.00,1.75,.25
515 8,5.00,1.00,1.75,-.75,5.00,.00,1.75,-1.75
516 Total,,14.00,,,,14.00,,
517
518 Table: Test Statistics
519 ,Chi-square,df,Asymp. Sig.
520 x,13.43,7,.062
521 y,26.00,7,.001
522
523 Table: Descriptive Statistics
524 ,N,Mean,Std. Deviation,Minimum,Maximum
525 x,14.00,2.69,1.23,1.00,5.00
526 y,14.00,1.86,1.10,1.00,4.00
527 ])
528 AT_CLEANUP
529
530 AT_SETUP([NPAR TESTS WILCOXON])
531 AT_DATA([npar.sps], [dnl
532 data list notable list /foo * bar * w (f8.0).
533 begin data.
534 1.00     1.00   1
535 1.00     2.00   1
536 2.00     1.00   1
537 1.00     4.00   1
538 2.00     5.00   1
539 1.00    19.00   1
540 2.00     7.00   1
541 4.00     5.00   1
542 1.00    12.00   1
543 2.00    13.00   1
544 2.00     2.00   1
545 12.00      .00  2
546 12.00     1.00  1
547 13.00     1.00  1
548 end data
549
550 variable labels foo "first" bar "second".
551
552 weight by w.
553
554 npar test
555  /wilcoxon=foo with bar (paired)
556  /missing analysis
557  /method=exact.
558 ])
559
560 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
561 Table: Ranks
562 ,,N,Mean Rank,Sum of Ranks
563 first - second,Negative Ranks,8,6.00,48.00
564 ,Positive Ranks,5,8.60,43.00
565 ,Ties,2,,
566 ,Total,15,,
567
568 Table: Test Statistics
569 ,first - second
570 Z,-.18
571 Asymp. Sig. (2-tailed),.861
572 Exact Sig. (2-tailed),.893
573 Exact Sig. (1-tailed),.446
574 ])
575
576 AT_CLEANUP
577
578 AT_SETUP([NPAR TESTS WILCOXON with missing values])
579 AT_DATA([npar.sps], [dnl
580 data list notable list /foo * bar * dummy *.
581 begin data.
582 1.00     1.00    1
583 1.00     2.00    1
584 2.00     1.00    1
585 1.00     4.00    .
586 2.00     5.00    .
587 1.00    19.00    .
588 2.00     7.00    1
589 4.00     5.00    1
590 1.00    12.00    1
591 2.00    13.00    1
592 2.00     2.00    1
593 12.00      .00   1
594 12.00      .00   1
595 34.2       .     1
596 12.00     1.00   1
597 13.00     1.00   1
598 end data
599
600 variable labels foo "first" bar "second".
601
602 npar test
603  /wilcoxon=foo with bar (paired)
604  /missing analysis
605  /method=exact.
606 ])
607
608 dnl This is the same output as the previous test.
609 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
610 Table: Ranks
611 ,,N,Mean Rank,Sum of Ranks
612 first - second,Negative Ranks,8,6.00,48.00
613 ,Positive Ranks,5,8.60,43.00
614 ,Ties,2,,
615 ,Total,15,,
616
617 Table: Test Statistics
618 ,first - second
619 Z,-.18
620 Asymp. Sig. (2-tailed),.861
621 Exact Sig. (2-tailed),.893
622 Exact Sig. (1-tailed),.446
623 ])
624 AT_CLEANUP
625
626 AT_SETUP([NPAR TESTS SIGN])
627 AT_DATA([npar.sps], [dnl
628 set format = F9.3.
629
630 data list notable list /age * height rank *.
631 begin data.
632 10 12 11
633 12 13 13
634 13 14 12
635 12 12 10
636 9   9 10
637 10.3 10.2 12
638 end data.
639
640 npar tests
641         /sign=age height WITH height rank (PAIRED)
642         /MISSING ANALYSIS
643         /METHOD=EXACT
644         .
645 ])
646 AT_CHECK([pspp -o pspp.csv npar.sps])
647 dnl Some machines return .313 instead of .312
648 dnl (see bug #31611).
649 AT_CHECK([sed -e 's/\.313$/.312/' -e 's/^Exact Sig\. (1-tailed),\.313/Exact Sig. (1-tailed),.312/' pspp.csv], [0], [dnl
650 Table: Frequencies
651 ,,N
652 age - height,Negative Differences,3
653 ,Positive Differences,1
654 ,Ties,2
655 ,Total,6
656 height - rank,Negative Differences,2
657 ,Positive Differences,3
658 ,Ties,1
659 ,Total,6
660
661 Table: Test Statistics
662 ,age - height,height - rank
663 Exact Sig. (2-tailed),.625,1.000
664 Exact Sig. (1-tailed),.312,.500
665 Point Probability,.250,.312
666 ])
667 AT_CLEANUP
668
669
670 AT_SETUP([NPAR Kruskal-Wallis test])
671
672 dnl Simple case
673 AT_DATA([kw-simple.sps], [dnl
674 set format = F9.3.
675
676 data list notable list /gv * xscore *.
677 begin data
678 1 96
679 1 128
680 1 83
681 2 132
682 2 135
683 2 109
684 3 115
685 1 61
686 1 101
687 2 82
688 2 124
689 3 149
690 3 166
691 3 147
692 end data.
693
694 value label /gv
695        1 "timed out"
696        2 "hit wicket"
697        3 "handled the ball".
698
699 npar tests
700         /kruskal-wallis xscore by gv (1, 3)
701         .
702 ])
703
704 AT_CHECK([pspp -o pspp.csv -o pspp.txt kw-simple.sps])
705 AT_CHECK([cat pspp.csv], [0], [dnl
706 Table: Ranks
707 ,,N,Mean Rank
708 xscore,timed out,5,4.400
709 ,hit wicket,5,7.400
710 ,handled the ball,4,11.500
711 ,Total,14,
712
713 Table: Test Statistics
714 ,xscore
715 Chi-Square,6.406
716 df,2
717 Asymp. Sig.,.041
718 ])
719
720
721 dnl Now try a missing value in the group variable
722 AT_DATA([kw-missing-group.sps], [dnl
723 set format = F9.3.
724
725 data list notable list /gv * xscore *.
726 begin data
727 1 96
728 1 128
729 1 83
730 1 61
731 1 101
732 2 82
733 2 124
734 2 132
735 2 135
736 2 109
737 3 115
738 3 149
739 3 166
740 3 147
741 2.5 344
742 end data.
743
744 missing values gv (2.5).
745
746 value label /gv
747        1 "timed out"
748        2 "hit wicket"
749        3 "handled the ball".
750
751 npar tests
752         /kruskal-wallis xscore by gv (1, 3)
753         /missing=exclude
754         .
755 ])
756
757 AT_CHECK([pspp -o pspp2.csv kw-missing-group.sps])
758
759 dnl The result should be the same as before
760 AT_CHECK([diff pspp.csv pspp2.csv], [0])
761
762 dnl Reverse the order of the group values
763 AT_DATA([kw-reverse-group.sps], [dnl
764 set format = F9.3.
765
766 data list notable list /gv * xscore *.
767 begin data
768 1 96
769 1 128
770 1 83
771 1 61
772 1 101
773 2 82
774 2 124
775 2 132
776 2 135
777 2 109
778 3 115
779 3 149
780 3 166
781 3 147
782 end data.
783
784 value label /gv
785        1 "timed out"
786        2 "hit wicket"
787        3 "handled the ball".
788
789 npar tests
790         /kruskal-wallis xscore by gv (3, 1)
791         /missing=exclude
792         .
793 ])
794
795 AT_CHECK([pspp -o pspp2.csv kw-reverse-group.sps])
796
797 dnl The result should be the same as before
798 AT_CHECK([diff pspp.csv pspp2.csv], [0])
799
800 AT_CLEANUP
801
802
803 AT_SETUP([NPAR Kruskal-Wallis multiple-variables])
804
805 AT_DATA([kw-multi.sps], [dnl
806 set format = F9.3.
807
808 data list notable list /gv * xscore * yscore.
809 begin data
810 1 96   .
811 1 128  .
812 1 83   .
813 2 132  132
814 2 135  135
815 2 109  109
816 3 115  115
817 1 61   .
818 1 101  .
819 2 82   82
820 2 124  124
821 3 149  149
822 3 166  166
823 3 147  147
824 4 .    96
825 4 .    128
826 4 .    83
827 4 .    61
828 4 .    101
829 end data.
830
831 value label /gv
832        1 "timed out"
833        2 "hit wicket"
834        3 "handled the ball"
835        4 "bowled"
836        5 "lbw"
837        .
838
839 npar tests
840         /k-w xscore yscore by gv (1, 5)
841         .
842
843 ])
844
845
846 AT_CHECK([pspp -o pspp.csv kw-multi.sps])
847 AT_CHECK([cat pspp.csv], [0], [dnl
848 Table: Ranks
849 ,,N,Mean Rank
850 xscore,timed out,5,4.400
851 ,hit wicket,5,7.400
852 ,handled the ball,4,11.500
853 ,Total,14,
854 yscore,hit wicket,5,7.400
855 ,handled the ball,4,11.500
856 ,bowled,5,4.400
857 ,Total,14,
858
859 Table: Test Statistics
860 ,xscore,yscore
861 Chi-Square,6.406,6.406
862 df,2,2
863 Asymp. Sig.,.041,.041
864 ])
865
866 AT_CLEANUP
867
868
869
870 AT_SETUP([NPAR TESTS Runs])
871 AT_DATA([npar-runs.sps], [dnl
872 set format F11.4.
873 data list notable list /score * w *.
874 begin data
875 4     6
876 .     4
877 4     3
878 3    20
879 2    29
880 1    42
881 6    18
882 5     7
883 6    78
884 5    10
885 6    46
886 5     5
887 6    17
888 5     1
889 6    11
890 4     2
891 3     7
892 2     6
893 1    10
894 4    13
895 3    22
896 3    11
897 2    24
898 1    18
899 4     4
900 3    12
901 2    10
902 1    25
903 4     4
904 3     7
905 2     3
906 1     4
907 4     2
908 3     3
909 2     2
910 1     4
911 end data.
912
913 weight by w.
914
915 npar tests
916         /runs (MEDIAN) = score
917         /runs (MEAN) = score
918         /runs (MODE) = score
919         .
920 ])
921
922 AT_CHECK([pspp -O format=csv npar-runs.sps], [0],
923 [Table: Runs Test
924 ,score
925 Test Value (median),3.0000
926 Cases < Test Value,177.0000
927 Cases ≥ Test Value,309.0000
928 Total Cases,486.0000
929 Number of Runs,12
930 Z,-20.9931
931 Asymp. Sig. (2-tailed),.000
932
933 Table: Runs Test
934 ,score
935 Test Value (mean),3.6379
936 Cases < Test Value,259.0000
937 Cases ≥ Test Value,227.0000
938 Total Cases,486.0000
939 Number of Runs,12
940 Z,-21.0650
941 Asymp. Sig. (2-tailed),.000
942
943 Table: Runs Test
944 ,score
945 Test Value (mode),6.0000
946 Cases < Test Value,316.0000
947 Cases ≥ Test Value,170.0000
948 Total Cases,486.0000
949 Number of Runs,11
950 Z,-21.0742
951 Asymp. Sig. (2-tailed),.000
952 ])
953
954 AT_CLEANUP
955
956
957 dnl Thanks to Douglas Bonett for providing this test case.
958 AT_SETUP([NPAR TESTS Runs (2)])
959 AT_DATA([npar-runs.sps], [dnl
960 data list notable free /y.
961 begin data
962 1 1 2 1 2 1 1 2 1 1 1 2 1 2
963 end data.
964 NPAR TEST /RUNS(1.5) = y.
965 ])
966
967 AT_CHECK([pspp -O format=csv npar-runs.sps], [0], [dnl
968 Table: Runs Test
969 ,y
970 Test Value,1.50
971 Cases < Test Value,9
972 Cases ≥ Test Value,5
973 Total Cases,14
974 Number of Runs,10
975 Z,1.26
976 Asymp. Sig. (2-tailed),.206
977 ])
978 AT_CLEANUP
979
980
981 AT_SETUP([NPAR TESTS Friedman])
982 AT_DATA([npar-friedman.sps], [dnl
983 set format F15.4.
984 data list notable list /x * y * z.
985 begin data
986 9.5 6.5 8.1
987 8.0 6.0 6.0
988 7.0 6.5 4.2
989 9.5 5.0 7.3
990 9.0 7.0 6.2
991 8.5 6.9 6.5
992 7.5 8.0 6.5
993 6.0 8.0 3.1
994 5.0 6.0 4.9
995 7.5 7.5 6.2
996 end data.
997
998 npar tests
999      /friedman = x y z.
1000 ])
1001
1002 AT_CHECK([pspp -O format=csv npar-friedman.sps], [0], [dnl
1003 Table: Ranks
1004 ,Mean Rank
1005 x,2.6500
1006 y,2.1000
1007 z,1.2500
1008
1009 Table: Test Statistics
1010 N,10
1011 Chi-Square,10.4737
1012 df,2
1013 Asymp. Sig.,.005
1014 ])
1015
1016 AT_CLEANUP
1017
1018
1019
1020 AT_SETUP([NPAR TESTS Mann-Whitney])
1021 AT_DATA([npar-mann-whitney.sps], [dnl
1022 SET FORMAT     = F11.4
1023
1024 data list notable list /height * sex (f1.0).
1025 begin data.
1026 201 1
1027 84 1
1028 83 1
1029 94 1
1030 88 0
1031 99 0
1032 55 0
1033 69 0
1034 86 1
1035 79 1
1036 91 0
1037 201 0
1038 88 1
1039 85 1
1040 82 1
1041 88 0
1042 75 0
1043 99 0
1044 81 0
1045 72 1
1046 89 1
1047 92 1
1048 80 0
1049 82 0
1050 76 0
1051 65 0
1052 85 0
1053 76 1
1054 145 1
1055 24 1
1056 1 4
1057 -4 5
1058 34 5
1059 21 4
1060 end data.
1061
1062 NPAR TESTS
1063      /M-W = height BY sex (0,1).
1064 ])
1065
1066 AT_CHECK([pspp -O format=csv npar-mann-whitney.sps], [0], [dnl
1067 Table: Ranks
1068 ,,N,Mean Rank,Sum of Ranks
1069 height,0,15,14.5333,218.0000
1070 ,1,15,16.4667,247.0000
1071 ,Total,30,,
1072
1073 Table: Test Statistics
1074 ,Mann-Whitney U,Wilcoxon W,Z,Asymp. Sig. (2-tailed)
1075 height,98.0000,218.0000,-.6020,.547
1076 ])
1077
1078
1079 AT_CLEANUP
1080
1081
1082 AT_SETUP([NPAR TESTS Mann-Whitney Multiple])
1083 dnl Check for a bug where the ranks were inappropriately allocated, when
1084 dnl multiple variables were tested and MISSING=ANALYSIS chosen.
1085
1086 cp "$abs_srcdir/language/mann-whitney.txt" .
1087
1088 AT_DATA([npar-mann-whitney.sps], [dnl
1089 SET FORMAT     = F11.3
1090
1091 DATA LIST NOTABLE FILE='mann-whitney.txt'
1092      LIST /I002_01 I002_02 I002_03 I002_04 sum_HL *.
1093
1094 VARIABLE LABELS
1095   I002_01 'IOS: Familie'
1096   I002_02 'IOS: Freunde'
1097   I002_03 'IOS: Partner*in'
1098   I002_04 'IOS: Bekannte'.
1099
1100 MISSING VALUES I002_01 I002_02 I002_03 I002_04 (-9 -1).
1101
1102 NPAR TESTS
1103     /MISSING=ANALYSIS
1104     /M-W=I002_01 I002_02 I002_03 I002_04 BY sum_HL (0 1).
1105 ])
1106
1107 AT_CHECK([pspp -O format=csv npar-mann-whitney.sps], [0], [dnl
1108 Table: Ranks
1109 ,,N,Mean Rank,Sum of Ranks
1110 IOS: Familie,.000,114,110.018,12542.000
1111 ,1.000,115,119.939,13793.000
1112 ,Total,229,,
1113 IOS: Freunde,.000,115,108.339,12459.000
1114 ,1.000,115,122.661,14106.000
1115 ,Total,230,,
1116 IOS: Partner*in,.000,97,95.351,9249.000
1117 ,1.000,91,93.593,8517.000
1118 ,Total,188,,
1119 IOS: Bekannte,.000,115,111.065,12772.500
1120 ,1.000,115,119.935,13792.500
1121 ,Total,230,,
1122
1123 Table: Test Statistics
1124 ,Mann-Whitney U,Wilcoxon W,Z,Asymp. Sig. (2-tailed)
1125 IOS: Familie,5987.000,12542.000,-1.167,.243
1126 IOS: Freunde,5789.000,12459.000,-1.674,.094
1127 IOS: Partner*in,4331.000,8517.000,-.245,.807
1128 IOS: Bekannte,6102.500,12772.500,-1.046,.296
1129 ])
1130
1131 AT_CLEANUP
1132
1133
1134
1135 AT_SETUP([NPAR TESTS Cochran])
1136 AT_DATA([npar-cochran.sps], [dnl
1137 set format f11.3.
1138
1139 data list notable list /v1 * v2 * v3 * v4 * v5 * v6 * v7 *.
1140 begin data.
1141 2 1 1 2 1 1 2
1142 2 2 2 2 1 1 1
1143 1 1 2 2 1 1 2
1144 2 2 2 2 1 1 2
1145 2 1 2 1 1 2 1
1146 1 2 2 1 1 1 1
1147 1 2 2 2 2 2 2
1148 2 2 1 2 1 1 1
1149 1 2 1 2 1 1 2
1150 end data.
1151
1152 npar tests
1153         /cochran = v1 to v7 .
1154
1155 ])
1156
1157 AT_CHECK([pspp -o pspp.csv npar-cochran.sps])
1158
1159 AT_CHECK([cat pspp.csv], [0], [dnl
1160 Table: Frequencies
1161 ,Value,
1162 ,Success (2),Failure (1)
1163 v1,5,4
1164 v2,6,3
1165 v3,6,3
1166 v4,7,2
1167 v5,1,8
1168 v6,2,7
1169 v7,5,4
1170
1171 Table: Test Statistics
1172 ,Value
1173 N,9
1174 Cochran's Q,12.735
1175 df,6
1176 Asymp. Sig.,.047
1177 ])
1178
1179 AT_CLEANUP
1180
1181
1182
1183 AT_SETUP([NPAR TESTS Kendall])
1184 AT_DATA([npar-kendall.sps], [dnl
1185 SET FORMAT F14.3.
1186
1187 data list notable list /v1 * v2 * v3
1188 begin data.
1189  7  7  2
1190  5  6  5
1191  8  6  4
1192  5  7  4
1193  5  4  4
1194  8  6  5
1195  6  3  5
1196  7  6  5
1197  8  5  5
1198  .  2  2
1199  5  4  5
1200  3  4  4
1201  5  1  2
1202  5  2  1
1203  7  6  5
1204  6  3  4
1205  6  6  6
1206  5  4  5
1207  4  3  4
1208  9  1  1
1209  6  2  1
1210  3  7  8
1211  6  3  4
1212  4  4  4
1213  5  4  3
1214  6  5  2
1215  4  4  8
1216  4  6  4
1217  6  5  5
1218  7  8  6
1219  5  3  5
1220 end data.
1221
1222 npar tests
1223         /kendall = all
1224         .
1225 ])
1226
1227 AT_CHECK([pspp -o pspp.csv npar-kendall.sps])
1228
1229 AT_CHECK([cat pspp.csv], [0], [dnl
1230 Table: Ranks
1231 ,Mean Rank
1232 v1,2.500
1233 v2,1.817
1234 v3,1.683
1235
1236 Table: Test Statistics
1237 N,30
1238 Kendall's W,.233
1239 Chi-Square,13.960
1240 df,2
1241 Asymp. Sig.,.001
1242 ])
1243
1244 AT_CLEANUP
1245
1246
1247
1248 AT_SETUP([NPAR TESTS McNemar])
1249
1250 AT_DATA([mcnemar.sps], [dnl
1251 set format = F12.3.
1252 data list notable list /v1 * v2 * junk *.
1253 begin data.
1254 0 0 0
1255 0 0 0
1256 0 0 0
1257 0 0 0
1258 0 1 0
1259 0 1 0
1260 0 1 0
1261 0 1 0
1262 0 1 1
1263 0 1 1
1264 0 1 1
1265 0 1 1
1266 0 1 1
1267 1 0 1
1268 1 0 1
1269 1 1 1
1270 1 1 1
1271 1 1 0
1272 1 1 0
1273 1 1 1
1274 end data.
1275
1276 npar tests
1277      /mcnemar = v1 WITH v2 junk.
1278 ])
1279
1280 AT_CHECK([pspp -O format=csv mcnemar.sps], [0], [dnl
1281 Table: v1 & v2
1282 v1,v2,
1283 ,.000,1.000
1284 .000,4,9
1285 1.000,2,5
1286
1287 Table: v1 & junk
1288 v1,junk,
1289 ,.000,1.000
1290 .000,8,5
1291 1.000,2,5
1292
1293 Table: Test Statistics
1294 ,N,Exact Sig. (2-tailed),Exact Sig. (1-tailed),Point Probability
1295 v1 & v2,20,.065,.033,.027
1296 v1 & junk,20,.453,.227,.164
1297 ])
1298
1299 AT_CLEANUP
1300
1301
1302 AT_SETUP([NPAR TESTS McNemar Symetricity])
1303
1304 AT_DATA([mcnemar.sps], [dnl
1305 data list notable list /var1 var2 w (F2.0).
1306 begin data
1307 0 0 9
1308 0 1 8
1309 1 0 1
1310 1 1 5
1311 end data.
1312
1313 weight by w.
1314
1315 NPAR TEST
1316         /MCNEMAR var1 WITH  var2 (PAIRED).
1317
1318 NPAR TEST
1319         /MCNEMAR var2 WITH  var1 (PAIRED).
1320 ])
1321
1322 AT_CHECK([pspp -O format=csv mcnemar.sps], [0], [dnl
1323 Table: var1 & var2
1324 var1,var2,
1325 ,0,1
1326 0,9,8
1327 1,1,5
1328
1329 Table: Test Statistics
1330 ,N,Exact Sig. (2-tailed),Exact Sig. (1-tailed),Point Probability
1331 var1 & var2,23,.039,.020,.02
1332
1333 Table: var2 & var1
1334 var2,var1,
1335 ,0,1
1336 0,9,1
1337 1,8,5
1338
1339 Table: Test Statistics
1340 ,N,Exact Sig. (2-tailed),Exact Sig. (1-tailed),Point Probability
1341 var2 & var1,23,.039,.020,.02
1342 ])
1343
1344 AT_CLEANUP
1345
1346 AT_SETUP([NPAR TESTS Kolmogorov-Smirnov Uniform parameters given])
1347
1348 AT_DATA([ks-uniform.sps], [dnl
1349 set format F12.3.
1350 data list notable list /x *.
1351 begin data
1352 .554
1353 .382
1354 .329
1355 .480
1356 .711
1357 .503
1358 .203
1359 .477
1360 .621
1361 .581
1362 end data.
1363
1364 npar tests k-s (uniform 0 1) = x.
1365 ])
1366
1367 AT_CHECK([pspp -O format=csv ks-uniform.sps], [0], [dnl
1368 Table: One-Sample Kolmogorov-Smirnov Test
1369 ,,x
1370 N,,10
1371 Uniform Parameters,Minimum,.000
1372 ,Maximum,1.000
1373 Most Extreme Differences,Absolute,.289
1374 ,Positive,.289
1375 ,Negative,-.229
1376 Kolmogorov-Smirnov Z,,.914
1377 Asymp. Sig. (2-tailed),,.374
1378 ])
1379
1380 AT_CLEANUP
1381
1382
1383 AT_SETUP([NPAR TESTS Kolmogorov-Smirnov Normal parameters imputed])
1384
1385 AT_DATA([ks-normal.sps], [dnl
1386 set format = F12.3.
1387
1388 data list notable list /foo * bar *.
1389 begin data.
1390 65 12.5
1391 59 14.2
1392 43 12.6
1393 57
1394 68
1395 79
1396 51
1397 62
1398 57
1399 73
1400 58
1401 58
1402 68
1403 75
1404 47
1405 70
1406 59
1407 71
1408 52
1409 48 13.0
1410 58 14.1
1411 37 15.0
1412 39 13.1
1413 58 13.2
1414 43 14.5
1415 58 13.5
1416 86 14.0
1417 63 12.5
1418 80 12.8
1419 70
1420 63
1421 53
1422 53
1423 48
1424 49
1425 51
1426 47
1427 81
1428 66
1429 78
1430 65
1431 69
1432 70 12.1
1433 63 12.5
1434 64 12.4
1435 39 13.8
1436 51 13.2
1437 68 14.0
1438 76 12.6
1439 53 12.1
1440 71 13.5
1441 47 13.8
1442 87 14.1
1443 72 12.9
1444 48 12.1
1445 75 12.8
1446 51 13.4
1447 63 13.9
1448 61 12.5
1449 61 12.4
1450 66 12.8
1451 82 12.9
1452 81 13.6
1453 46
1454 52
1455 71
1456 73
1457 58
1458 57
1459 46
1460 58
1461 52 13.5
1462 71 13.2
1463 57 12.8
1464 78 14.1
1465 73 12.1
1466 50 12.6
1467 71
1468 51
1469 51
1470 68
1471 84
1472 64
1473 66
1474 65
1475 52
1476 56
1477 70
1478 68
1479 66
1480 78
1481 65
1482 71
1483 53
1484 81
1485 53
1486 57
1487 64
1488 61
1489 43
1490 56
1491 37
1492 74
1493 66
1494 81
1495 67
1496 80
1497 68
1498 76
1499 70
1500 80
1501 42
1502 74
1503 80
1504 70
1505 60
1506 39
1507 72
1508 69
1509 63
1510 72
1511 63
1512 49
1513 53 13.2
1514 43 13.8
1515 51 12.5
1516 63 12.6
1517 64 12.9
1518 65 13.0
1519 64 12.5
1520 66 12.0
1521 55
1522 62
1523 58
1524 48
1525 67
1526 46
1527 36
1528 61
1529 55
1530 77
1531 74
1532 60
1533 70
1534 69
1535 57
1536 49
1537 63
1538 69
1539 63
1540 76
1541 53
1542 54
1543 42
1544 64
1545 66
1546 61
1547 62
1548 73
1549 73
1550 60
1551 79
1552 40
1553 48
1554 76
1555 60
1556 76
1557 54
1558 69
1559 65
1560 69
1561 51
1562 54
1563 82
1564 end data.
1565
1566 npar tests
1567         /k-s (normal) = foo bar.
1568 ])
1569
1570 AT_CHECK([pspp -O format=csv ks-normal.sps], [0], [dnl
1571 Table: One-Sample Kolmogorov-Smirnov Test
1572 ,,foo,bar
1573 N,,174,48
1574 Normal Parameters,Mean,62.109,13.108
1575 ,Std. Deviation,11.548,.718
1576 Most Extreme Differences,Absolute,.059,.115
1577 ,Positive,.055,.115
1578 ,Negative,-.059,-.082
1579 Kolmogorov-Smirnov Z,,.785,.795
1580 Asymp. Sig. (2-tailed),,.569,.552
1581 ])
1582
1583
1584 AT_CLEANUP
1585
1586
1587 AT_SETUP([NPAR TESTS Median Test (median imputed)])
1588
1589 AT_DATA([median1.sps], [dnl
1590 set format F12.3.
1591 data list notable list /ignore * animal * years * w *.
1592 begin data
1593 99  1   10  1
1594 99  4    1  1
1595 99  5   11  1
1596 99  5   10  1
1597 99  3    7  1
1598 99  6   10  1
1599 99  0    7  1
1600 99  3   14  1
1601 99  2    3  1
1602 99  1    1  1
1603 99  4    7  1
1604 99  5   12  1
1605 99  3    6  1
1606 99  4    1  1
1607 99  3    5  1
1608 99  5    7  1
1609 99  4    6  1
1610 99  3   14  1
1611 99  4    8  1
1612 99  5   13  1
1613 99  2    0  1
1614 99  4    7  1
1615 99  4    7  1
1616 99  1    0  1
1617 99  2    8  1
1618 99  4   10  1
1619 99  2    3  1
1620 99  2    0  1
1621 99  4    8  1
1622 99  1    8  1
1623 end data.
1624
1625
1626 variable label years 'Years expected'.
1627 variable label animal 'Animal Genus'.
1628
1629 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1630
1631 npar tests
1632      /median = years by animal (1, 5)
1633      .
1634 ])
1635
1636
1637 AT_CHECK([pspp -O format=csv median1.sps], [0], [dnl
1638 Table: Frequencies
1639 ,,Animal Genus,,,,
1640 ,,Animal 1,Animal 2,Animal 3,Animal 4,Animal 5
1641 Years expected,> Median,2,1,2,3,4
1642 ,≤ Median,2,4,3,6,1
1643
1644 Table: Test Statistics
1645 ,N,Median,Chi-Square,df,Asymp. Sig.
1646 Years expected,28,7.000,4.317,4,.365
1647 ])
1648
1649 AT_CLEANUP
1650
1651
1652 AT_SETUP([NPAR TESTS Median Test (median given)])
1653
1654 AT_DATA([median2.sps], [dnl
1655 set format F12.3.
1656 data list notable list /ignore * animal * years * w *.
1657 begin data
1658 99  1   10  1
1659 99  4    1  1
1660 99  5   11  1
1661 99  5   10  1
1662 99  3    7  1
1663 99  3   14  1
1664 99  2    3  1
1665 99  1    1  1
1666 99  4    7  1
1667 99  5   12  1
1668 99  3    6  1
1669 99  4    1  1
1670 99  3    5  1
1671 99  5    7  1
1672 99  4    6  1
1673 99  3   14  1
1674 99  4    8  1
1675 99  5   13  1
1676 99  2    0  1
1677 99  4    7  1
1678 99  4    7  1
1679 99  1    0  1
1680 99  2    8  1
1681 99  4   10  1
1682 99  2    3  1
1683 99  2    0  1
1684 99  4    8  1
1685 99  1    8  1
1686 end data.
1687
1688
1689 variable label years 'Years expected'.
1690 variable label animal 'Animal Genus'.
1691
1692 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1693
1694 npar tests
1695      /median (7) = years by animal (1, 5)
1696      .
1697 ])
1698
1699
1700 AT_CHECK([pspp -O format=csv median2.sps], [0], [dnl
1701 Table: Frequencies
1702 ,,Animal Genus,,,,
1703 ,,Animal 1,Animal 2,Animal 3,Animal 4,Animal 5
1704 Years expected,> Median,2,1,2,3,4
1705 ,≤ Median,2,4,3,6,1
1706
1707 Table: Test Statistics
1708 ,N,Median,Chi-Square,df,Asymp. Sig.
1709 Years expected,28,7.000,4.317,4,.365
1710 ])
1711
1712 AT_CLEANUP
1713
1714
1715 AT_SETUP([NPAR TESTS Median Test (two sample)])
1716
1717 AT_DATA([median3.sps], [dnl
1718 set format F12.3.
1719 data list notable list /xx * animal * years * w *.
1720 begin data
1721 99  1   10  1
1722 99  4    1  1
1723 99  5   11  1
1724 99  5   10  1
1725 99  3    7  1
1726 99  3   14  1
1727 99  2    3  1
1728 99  1    1  1
1729 99  4    7  1
1730 99  5   12  1
1731 99  3    6  1
1732 99  4    1  1
1733 99  3    5  1
1734 99  5    7  1
1735 99  4    6  1
1736 99  3   14  1
1737 99  4    8  1
1738 99  5   13  1
1739 99  2    0  1
1740 99  4    7  1
1741 99  4    7  1
1742 99  1    0  1
1743 99  2    8  1
1744 99  4   10  1
1745 99  2    3  1
1746 99  2    0  1
1747 99  4    8  1
1748 99  1    8  1
1749 end data.
1750
1751
1752 variable label years 'Years expected'.
1753 variable label animal 'Animal Genus'.
1754
1755 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1756
1757 npar tests
1758      /median (7) = xx years by animal (5, 1)
1759      .
1760 ])
1761
1762
1763 AT_CHECK([pspp -O format=csv median3.sps], [0], [dnl
1764 Table: Frequencies
1765 ,,Animal Genus,
1766 ,,Animal 1,Animal 5
1767 xx,> Median,4,5
1768 ,≤ Median,0,0
1769 Years expected,> Median,2,4
1770 ,≤ Median,2,1
1771
1772 Table: Test Statistics
1773 ,N,Median,Chi-Square,df,Asymp. Sig.
1774 xx,9,7.000,NaN,1,NaN
1775 Years expected,9,7.000,.900,1,.343
1776 ])
1777
1778 AT_CLEANUP
1779
1780
1781 AT_SETUP([NPAR TESTS Jonckheere-Terpstra])
1782
1783 AT_DATA([jt.sps], [dnl
1784 set format = F12.3.
1785 data list notable list /x * g * w *.
1786 begin data.
1787 52  2  2
1788 58  2  1
1789 60  2  1
1790 62  2  1
1791 58  0  1
1792 44  2  1
1793 46  2  1
1794 14  3  1
1795 32  2  1
1796 16  3  1
1797 56  2  1
1798 26  3  1
1799 40  3  2
1800 50  4  1
1801 6   5  1
1802 34  2  3
1803 36  2  2
1804 40  2  2
1805 50  2  1
1806 end data.
1807
1808 weight by w.
1809
1810 npar test /jonckheere-terpstra = x by g (5, 2).
1811 ])
1812
1813
1814 AT_CHECK([pspp -O format=csv jt.sps], [0], [dnl
1815 Table: Jonckheere-Terpstra Test
1816 ,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)
1817 x,4,24.000,29.500,65.000,15.902,-2.232,.026
1818 ])
1819
1820 AT_CLEANUP
1821
1822 dnl Checks that (PAIRED) can have lists where the same
1823 dnl variable appears more than once.
1824 AT_SETUP([NPAR TESTS (PAIRED)])
1825 AT_DATA([npar.sps], [dnl
1826 set format = F12.3.
1827 data list notable list /a * b * c *.
1828 begin data.
1829 1 2 4
1830 4 5 3
1831 1 2 2
1832 4 5 1
1833 end data.
1834
1835 npar tests /wilcoxon a b with c c (paired).
1836 ])
1837
1838 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
1839 Table: Ranks
1840 ,,N,Mean Rank,Sum of Ranks
1841 a - c,Negative Ranks,2,2.500,5.000
1842 ,Positive Ranks,2,2.500,5.000
1843 ,Ties,0,,
1844 ,Total,4,,
1845 b - c,Negative Ranks,1,1.500,1.500
1846 ,Positive Ranks,2,2.250,4.500
1847 ,Ties,1,,
1848 ,Total,4,,
1849
1850 Table: Test Statistics
1851 ,a - c,b - c
1852 Z,.000,-.816
1853 Asymp. Sig. (2-tailed),1.000,.414
1854 ])
1855
1856
1857 AT_CLEANUP
1858
1859
1860
1861 AT_SETUP([NPAR TESTS CHISQUARE crash])
1862 dnl This syntax had been observed to crash pspp
1863
1864 AT_DATA([npar.sps], [dnl
1865 data list list /x *.
1866 begin data.
1867 1
1868 2
1869 3
1870 4
1871 5
1872 6
1873 7
1874 8
1875 9
1876 10
1877 end data.
1878
1879 * This happens to be invalid syntax.  But should not crash.
1880 NPAR TEST
1881         /CHISQUARE= x(0.098, 99.098)
1882         /EXPECTED =  1.2.
1883 ])
1884
1885 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
1886
1887 AT_CLEANUP
1888
1889
1890 AT_SETUP([NPAR TESTS - crash on invalid syntax])
1891
1892 AT_DATA([npar.sps], [dnl
1893 data list notable list /ev * xscore *.
1894 begin data.
1895 2 109
1896 3 115
1897 1 61
1898 1 101
1899 3 147
1900 end data.
1901
1902
1903 npar tests
1904         /kruskal-wallis xscore by(gv (1, 3).
1905 ])
1906
1907 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
1908
1909 AT_CLEANUP
1910
1911
1912
1913
1914 AT_SETUP([NPAR TESTS - crash on unterminated string])
1915
1916 AT_DATA([npar.sps], [dnl
1917 DATA LIST NOTABLE LIST /x * y * w * .
1918 BEGIN DATA.
1919 3.1 1  4
1920 3.2 2  1
1921 4   2  6
1922 END DATA.
1923
1924
1925 NPAR TESTS
1926 " CHISQUARE=x y(-2,5)
1927   /STATISTICS=DESCRIPTIVES
1928   .
1929 ])
1930
1931 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
1932
1933 AT_CLEANUP
1934