be770ab1b17c74305b41c6c0928186b794c30e99
[pspp] / tests / language / stats / npar.at
1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017 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 AT_CLEANUP
763
764
765 AT_SETUP([NPAR Kruskal-Wallis multiple-variables])
766
767 AT_DATA([kw-multi.sps], [dnl
768 set format = F9.3.
769
770 data list notable list /gv * xscore * yscore.
771 begin data
772 1 96   .
773 1 128  .
774 1 83   .
775 2 132  132
776 2 135  135
777 2 109  109
778 3 115  115
779 1 61   .
780 1 101  .
781 2 82   82
782 2 124  124
783 3 149  149
784 3 166  166
785 3 147  147
786 4 .    96
787 4 .    128
788 4 .    83
789 4 .    61
790 4 .    101
791 end data.
792
793 value label /gv
794        1 "timed out"
795        2 "hit wicket"
796        3 "handled the ball"
797        4 "bowled"
798        5 "lbw"
799        .
800
801 npar tests
802         /k-w xscore yscore by gv (1, 5)
803         .
804
805 ])
806
807
808 AT_CHECK([pspp -o pspp.csv kw-multi.sps])
809 AT_CHECK([cat pspp.csv], [0], [dnl
810 Table: Ranks
811 ,,N,Mean Rank
812 xscore,timed out,5,4.400
813 ,hit wicket,5,7.400
814 ,handled the ball,4,11.500
815 ,Total,14,
816 yscore,hit wicket,5,7.400
817 ,handled the ball,4,11.500
818 ,bowled,5,4.400
819 ,Total,14,
820
821 Table: Test Statistics
822 ,xscore,yscore
823 Chi-Square,6.406,6.406
824 df,2,2
825 Asymp. Sig.,.041,.041
826 ])
827
828 AT_CLEANUP
829
830
831
832 AT_SETUP([NPAR TESTS Runs])
833 AT_DATA([npar-runs.sps], [dnl
834 set format F11.4.
835 data list notable list /score * w *.
836 begin data
837 4     6
838 .     4
839 4     3
840 3    20
841 2    29
842 1    42
843 6    18
844 5     7
845 6    78
846 5    10
847 6    46
848 5     5
849 6    17
850 5     1
851 6    11
852 4     2
853 3     7
854 2     6
855 1    10
856 4    13
857 3    22
858 3    11
859 2    24
860 1    18
861 4     4
862 3    12
863 2    10
864 1    25
865 4     4
866 3     7
867 2     3
868 1     4
869 4     2
870 3     3
871 2     2
872 1     4
873 end data.
874
875 weight by w.
876
877 npar tests
878         /runs (MEDIAN) = score
879         /runs (MEAN) = score
880         /runs (MODE) = score
881         .
882 ])
883
884 AT_CHECK([pspp -O format=csv npar-runs.sps], [0],
885 [Table: Runs Test
886 ,score
887 Test Value (median),3.0000
888 Cases < Test Value,177.0000
889 Cases ≥ Test Value,309.0000
890 Total Cases,486.0000
891 Number of Runs,12
892 Z,-20.9931
893 Asymp. Sig. (2-tailed),.000
894
895 Table: Runs Test
896 ,score
897 Test Value (mean),3.6379
898 Cases < Test Value,259.0000
899 Cases ≥ Test Value,227.0000
900 Total Cases,486.0000
901 Number of Runs,12
902 Z,-21.0650
903 Asymp. Sig. (2-tailed),.000
904
905 Table: Runs Test
906 ,score
907 Test Value (mode),6.0000
908 Cases < Test Value,316.0000
909 Cases ≥ Test Value,170.0000
910 Total Cases,486.0000
911 Number of Runs,11
912 Z,-21.0742
913 Asymp. Sig. (2-tailed),.000
914 ])
915
916 AT_CLEANUP
917
918
919 dnl Thanks to Douglas Bonett for providing this test case.
920 AT_SETUP([NPAR TESTS Runs (2)])
921 AT_DATA([npar-runs.sps], [dnl
922 data list notable free /y.
923 begin data
924 1 1 2 1 2 1 1 2 1 1 1 2 1 2
925 end data.
926 NPAR TEST /RUNS(1.5) = y.
927 ])
928
929 AT_CHECK([pspp -O format=csv npar-runs.sps], [0], [dnl
930 Table: Runs Test
931 ,y
932 Test Value,1.50
933 Cases < Test Value,9
934 Cases ≥ Test Value,5
935 Total Cases,14
936 Number of Runs,10
937 Z,1.26
938 Asymp. Sig. (2-tailed),.206
939 ])
940 AT_CLEANUP
941
942
943 AT_SETUP([NPAR TESTS Friedman])
944 AT_DATA([npar-friedman.sps], [dnl
945 set format F15.4.
946 data list notable list /x * y * z.
947 begin data
948 9.5 6.5 8.1
949 8.0 6.0 6.0
950 7.0 6.5 4.2
951 9.5 5.0 7.3
952 9.0 7.0 6.2
953 8.5 6.9 6.5
954 7.5 8.0 6.5
955 6.0 8.0 3.1
956 5.0 6.0 4.9
957 7.5 7.5 6.2
958 end data.
959
960 npar tests
961      /friedman = x y z.
962 ])
963
964 AT_CHECK([pspp -O format=csv npar-friedman.sps], [0], [dnl
965 Table: Ranks
966 ,Mean Rank
967 x,2.6500
968 y,2.1000
969 z,1.2500
970
971 Table: Test Statistics
972 N,10
973 Chi-Square,10.4737
974 df,2
975 Asymp. Sig.,.005
976 ])
977
978 AT_CLEANUP
979
980
981
982 AT_SETUP([NPAR TESTS Mann-Whitney])
983 AT_DATA([npar-mann-whitney.sps], [dnl
984 SET FORMAT     = F11.4
985
986 data list notable list /height * sex (f1.0).
987 begin data.
988 201 1
989 84 1
990 83 1
991 94 1
992 88 0
993 99 0
994 55 0
995 69 0
996 86 1
997 79 1
998 91 0
999 201 0
1000 88 1
1001 85 1
1002 82 1
1003 88 0
1004 75 0
1005 99 0
1006 81 0
1007 72 1
1008 89 1
1009 92 1
1010 80 0
1011 82 0
1012 76 0
1013 65 0
1014 85 0
1015 76 1
1016 145 1
1017 24 1
1018 1 4
1019 -4 5
1020 34 5
1021 21 4
1022 end data.
1023
1024 NPAR TESTS
1025      /M-W = height BY sex (0,1).
1026 ])
1027
1028 AT_CHECK([pspp -O format=csv npar-mann-whitney.sps], [0], [dnl
1029 Table: Ranks
1030 ,,N,Mean Rank,Sum of Ranks
1031 height,0,15,14.5333,218.0000
1032 ,1,15,16.4667,247.0000
1033 ,Total,30,,
1034
1035 Table: Test Statistics
1036 ,Mann-Whitney U,Wilcoxon W,Z,Asymp. Sig. (2-tailed)
1037 height,98.0000,218.0000,-.6020,.547
1038 ])
1039
1040
1041 AT_CLEANUP
1042
1043
1044 AT_SETUP([NPAR TESTS Mann-Whitney Multiple])
1045 dnl Check for a bug where the ranks were inappropriately allocated, when
1046 dnl multiple variables were tested and MISSING=ANALYSIS chosen.
1047
1048 cp "$abs_srcdir/language/mann-whitney.txt" .
1049
1050 AT_DATA([npar-mann-whitney.sps], [dnl
1051 SET FORMAT     = F11.3
1052
1053 DATA LIST NOTABLE FILE='mann-whitney.txt'
1054      LIST /I002_01 I002_02 I002_03 I002_04 sum_HL *.
1055
1056 VARIABLE LABELS
1057   I002_01 'IOS: Familie'
1058   I002_02 'IOS: Freunde'
1059   I002_03 'IOS: Partner*in'
1060   I002_04 'IOS: Bekannte'.
1061
1062 MISSING VALUES I002_01 I002_02 I002_03 I002_04 (-9 -1).
1063
1064 NPAR TESTS
1065     /MISSING=ANALYSIS
1066     /M-W=I002_01 I002_02 I002_03 I002_04 BY sum_HL (0 1).
1067 ])
1068
1069 AT_CHECK([pspp -O format=csv npar-mann-whitney.sps], [0], [dnl
1070 Table: Ranks
1071 ,,N,Mean Rank,Sum of Ranks
1072 IOS: Familie,.000,114,110.018,12542.000
1073 ,1.000,115,119.939,13793.000
1074 ,Total,229,,
1075 IOS: Freunde,.000,115,108.339,12459.000
1076 ,1.000,115,122.661,14106.000
1077 ,Total,230,,
1078 IOS: Partner*in,.000,97,95.351,9249.000
1079 ,1.000,91,93.593,8517.000
1080 ,Total,188,,
1081 IOS: Bekannte,.000,115,111.065,12772.500
1082 ,1.000,115,119.935,13792.500
1083 ,Total,230,,
1084
1085 Table: Test Statistics
1086 ,Mann-Whitney U,Wilcoxon W,Z,Asymp. Sig. (2-tailed)
1087 IOS: Familie,5987.000,12542.000,-1.167,.243
1088 IOS: Freunde,5789.000,12459.000,-1.674,.094
1089 IOS: Partner*in,4331.000,8517.000,-.245,.807
1090 IOS: Bekannte,6102.500,12772.500,-1.046,.296
1091 ])
1092
1093 AT_CLEANUP
1094
1095
1096
1097 AT_SETUP([NPAR TESTS Cochran])
1098 AT_DATA([npar-cochran.sps], [dnl
1099 set format f11.3.
1100
1101 data list notable list /v1 * v2 * v3 * v4 * v5 * v6 * v7 *.
1102 begin data.
1103 2 1 1 2 1 1 2
1104 2 2 2 2 1 1 1
1105 1 1 2 2 1 1 2
1106 2 2 2 2 1 1 2
1107 2 1 2 1 1 2 1
1108 1 2 2 1 1 1 1
1109 1 2 2 2 2 2 2
1110 2 2 1 2 1 1 1
1111 1 2 1 2 1 1 2
1112 end data.
1113
1114 npar tests
1115         /cochran = v1 to v7 .
1116
1117 ])
1118
1119 AT_CHECK([pspp -o pspp.csv npar-cochran.sps])
1120
1121 AT_CHECK([cat pspp.csv], [0], [dnl
1122 Table: Frequencies
1123 ,Value,
1124 ,Success (2),Failure (1)
1125 v1,5,4
1126 v2,6,3
1127 v3,6,3
1128 v4,7,2
1129 v5,1,8
1130 v6,2,7
1131 v7,5,4
1132
1133 Table: Test Statistics
1134 ,Value
1135 N,9
1136 Cochran's Q,12.735
1137 df,6
1138 Asymp. Sig.,.047
1139 ])
1140
1141 AT_CLEANUP
1142
1143
1144
1145 AT_SETUP([NPAR TESTS Kendall])
1146 AT_DATA([npar-kendall.sps], [dnl
1147 SET FORMAT F14.3.
1148
1149 data list notable list /v1 * v2 * v3
1150 begin data.
1151  7  7  2
1152  5  6  5
1153  8  6  4
1154  5  7  4
1155  5  4  4
1156  8  6  5
1157  6  3  5
1158  7  6  5
1159  8  5  5
1160  .  2  2
1161  5  4  5
1162  3  4  4
1163  5  1  2
1164  5  2  1
1165  7  6  5
1166  6  3  4
1167  6  6  6
1168  5  4  5
1169  4  3  4
1170  9  1  1
1171  6  2  1
1172  3  7  8
1173  6  3  4
1174  4  4  4
1175  5  4  3
1176  6  5  2
1177  4  4  8
1178  4  6  4
1179  6  5  5
1180  7  8  6
1181  5  3  5
1182 end data.
1183
1184 npar tests
1185         /kendall = all
1186         .
1187 ])
1188
1189 AT_CHECK([pspp -o pspp.csv npar-kendall.sps])
1190
1191 AT_CHECK([cat pspp.csv], [0], [dnl
1192 Table: Ranks
1193 ,Mean Rank
1194 v1,2.500
1195 v2,1.817
1196 v3,1.683
1197
1198 Table: Test Statistics
1199 N,30
1200 Kendall's W,.233
1201 Chi-Square,13.960
1202 df,2
1203 Asymp. Sig.,.001
1204 ])
1205
1206 AT_CLEANUP
1207
1208
1209
1210 AT_SETUP([NPAR TESTS McNemar])
1211
1212 AT_DATA([mcnemar.sps], [dnl
1213 set format = F12.3.
1214 data list notable list /v1 * v2 * junk *.
1215 begin data.
1216 0 0 0
1217 0 0 0
1218 0 0 0
1219 0 0 0
1220 0 1 0
1221 0 1 0
1222 0 1 0
1223 0 1 0
1224 0 1 1
1225 0 1 1
1226 0 1 1
1227 0 1 1
1228 0 1 1
1229 1 0 1
1230 1 0 1
1231 1 1 1
1232 1 1 1
1233 1 1 0
1234 1 1 0
1235 1 1 1
1236 end data.
1237
1238 npar tests
1239      /mcnemar = v1 WITH v2 junk.
1240 ])
1241
1242 AT_CHECK([pspp -O format=csv mcnemar.sps], [0], [dnl
1243 Table: v1 & v2
1244 v1,v2,
1245 ,.000,1.000
1246 .000,4,9
1247 1.000,2,5
1248
1249 Table: v1 & junk
1250 v1,junk,
1251 ,.000,1.000
1252 .000,8,5
1253 1.000,2,5
1254
1255 Table: Test Statistics
1256 ,N,Exact Sig. (2-tailed),Exact Sig. (1-tailed),Point Probability
1257 v1 & v2,20,.065,.033,.027
1258 v1 & junk,20,.453,.227,.164
1259 ])
1260
1261 AT_CLEANUP
1262
1263
1264 AT_SETUP([NPAR TESTS McNemar Symetricity])
1265
1266 AT_DATA([mcnemar.sps], [dnl
1267 data list notable list /var1 var2 w (F2.0).
1268 begin data
1269 0 0 9
1270 0 1 8
1271 1 0 1
1272 1 1 5
1273 end data.
1274
1275 weight by w.
1276
1277 NPAR TEST
1278         /MCNEMAR var1 WITH  var2 (PAIRED).
1279
1280 NPAR TEST
1281         /MCNEMAR var2 WITH  var1 (PAIRED).
1282 ])
1283
1284 AT_CHECK([pspp -O format=csv mcnemar.sps], [0], [dnl
1285 Table: var1 & var2
1286 var1,var2,
1287 ,0,1
1288 0,9,8
1289 1,1,5
1290
1291 Table: Test Statistics
1292 ,N,Exact Sig. (2-tailed),Exact Sig. (1-tailed),Point Probability
1293 var1 & var2,23,.039,.020,.02
1294
1295 Table: var2 & var1
1296 var2,var1,
1297 ,0,1
1298 0,9,1
1299 1,8,5
1300
1301 Table: Test Statistics
1302 ,N,Exact Sig. (2-tailed),Exact Sig. (1-tailed),Point Probability
1303 var2 & var1,23,.039,.020,.02
1304 ])
1305
1306 AT_CLEANUP
1307
1308 AT_SETUP([NPAR TESTS Kolmogorov-Smirnov Uniform parameters given])
1309
1310 AT_DATA([ks-uniform.sps], [dnl
1311 set format F12.3.
1312 data list notable list /x *.
1313 begin data
1314 .554
1315 .382
1316 .329
1317 .480
1318 .711
1319 .503
1320 .203
1321 .477
1322 .621
1323 .581
1324 end data.
1325
1326 npar tests k-s (uniform 0 1) = x.
1327 ])
1328
1329 AT_CHECK([pspp -O format=csv ks-uniform.sps], [0], [dnl
1330 Table: One-Sample Kolmogorov-Smirnov Test
1331 ,,x
1332 N,,10
1333 Uniform Parameters,Minimum,.000
1334 ,Maximum,1.000
1335 Most Extreme Differences,Absolute,.289
1336 ,Positive,.289
1337 ,Negative,-.229
1338 Kolmogorov-Smirnov Z,,.914
1339 Asymp. Sig. (2-tailed),,.374
1340 ])
1341
1342 AT_CLEANUP
1343
1344
1345 AT_SETUP([NPAR TESTS Kolmogorov-Smirnov Normal parameters imputed])
1346
1347 AT_DATA([ks-normal.sps], [dnl
1348 set format = F12.3.
1349
1350 data list notable list /foo * bar *.
1351 begin data.
1352 65 12.5
1353 59 14.2
1354 43 12.6
1355 57
1356 68
1357 79
1358 51
1359 62
1360 57
1361 73
1362 58
1363 58
1364 68
1365 75
1366 47
1367 70
1368 59
1369 71
1370 52
1371 48 13.0
1372 58 14.1
1373 37 15.0
1374 39 13.1
1375 58 13.2
1376 43 14.5
1377 58 13.5
1378 86 14.0
1379 63 12.5
1380 80 12.8
1381 70
1382 63
1383 53
1384 53
1385 48
1386 49
1387 51
1388 47
1389 81
1390 66
1391 78
1392 65
1393 69
1394 70 12.1
1395 63 12.5
1396 64 12.4
1397 39 13.8
1398 51 13.2
1399 68 14.0
1400 76 12.6
1401 53 12.1
1402 71 13.5
1403 47 13.8
1404 87 14.1
1405 72 12.9
1406 48 12.1
1407 75 12.8
1408 51 13.4
1409 63 13.9
1410 61 12.5
1411 61 12.4
1412 66 12.8
1413 82 12.9
1414 81 13.6
1415 46
1416 52
1417 71
1418 73
1419 58
1420 57
1421 46
1422 58
1423 52 13.5
1424 71 13.2
1425 57 12.8
1426 78 14.1
1427 73 12.1
1428 50 12.6
1429 71
1430 51
1431 51
1432 68
1433 84
1434 64
1435 66
1436 65
1437 52
1438 56
1439 70
1440 68
1441 66
1442 78
1443 65
1444 71
1445 53
1446 81
1447 53
1448 57
1449 64
1450 61
1451 43
1452 56
1453 37
1454 74
1455 66
1456 81
1457 67
1458 80
1459 68
1460 76
1461 70
1462 80
1463 42
1464 74
1465 80
1466 70
1467 60
1468 39
1469 72
1470 69
1471 63
1472 72
1473 63
1474 49
1475 53 13.2
1476 43 13.8
1477 51 12.5
1478 63 12.6
1479 64 12.9
1480 65 13.0
1481 64 12.5
1482 66 12.0
1483 55
1484 62
1485 58
1486 48
1487 67
1488 46
1489 36
1490 61
1491 55
1492 77
1493 74
1494 60
1495 70
1496 69
1497 57
1498 49
1499 63
1500 69
1501 63
1502 76
1503 53
1504 54
1505 42
1506 64
1507 66
1508 61
1509 62
1510 73
1511 73
1512 60
1513 79
1514 40
1515 48
1516 76
1517 60
1518 76
1519 54
1520 69
1521 65
1522 69
1523 51
1524 54
1525 82
1526 end data.
1527
1528 npar tests
1529         /k-s (normal) = foo bar.
1530 ])
1531
1532 AT_CHECK([pspp -O format=csv ks-normal.sps], [0], [dnl
1533 Table: One-Sample Kolmogorov-Smirnov Test
1534 ,,foo,bar
1535 N,,174,48
1536 Normal Parameters,Mean,62.109,13.108
1537 ,Std. Deviation,11.548,.718
1538 Most Extreme Differences,Absolute,.059,.115
1539 ,Positive,.055,.115
1540 ,Negative,-.059,-.082
1541 Kolmogorov-Smirnov Z,,.785,.795
1542 Asymp. Sig. (2-tailed),,.569,.552
1543 ])
1544
1545
1546 AT_CLEANUP
1547
1548
1549 AT_SETUP([NPAR TESTS Median Test (median imputed)])
1550
1551 AT_DATA([median1.sps], [dnl
1552 set format F12.3.
1553 data list notable list /ignore * animal * years * w *.
1554 begin data
1555 99  1   10  1
1556 99  4    1  1
1557 99  5   11  1
1558 99  5   10  1
1559 99  3    7  1
1560 99  6   10  1
1561 99  0    7  1
1562 99  3   14  1
1563 99  2    3  1
1564 99  1    1  1
1565 99  4    7  1
1566 99  5   12  1
1567 99  3    6  1
1568 99  4    1  1
1569 99  3    5  1
1570 99  5    7  1
1571 99  4    6  1
1572 99  3   14  1
1573 99  4    8  1
1574 99  5   13  1
1575 99  2    0  1
1576 99  4    7  1
1577 99  4    7  1
1578 99  1    0  1
1579 99  2    8  1
1580 99  4   10  1
1581 99  2    3  1
1582 99  2    0  1
1583 99  4    8  1
1584 99  1    8  1
1585 end data.
1586
1587
1588 variable label years 'Years expected'.
1589 variable label animal 'Animal Genus'.
1590
1591 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1592
1593 npar tests
1594      /median = years by animal (1, 5)
1595      .
1596 ])
1597
1598
1599 AT_CHECK([pspp -O format=csv median1.sps], [0], [dnl
1600 Table: Frequencies
1601 ,,Animal Genus,,,,
1602 ,,Animal 1,Animal 2,Animal 3,Animal 4,Animal 5
1603 Years expected,> Median,2,1,2,3,4
1604 ,≤ Median,2,4,3,6,1
1605
1606 Table: Test Statistics
1607 ,N,Median,Chi-Square,df,Asymp. Sig.
1608 Years expected,28,7.000,4.317,4,.365
1609 ])
1610
1611 AT_CLEANUP
1612
1613
1614 AT_SETUP([NPAR TESTS Median Test (median given)])
1615
1616 AT_DATA([median2.sps], [dnl
1617 set format F12.3.
1618 data list notable list /ignore * animal * years * w *.
1619 begin data
1620 99  1   10  1
1621 99  4    1  1
1622 99  5   11  1
1623 99  5   10  1
1624 99  3    7  1
1625 99  3   14  1
1626 99  2    3  1
1627 99  1    1  1
1628 99  4    7  1
1629 99  5   12  1
1630 99  3    6  1
1631 99  4    1  1
1632 99  3    5  1
1633 99  5    7  1
1634 99  4    6  1
1635 99  3   14  1
1636 99  4    8  1
1637 99  5   13  1
1638 99  2    0  1
1639 99  4    7  1
1640 99  4    7  1
1641 99  1    0  1
1642 99  2    8  1
1643 99  4   10  1
1644 99  2    3  1
1645 99  2    0  1
1646 99  4    8  1
1647 99  1    8  1
1648 end data.
1649
1650
1651 variable label years 'Years expected'.
1652 variable label animal 'Animal Genus'.
1653
1654 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1655
1656 npar tests
1657      /median (7) = years by animal (1, 5)
1658      .
1659 ])
1660
1661
1662 AT_CHECK([pspp -O format=csv median2.sps], [0], [dnl
1663 Table: Frequencies
1664 ,,Animal Genus,,,,
1665 ,,Animal 1,Animal 2,Animal 3,Animal 4,Animal 5
1666 Years expected,> Median,2,1,2,3,4
1667 ,≤ Median,2,4,3,6,1
1668
1669 Table: Test Statistics
1670 ,N,Median,Chi-Square,df,Asymp. Sig.
1671 Years expected,28,7.000,4.317,4,.365
1672 ])
1673
1674 AT_CLEANUP
1675
1676
1677 AT_SETUP([NPAR TESTS Median Test (two sample)])
1678
1679 AT_DATA([median3.sps], [dnl
1680 set format F12.3.
1681 data list notable list /xx * animal * years * w *.
1682 begin data
1683 99  1   10  1
1684 99  4    1  1
1685 99  5   11  1
1686 99  5   10  1
1687 99  3    7  1
1688 99  3   14  1
1689 99  2    3  1
1690 99  1    1  1
1691 99  4    7  1
1692 99  5   12  1
1693 99  3    6  1
1694 99  4    1  1
1695 99  3    5  1
1696 99  5    7  1
1697 99  4    6  1
1698 99  3   14  1
1699 99  4    8  1
1700 99  5   13  1
1701 99  2    0  1
1702 99  4    7  1
1703 99  4    7  1
1704 99  1    0  1
1705 99  2    8  1
1706 99  4   10  1
1707 99  2    3  1
1708 99  2    0  1
1709 99  4    8  1
1710 99  1    8  1
1711 end data.
1712
1713
1714 variable label years 'Years expected'.
1715 variable label animal 'Animal Genus'.
1716
1717 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1718
1719 npar tests
1720      /median (7) = xx years by animal (5, 1)
1721      .
1722 ])
1723
1724
1725 AT_CHECK([pspp -O format=csv median3.sps], [0], [dnl
1726 Table: Frequencies
1727 ,,Animal Genus,
1728 ,,Animal 1,Animal 5
1729 xx,> Median,4,5
1730 ,≤ Median,0,0
1731 Years expected,> Median,2,4
1732 ,≤ Median,2,1
1733
1734 Table: Test Statistics
1735 ,N,Median,Chi-Square,df,Asymp. Sig.
1736 xx,9,7.000,NaN,1,NaN
1737 Years expected,9,7.000,.900,1,.343
1738 ])
1739
1740 AT_CLEANUP
1741
1742
1743 AT_SETUP([NPAR TESTS Jonckheere-Terpstra])
1744
1745 AT_DATA([jt.sps], [dnl
1746 set format = F12.3.
1747 data list notable list /x * g * w *.
1748 begin data.
1749 52  2  2
1750 58  2  1
1751 60  2  1
1752 62  2  1
1753 58  0  1
1754 44  2  1
1755 46  2  1
1756 14  3  1
1757 32  2  1
1758 16  3  1
1759 56  2  1
1760 26  3  1
1761 40  3  2
1762 50  4  1
1763 6   5  1
1764 34  2  3
1765 36  2  2
1766 40  2  2
1767 50  2  1
1768 end data.
1769
1770 weight by w.
1771
1772 npar test /jonckheere-terpstra = x by g (5, 2).
1773 ])
1774
1775
1776 AT_CHECK([pspp -O format=csv jt.sps], [0], [dnl
1777 Table: Jonckheere-Terpstra Test
1778 ,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)
1779 x,4,24.000,29.500,65.000,15.902,-2.232,.026
1780 ])
1781
1782 AT_CLEANUP
1783
1784 dnl Checks that (PAIRED) can have lists where the same
1785 dnl variable appears more than once.
1786 AT_SETUP([NPAR TESTS (PAIRED)])
1787 AT_DATA([npar.sps], [dnl
1788 set format = F12.3.
1789 data list notable list /a * b * c *.
1790 begin data.
1791 1 2 4
1792 4 5 3
1793 1 2 2
1794 4 5 1
1795 end data.
1796
1797 npar tests /wilcoxon a b with c c (paired).
1798 ])
1799
1800 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
1801 Table: Ranks
1802 ,,N,Mean Rank,Sum of Ranks
1803 a - c,Negative Ranks,2,2.500,5.000
1804 ,Positive Ranks,2,2.500,5.000
1805 ,Ties,0,,
1806 ,Total,4,,
1807 b - c,Negative Ranks,1,1.500,1.500
1808 ,Positive Ranks,2,2.250,4.500
1809 ,Ties,1,,
1810 ,Total,4,,
1811
1812 Table: Test Statistics
1813 ,a - c,b - c
1814 Z,.000,-.816
1815 Asymp. Sig. (2-tailed),1.000,.414
1816 ])
1817
1818
1819 AT_CLEANUP
1820
1821
1822
1823 AT_SETUP([NPAR TESTS CHISQUARE crash])
1824 dnl This syntax had been observed to crash pspp
1825
1826 AT_DATA([npar.sps], [dnl
1827 data list list /x *.
1828 begin data.
1829 1
1830 2
1831 3
1832 4
1833 5
1834 6
1835 7
1836 8
1837 9
1838 10
1839 end data.
1840
1841 * This happens to be invalid syntax.  But should not crash.
1842 NPAR TEST
1843         /CHISQUARE= x(0.098, 99.098)
1844         /EXPECTED =  1.2.
1845 ])
1846
1847 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
1848
1849 AT_CLEANUP
1850
1851
1852 AT_SETUP([NPAR TESTS - crash on invalid syntax])
1853
1854 AT_DATA([npar.sps], [dnl
1855 data list notable list /ev * xscore *.
1856 begin data.
1857 2 109
1858 3 115
1859 1 61
1860 1 101
1861 3 147
1862 end data.
1863
1864
1865 npar tests
1866         /kruskal-wallis xscore by(gv (1, 3).
1867 ])
1868
1869 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
1870
1871 AT_CLEANUP
1872
1873
1874
1875
1876 AT_SETUP([NPAR TESTS - crash on unterminated string])
1877
1878 AT_DATA([npar.sps], [dnl
1879 DATA LIST NOTABLE LIST /x * y * w * .
1880 BEGIN DATA.
1881 3.1 1  4
1882 3.2 2  1
1883 4   2  6
1884 END DATA.
1885
1886
1887 NPAR TESTS
1888 " CHISQUARE=x y(-2,5)
1889   /STATISTICS=DESCRIPTIVES
1890   .
1891 ])
1892
1893 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
1894
1895 AT_CLEANUP
1896