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