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