ONEWAY: fix crash in contrasts when dataset is empty
[pspp] / tests / language / stats / oneway.at
1 AT_BANNER([ONEWAY procedure])
2
3 AT_SETUP([ONEWAY basic operation])
4 AT_DATA([oneway.sps],
5   [DATA LIST NOTABLE LIST /QUALITY * BRAND * .
6 BEGIN DATA
7 7  3
8 4  3
9 3  1
10 2  1
11 1  1
12 4  2
13 2  2
14 3  2
15 5  3
16 1  1
17 4  1
18 5  2
19 2  2
20 3  3
21 6  3
22 END DATA
23
24 VARIABLE LABELS brand 'Manufacturer'.
25 VARIABLE LABELS quality 'Breaking Strain'.
26
27 VALUE LABELS /brand 1 'Aspeger' 2 'Bloggs' 3 'Charlies'.
28
29 ONEWAY
30         quality BY brand
31         /STATISTICS descriptives homogeneity
32         /CONTRAST =  -2 1 1 
33         /CONTRAST = 0 -1 1
34         .
35 ])
36
37 AT_CHECK([pspp -O format=csv oneway.sps], [0], [dnl
38 Table: Descriptives
39 ,,,,,,95% Confidence Interval for Mean,,,
40 ,,N,Mean,Std. Deviation,Std. Error,Lower Bound,Upper Bound,Minimum,Maximum
41 Breaking Strain,Aspeger,5,2.20,1.30,.58,.58,3.82,1.00,4.00
42 ,Bloggs,5,3.20,1.30,.58,1.58,4.82,2.00,5.00
43 ,Charlies,5,5.00,1.58,.71,3.04,6.96,3.00,7.00
44 ,Total,15,3.47,1.77,.46,2.49,4.45,1.00,7.00
45
46 Table: Test of Homogeneity of Variances
47 ,Levene Statistic,df1,df2,Sig.
48 Breaking Strain,.09,2,12,.913
49
50 Table: ANOVA
51 ,,Sum of Squares,df,Mean Square,F,Sig.
52 Breaking Strain,Between Groups,20.13,2,10.07,5.12,.025
53 ,Within Groups,23.60,12,1.97,,
54 ,Total,43.73,14,,,
55
56 Table: Contrast Coefficients
57 ,,Manufacturer,,
58 ,,Aspeger,Bloggs,Charlies
59 Contrast,1,-2,1,1
60 ,2,0,-1,1
61
62 Table: Contrast Tests
63 ,,Contrast,Value of Contrast,Std. Error,t,df,Sig. (2-tailed)
64 Breaking Strain,Assume equal variances,1,3.80,1.54,2.47,12,.029
65 ,,2,1.80,.89,2.03,12,.065
66 ,Does not assume equal,1,3.80,1.48,2.56,8.74,.031
67 ,,2,1.80,.92,1.96,7.72,.086
68 ])
69 AT_CLEANUP
70
71
72 AT_SETUP([ONEWAY with splits])
73 AT_DATA([oneway-splits.sps],
74 [DATA LIST NOTABLE LIST /QUALITY * BRAND * S *.
75 BEGIN DATA
76 3 1 1
77 2 1 1
78 1 1 1
79 1 1 1
80 4 1 1
81 5 2 1
82 2 2 1
83 4 2 2
84 2 2 2
85 3 2 2
86 7  3 2
87 4  3 2
88 5  3 2
89 3  3 2
90 6  3 2
91 END DATA
92
93 VARIABLE LABELS brand 'Manufacturer'.
94 VARIABLE LABELS quality 'Breaking Strain'.
95
96 VALUE LABELS /brand 1 'Aspeger' 2 'Bloggs' 3 'Charlies'.
97
98 SPLIT FILE by s.
99
100 ONEWAY
101         quality BY brand
102         /STATISTICS descriptives homogeneity
103         /CONTRAST =  -2 2
104         /CONTRAST = -1 1
105         .
106 ])
107
108 AT_CHECK([pspp -O format=csv oneway-splits.sps], [0], 
109 [Variable,Value,Label
110 S,1.00,
111
112 Table: Descriptives
113 ,,,,,,95% Confidence Interval for Mean,,,
114 ,,N,Mean,Std. Deviation,Std. Error,Lower Bound,Upper Bound,Minimum,Maximum
115 Breaking Strain,Aspeger,5,2.20,1.30,.58,.58,3.82,1.00,4.00
116 ,Bloggs,2,3.50,2.12,1.50,-15.56,22.56,2.00,5.00
117 ,Total,7,2.57,1.51,.57,1.17,3.97,1.00,5.00
118
119 Table: Test of Homogeneity of Variances
120 ,Levene Statistic,df1,df2,Sig.
121 Breaking Strain,1.09,1,5,.345
122
123 Table: ANOVA
124 ,,Sum of Squares,df,Mean Square,F,Sig.
125 Breaking Strain,Between Groups,2.41,1,2.41,1.07,.349
126 ,Within Groups,11.30,5,2.26,,
127 ,Total,13.71,6,,,
128
129 Table: Contrast Coefficients
130 ,,Manufacturer,
131 ,,Aspeger,Bloggs
132 Contrast,1,-2,2
133 ,2,-1,1
134
135 Table: Contrast Tests
136 ,,Contrast,Value of Contrast,Std. Error,t,df,Sig. (2-tailed)
137 Breaking Strain,Assume equal variances,1,2.60,2.52,1.03,5,.349
138 ,,2,1.30,1.26,1.03,5,.349
139 ,Does not assume equal,1,2.60,3.22,.81,1.32,.539
140 ,,2,1.30,1.61,.81,1.32,.539
141
142 Variable,Value,Label
143 S,2.00,
144
145 Table: Descriptives
146 ,,,,,,95% Confidence Interval for Mean,,,
147 ,,N,Mean,Std. Deviation,Std. Error,Lower Bound,Upper Bound,Minimum,Maximum
148 Breaking Strain,Bloggs,3,3.00,1.00,.58,.52,5.48,2.00,4.00
149 ,Charlies,5,5.00,1.58,.71,3.04,6.96,3.00,7.00
150 ,Total,8,4.25,1.67,.59,2.85,5.65,2.00,7.00
151
152 Table: Test of Homogeneity of Variances
153 ,Levene Statistic,df1,df2,Sig.
154 Breaking Strain,.92,1,6,.374
155
156 Table: ANOVA
157 ,,Sum of Squares,df,Mean Square,F,Sig.
158 Breaking Strain,Between Groups,7.50,1,7.50,3.75,.101
159 ,Within Groups,12.00,6,2.00,,
160 ,Total,19.50,7,,,
161
162 Table: Contrast Coefficients
163 ,,Manufacturer,
164 ,,Bloggs,Charlies
165 Contrast,1,-2,2
166 ,2,-1,1
167
168 Table: Contrast Tests
169 ,,Contrast,Value of Contrast,Std. Error,t,df,Sig. (2-tailed)
170 Breaking Strain,Assume equal variances,1,4.00,2.07,1.94,6,.101
171 ,,2,2.00,1.03,1.94,6,.101
172 ,Does not assume equal,1,4.00,1.83,2.19,5.88,.072
173 ,,2,2.00,.91,2.19,5.88,.072
174 ])
175
176 AT_CLEANUP
177
178
179 AT_SETUP([ONEWAY with missing values])
180 dnl Check that missing are treated properly
181 AT_DATA([oneway-missing1.sps],
182 [DATA LIST NOTABLE LIST /v1 * v2 * dep * vn *.
183 BEGIN DATA
184 . .  1  4
185 3 3  1  2
186 2 2  1  2
187 1 1  1  2
188 1 1  1  2
189 4 4  1  2
190 5 5  2  2
191 2 2  2  2
192 4 4  2  2
193 2 2  2  2
194 3 3  2  2
195 7 7  3  2
196 4 4  3  2
197 5 5  3  2
198 3 3  3  2
199 6 6  3  2
200 END DATA
201
202 ONEWAY
203         v1 v2 BY dep
204         /STATISTICS descriptives homogeneity
205         /MISSING ANALYSIS 
206         .
207 ])
208
209 AT_DATA([oneway-missing2.sps],
210 [DATA LIST NOTABLE LIST /v1 * v2 * dep * vn * .
211 BEGIN DATA
212 4 .  1  2 
213 3 3  1  2
214 2 2  1  2
215 1 1  1  2
216 1 1  1  2
217 4 4  1  2
218 5 5  2  2
219 2 2  2  2
220 4 4  2  2
221 2 2  2  2
222 3 3  2  2
223 7 7  3  2
224 4 4  3  2
225 5 5  3  2
226 3 3  3  2
227 6 6  3  2
228 END DATA
229
230 ONEWAY
231         v1 v2 BY dep
232         /STATISTICS descriptives homogeneity
233         /MISSING LISTWISE
234         .
235 ])
236
237
238
239 AT_CHECK([pspp -O format=csv oneway-missing1.sps > first.out], [0])
240
241 AT_CHECK([pspp -O format=csv oneway-missing2.sps > second.out], [0])
242
243 AT_CHECK([diff first.out second.out], [0], [])
244
245 dnl Now a test with missing values in the independent variable
246 AT_DATA([oneway-missing3.sps],
247 [DATA LIST NOTABLE LIST /v1 * v2 * dep * vn * .
248 BEGIN DATA
249 4 2  .  2 
250 3 3  1  2
251 2 2  1  2
252 1 1  1  2
253 1 1  1  2
254 4 4  1  2
255 5 5  2  2
256 2 2  2  2
257 4 4  2  2
258 2 2  2  2
259 3 3  2  2
260 7 7  3  2
261 4 4  3  2
262 5 5  3  4
263 3 3  3  2
264 6 6  3  2
265 END DATA
266
267 ONEWAY
268         v1 v2 BY dep
269         /STATISTICS descriptives homogeneity
270         /MISSING ANALYSIS
271         .
272 ])
273
274 AT_CHECK([pspp -O format=csv oneway-missing3.sps > third.out], [0])
275
276 AT_CHECK([diff first.out third.out], [0], [])
277
278 AT_CLEANUP
279
280
281
282
283
284 AT_SETUP([ONEWAY descriptives subcommand])
285
286 AT_DATA([oneway-descriptives.sps],
287   [DATA LIST NOTABLE LIST /QUALITY * BRAND * .
288 BEGIN DATA
289 13 11
290 12 11
291 11 11
292 11 11
293 14 11
294 15 25
295 12 25
296 14 25
297 12 25
298 13 25
299 17  301
300 14  301
301 15  301
302 13  301
303 16  301
304 END DATA
305
306
307 ONEWAY
308         quality BY brand
309         /STATISTICS descriptives
310         .
311 ])
312
313 AT_CHECK([pspp -O format=csv oneway-descriptives.sps], [0], 
314 [Table: Descriptives
315 ,,,,,,95% Confidence Interval for Mean,,,
316 ,,N,Mean,Std. Deviation,Std. Error,Lower Bound,Upper Bound,Minimum,Maximum
317 QUALITY,11.00,5,12.20,1.30,.58,10.58,13.82,11.00,14.00
318 ,25.00,5,13.20,1.30,.58,11.58,14.82,12.00,15.00
319 ,301.00,5,15.00,1.58,.71,13.04,16.96,13.00,17.00
320 ,Total,15,13.47,1.77,.46,12.49,14.45,11.00,17.00
321
322 Table: ANOVA
323 ,,Sum of Squares,df,Mean Square,F,Sig.
324 QUALITY,Between Groups,20.13,2,10.07,5.12,.025
325 ,Within Groups,23.60,12,1.97,,
326 ,Total,43.73,14,,,
327 ])
328
329 AT_CLEANUP
330
331
332
333 AT_SETUP([ONEWAY homogeneity subcommand])
334
335 AT_DATA([oneway-homogeneity.sps],
336   [DATA LIST NOTABLE LIST /QUALITY * BRAND * .
337 BEGIN DATA
338 13 11
339 12 11
340 11 11
341 11 11
342 14 11
343 15 25
344 12 25
345 14 25
346 12 25
347 13 25
348 17  301
349 14  301
350 15  301
351 13  301
352 16  301
353 END DATA
354
355
356 ONEWAY
357         quality BY brand
358         /STATISTICS homogeneity
359         .
360 ])
361
362 AT_CHECK([pspp -O format=csv oneway-homogeneity.sps], [0], 
363 [Table: Test of Homogeneity of Variances
364 ,Levene Statistic,df1,df2,Sig.
365 QUALITY,.09,2,12,.913
366
367 Table: ANOVA
368 ,,Sum of Squares,df,Mean Square,F,Sig.
369 QUALITY,Between Groups,20.13,2,10.07,5.12,.025
370 ,Within Groups,23.60,12,1.97,,
371 ,Total,43.73,14,,,
372 ])
373
374 AT_CLEANUP
375
376
377
378 AT_SETUP([ONEWAY multiple variables])
379 dnl check that everything works ok when several different dependent variables are specified.
380 dnl This of course does not mean that we're doing a multivariate analysis.  It's just like
381 dnl running several tests at once.
382 AT_DATA([multivar.sps],
383 [DATA LIST notable LIST /x * y * z * g *.
384 begin data.
385 1 1 0 10
386 1 1 9 10
387 9 1 2 10
388 1 1 3 20
389 1 1 8 20
390 1 1 1 20
391 1 1 2 20
392 0 1 3 20
393 1 1 4 30
394 0 1 5 30
395 1 1 6 30
396 0 1 7 30
397 1 2 8 30
398 2 2 9 30
399 1 2 1 30
400 1 2 0 30
401 1 2 2 40
402 8 2 3 40
403 1 2 4 40
404 1 2 9 40
405 9 2 8 40
406 7 3 7 40
407 2 3 6 40
408 3 3 5 40
409 end data.
410
411 ONEWAY x y z by g
412         /STATISTICS = DESCRIPTIVES HOMOGENEITY
413         /CONTRAST 3  2 0 -5
414         /CONTRAST 2 -9 7  0
415         .
416 ])
417
418 AT_CHECK([pspp -o pspp.csv multivar.sps])
419
420 dnl Some machines return 3.88 instead of 3.87 below (see bug #31611).
421 AT_CHECK([sed 's/^,Within Groups,3.88/,Within Groups,3.87/' pspp.csv], [0], [dnl
422 Table: Descriptives
423 ,,,,,,95% Confidence Interval for Mean,,,
424 ,,N,Mean,Std. Deviation,Std. Error,Lower Bound,Upper Bound,Minimum,Maximum
425 x,10.00,3,3.67,4.62,2.67,-7.81,15.14,1.00,9.00
426 ,20.00,5,.80,.45,.20,.24,1.36,.00,1.00
427 ,30.00,8,.88,.64,.23,.34,1.41,.00,2.00
428 ,40.00,8,4.00,3.42,1.21,1.14,6.86,1.00,9.00
429 ,Total,24,2.25,2.83,.58,1.05,3.45,.00,9.00
430 y,10.00,3,1.00,.00,.00,1.00,1.00,1.00,1.00
431 ,20.00,5,1.00,.00,.00,1.00,1.00,1.00,1.00
432 ,30.00,8,1.50,.53,.19,1.05,1.95,1.00,2.00
433 ,40.00,8,2.38,.52,.18,1.94,2.81,2.00,3.00
434 ,Total,24,1.63,.71,.15,1.32,1.93,1.00,3.00
435 z,10.00,3,3.67,4.73,2.73,-8.07,15.41,.00,9.00
436 ,20.00,5,3.40,2.70,1.21,.05,6.75,1.00,8.00
437 ,30.00,8,5.00,3.21,1.13,2.32,7.68,.00,9.00
438 ,40.00,8,5.50,2.45,.87,3.45,7.55,2.00,9.00
439 ,Total,24,4.67,2.99,.61,3.40,5.93,.00,9.00
440
441 Table: Test of Homogeneity of Variances
442 ,Levene Statistic,df1,df2,Sig.
443 x,18.76,3,20,.000
444 y,71.41,3,20,.000
445 z,.89,3,20,.463
446
447 Table: ANOVA
448 ,,Sum of Squares,df,Mean Square,F,Sig.
449 x,Between Groups,56.16,3,18.72,2.92,.059
450 ,Within Groups,128.34,20,6.42,,
451 ,Total,184.50,23,,,
452 y,Between Groups,7.75,3,2.58,13.33,.000
453 ,Within Groups,3.87,20,.19,,
454 ,Total,11.63,23,,,
455 z,Between Groups,17.47,3,5.82,.62,.610
456 ,Within Groups,187.87,20,9.39,,
457 ,Total,205.33,23,,,
458
459 Table: Contrast Coefficients
460 ,,g,,,
461 ,,10.00,20.00,30.00,40.00
462 Contrast,1,3,2,0,-5
463 ,2,2,-9,7,0
464
465 Table: Contrast Tests
466 ,,Contrast,Value of Contrast,Std. Error,t,df,Sig. (2-tailed)
467 x,Assume equal variances,1,-7.40,6.67,1.11,20,.280
468 ,,2,6.26,12.32,.51,20,.617
469 ,Does not assume equal,1,-7.40,10.04,-.74,4.53,.497
470 ,,2,6.26,5.85,1.07,2.87,.366
471 y,Assume equal variances,1,-6.88,1.16,5.94,20,.000
472 ,,2,3.50,2.14,1.63,20,.118
473 ,Does not assume equal,1,-6.88,.91,-7.51,7.00,.000
474 ,,2,3.50,1.32,2.65,7.00,.033
475 z,Assume equal variances,1,-9.70,8.07,1.20,20,.243
476 ,,2,11.73,14.91,.79,20,.440
477 ,Does not assume equal,1,-9.70,9.57,-1.01,3.64,.373
478 ,,2,11.73,14.53,.81,9.88,.438
479 ])
480
481 AT_CLEANUP
482
483
484
485 dnl Tests that everything treats weights properly
486 AT_SETUP([ONEWAY vs. weights])
487
488 AT_DATA([oneway-unweighted.sps],
489 [DATA LIST NOTABLE LIST /QUALITY * BRAND * W *.
490 BEGIN DATA
491 3  1   1
492 2  1   1
493 1  1   1
494 1  1   1
495 4  1   1
496 5  2   1
497 2  2   1
498 4  2   1
499 4  2   1
500 4  2   1
501 2  2   1
502 2  2   1
503 3  2   1
504 7  3   1
505 4  3   1
506 5  3   1
507 5  3   1
508 3  3   1
509 6  3   1
510 END DATA.
511
512 WEIGHT BY W.
513
514 ONEWAY
515         quality BY brand
516         /STATISTICS descriptives homogeneity
517         .
518 ])
519
520 AT_CHECK([pspp -o pspp-unweighted.csv oneway-unweighted.sps], [0], [ignore], [ignore])
521
522 AT_DATA([oneway-weighted.sps],
523 [DATA LIST NOTABLE LIST /QUALITY * BRAND * W *.
524 BEGIN DATA
525 3  1   1
526 2  1   1
527 1  1   2
528 4  1   1
529 5  2   1
530 2  2   1
531 4  2   3
532 2  2   2
533 3  2   1
534 7  3   1
535 4  3   1
536 5  3   2
537 3  3   1
538 6  3   1
539 END DATA.
540
541 WEIGHT BY W.
542
543 ONEWAY
544         quality BY brand
545         /STATISTICS descriptives homogeneity
546         .
547 ])
548
549 AT_CHECK([pspp -o pspp-weighted.csv oneway-weighted.sps], [0], [ignore], [ignore])
550
551 AT_CHECK([diff pspp-weighted.csv pspp-unweighted.csv], [0])
552
553 AT_CLEANUP
554
555
556
557 AT_SETUP([ONEWAY posthoc LSD and BONFERRONI])
558 AT_DATA([oneway-pig.sps],[dnl
559 SET FORMAT F12.3.
560 data list notable list /pigmentation * family *.
561 begin data.
562 36 1
563 39 1
564 43 1
565 38 1
566 37 1
567 46 2
568 47 2
569 47 2
570 47 2
571 43 2
572 40 3
573 50 3
574 44 3
575 48 3
576 50 3
577 45 4
578 53 4
579 56 4
580 52 4
581 56 4
582 end data.
583
584
585 oneway pigmentation by family
586         /statistics = descriptives
587         /posthoc = lsd bonferroni alpha (0.05)
588          .
589 ])
590
591 AT_CHECK([pspp -O format=csv oneway-pig.sps], [0], 
592 [Table: Descriptives
593 ,,,,,,95% Confidence Interval for Mean,,,
594 ,,N,Mean,Std. Deviation,Std. Error,Lower Bound,Upper Bound,Minimum,Maximum
595 pigmentation,1.000,5,38.600,2.702,1.208,35.245,41.955,36.000,43.000
596 ,2.000,5,46.000,1.732,.775,43.849,48.151,43.000,47.000
597 ,3.000,5,46.400,4.336,1.939,41.016,51.784,40.000,50.000
598 ,4.000,5,52.400,4.506,2.015,46.806,57.994,45.000,56.000
599 ,Total,20,45.850,5.967,1.334,43.057,48.643,36.000,56.000
600
601 Table: ANOVA
602 ,,Sum of Squares,df,Mean Square,F,Sig.
603 pigmentation,Between Groups,478.950,3,159.650,12.927,.000
604 ,Within Groups,197.600,16,12.350,,
605 ,Total,676.550,19,,,
606
607 Table: Multiple Comparisons (pigmentation)
608 ,,,Mean Difference,,,95% Confidence Interval,
609 ,(I) family,(J) family,(I - J),Std. Error,Sig.,Lower Bound,Upper Bound
610 LSD,1.000,2.000,-7.400,2.223,.004,-12.112,-2.688
611 ,,3.000,-7.800,2.223,.003,-12.512,-3.088
612 ,,4.000,-13.800,2.223,.000,-18.512,-9.088
613 ,2.000,1.000,7.400,2.223,.004,2.688,12.112
614 ,,3.000,-.400,2.223,.859,-5.112,4.312
615 ,,4.000,-6.400,2.223,.011,-11.112,-1.688
616 ,3.000,1.000,7.800,2.223,.003,3.088,12.512
617 ,,2.000,.400,2.223,.859,-4.312,5.112
618 ,,4.000,-6.000,2.223,.016,-10.712,-1.288
619 ,4.000,1.000,13.800,2.223,.000,9.088,18.512
620 ,,2.000,6.400,2.223,.011,1.688,11.112
621 ,,3.000,6.000,2.223,.016,1.288,10.712
622 Bonferroni,1.000,2.000,-7.400,2.223,.025,-14.086,-.714
623 ,,3.000,-7.800,2.223,.017,-14.486,-1.114
624 ,,4.000,-13.800,2.223,.000,-20.486,-7.114
625 ,2.000,1.000,7.400,2.223,.025,.714,14.086
626 ,,3.000,-.400,2.223,1.000,-7.086,6.286
627 ,,4.000,-6.400,2.223,.065,-13.086,.286
628 ,3.000,1.000,7.800,2.223,.017,1.114,14.486
629 ,,2.000,.400,2.223,1.000,-6.286,7.086
630 ,,4.000,-6.000,2.223,.095,-12.686,.686
631 ,4.000,1.000,13.800,2.223,.000,7.114,20.486
632 ,,2.000,6.400,2.223,.065,-.286,13.086
633 ,,3.000,6.000,2.223,.095,-.686,12.686
634 ])
635
636 AT_CLEANUP
637
638
639 AT_SETUP([ONEWAY posthoc Tukey HSD and Games-Howell])
640 AT_DATA([oneway-tukey.sps],[dnl
641 set format = f11.3.
642 data list notable list /libido * dose *.
643 begin data.
644 3 0
645 2 0
646 1 0
647 1 0
648 4 0
649 5 1
650 2 1
651 4 1
652 2 1
653 3 1
654 7 2
655 4 2
656 5 2
657 3 2
658 6 2
659 end data.
660
661 variable label dose 'Dose of Viagra'.
662
663 add value labels dose 0 'Placebo' 1 '1 Dose' 2 '2 Doses'.
664
665 oneway libido by dose
666         /posthoc tukey gh.
667 ])
668
669 AT_CHECK([pspp -O format=csv oneway-tukey.sps], [0], 
670 [Table: ANOVA
671 ,,Sum of Squares,df,Mean Square,F,Sig.
672 libido,Between Groups,20.133,2,10.067,5.119,.025
673 ,Within Groups,23.600,12,1.967,,
674 ,Total,43.733,14,,,
675
676 Table: Multiple Comparisons (libido)
677 ,,,Mean Difference,,,95% Confidence Interval,
678 ,(I) Dose of Viagra,(J) Dose of Viagra,(I - J),Std. Error,Sig.,Lower Bound,Upper Bound
679 Tukey HSD,Placebo,1 Dose,-1.000,.887,.516,-3.366,1.366
680 ,,2 Doses,-2.800,.887,.021,-5.166,-.434
681 ,1 Dose,Placebo,1.000,.887,.516,-1.366,3.366
682 ,,2 Doses,-1.800,.887,.147,-4.166,.566
683 ,2 Doses,Placebo,2.800,.887,.021,.434,5.166
684 ,,1 Dose,1.800,.887,.147,-.566,4.166
685 Games-Howell,Placebo,1 Dose,-1.000,.887,.479,-3.356,1.356
686 ,,2 Doses,-2.800,.887,.039,-5.439,-.161
687 ,1 Dose,Placebo,1.000,.887,.479,-1.356,3.356
688 ,,2 Doses,-1.800,.887,.185,-4.439,.839
689 ,2 Doses,Placebo,2.800,.887,.039,.161,5.439
690 ,,1 Dose,1.800,.887,.185,-.839,4.439
691 ])
692
693 AT_CLEANUP
694
695 AT_SETUP([ONEWAY posthoc Sidak])
696 AT_DATA([oneway-sidak.sps],[dnl
697 SET FORMAT F20.4.
698
699 DATA LIST notable LIST /program score.
700 BEGIN DATA.
701 1   9
702 1  12
703 1  14
704 1  11
705 1  13
706 2  10
707 2   6
708 2   9
709 2   9
710 2  10
711 3  12
712 3  14
713 3  11
714 3  13
715 3  11
716 4   9
717 4   8
718 4  11
719 4   7
720 4   8
721 END DATA.
722
723 ONEWAY
724   score BY program
725   /MISSING ANALYSIS
726   /POSTHOC = SIDAK.
727 ])
728
729 AT_CHECK([pspp -O format=csv oneway-sidak.sps], [0], 
730 [Table: ANOVA
731 ,,Sum of Squares,df,Mean Square,F,Sig.
732 score,Between Groups,54.9500,3,18.3167,7.0449,.003
733 ,Within Groups,41.6000,16,2.6000,,
734 ,Total,96.5500,19,,,
735
736 Table: Multiple Comparisons (score)
737 ,,,Mean Difference,,,95% Confidence Interval,
738 ,(I) program,(J) program,(I - J),Std. Error,Sig.,Lower Bound,Upper Bound
739 Šidák,1.0000,2.0000,3.0000,1.0198,.056,-.0575,6.0575
740 ,,3.0000,-.4000,1.0198,.999,-3.4575,2.6575
741 ,,4.0000,3.2000,1.0198,.038,.1425,6.2575
742 ,2.0000,1.0000,-3.0000,1.0198,.056,-6.0575,.0575
743 ,,3.0000,-3.4000,1.0198,.025,-6.4575,-.3425
744 ,,4.0000,.2000,1.0198,1.000,-2.8575,3.2575
745 ,3.0000,1.0000,.4000,1.0198,.999,-2.6575,3.4575
746 ,,2.0000,3.4000,1.0198,.025,.3425,6.4575
747 ,,4.0000,3.6000,1.0198,.017,.5425,6.6575
748 ,4.0000,1.0000,-3.2000,1.0198,.038,-6.2575,-.1425
749 ,,2.0000,-.2000,1.0198,1.000,-3.2575,2.8575
750 ,,3.0000,-3.6000,1.0198,.017,-6.6575,-.5425
751 ])
752
753 AT_CLEANUP
754
755 AT_SETUP([ONEWAY posthoc Scheffe])
756 AT_DATA([oneway-scheffe.sps],[dnl
757 set format = f11.3.
758 data list notable list /usage * group *.
759 begin data.
760 21.00     1
761 19.00     1
762 18.00     1
763 25.00     1
764 14.00     1
765 13.00     1
766 24.00     1
767 19.00     1
768 20.00     1
769 21.00     1
770 15.00     2
771 10.00     2
772 13.00     2
773 16.00     2
774 14.00     2
775 24.00     2
776 16.00     2
777 14.00     2
778 18.00     2
779 16.00     2
780 10.00     3
781  7.00     3
782 13.00     3
783 20.00     3
784   .00     3
785  8.00     3
786  6.00     3
787  1.00     3
788 12.00     3
789 14.00     3
790 18.00     4
791 15.00     4
792  3.00     4
793 27.00     4
794  6.00     4
795 14.00     4
796 13.00     4
797 11.00     4
798  9.00     4
799 18.00     4
800 end data.
801
802 variable label usage 'Days of Use'.
803
804 add value labels group 0 'none' 1 'one' 2 'two' 3 'three' 4 'four'.
805
806 oneway usage by group
807         /posthoc scheffe.
808 ])
809
810 AT_CHECK([pspp -O format=csv oneway-scheffe.sps], [0], 
811 [Table: ANOVA
812 ,,Sum of Squares,df,Mean Square,F,Sig.
813 Days of Use,Between Groups,555.275,3,185.092,6.663,.001
814 ,Within Groups,1000.100,36,27.781,,
815 ,Total,1555.375,39,,,
816
817 Table: Multiple Comparisons (Days of Use)
818 ,,,Mean Difference,,,95% Confidence Interval,
819 ,(I) group,(J) group,(I - J),Std. Error,Sig.,Lower Bound,Upper Bound
820 Scheffé,one,two,3.800,2.357,.467,-3.112,10.712
821 ,,three,10.300,2.357,.001,3.388,17.212
822 ,,four,6.000,2.357,.110,-.912,12.912
823 ,two,one,-3.800,2.357,.467,-10.712,3.112
824 ,,three,6.500,2.357,.072,-.412,13.412
825 ,,four,2.200,2.357,.832,-4.712,9.112
826 ,three,one,-10.300,2.357,.001,-17.212,-3.388
827 ,,two,-6.500,2.357,.072,-13.412,.412
828 ,,four,-4.300,2.357,.358,-11.212,2.612
829 ,four,one,-6.000,2.357,.110,-12.912,.912
830 ,,two,-2.200,2.357,.832,-9.112,4.712
831 ,,three,4.300,2.357,.358,-2.612,11.212
832 ])
833
834 AT_CLEANUP
835
836
837 AT_SETUP([ONEWAY bad contrast count])
838
839 AT_DATA([oneway-bad-contrast.sps],[dnl
840 DATA LIST NOTABLE LIST /height * weight * temperature * sex *.
841 BEGIN DATA.
842 1884     88.6       39.97     0
843 1801     90.9       39.03     0
844 1801     91.7       38.98     0
845 1607     56.3       36.26     1
846 1608     46.3       46.26     1
847 1607     55.9       37.84     1
848 1604     56.6       36.81     1
849 1606     56.1       34.56     1
850 END DATA.
851
852 ONEWAY /VARIABLES= height weight temperature BY sex
853  /CONTRAST = -1  1 
854  /CONTRAST = -3  3 
855  /CONTRAST =  2 -2  1
856  /CONTRAST = -9  9
857  . 
858 ])
859
860
861 AT_CHECK([pspp -O format=csv oneway-bad-contrast.sps], [0], [dnl
862 "oneway-bad-contrast.sps:18: warning: ONEWAY: In contrast list 3, the number of coefficients (3) does not equal the number of groups (2). This contrast list will be ignored."
863
864 Table: ANOVA
865 ,,Sum of Squares,df,Mean Square,F,Sig.
866 height,Between Groups,92629.63,1,92629.63,120.77,.000
867 ,Within Groups,4601.87,6,766.98,,
868 ,Total,97231.50,7,,,
869 weight,Between Groups,2451.65,1,2451.65,174.59,.000
870 ,Within Groups,84.25,6,14.04,,
871 ,Total,2535.90,7,,,
872 temperature,Between Groups,1.80,1,1.80,.13,.733
873 ,Within Groups,84.55,6,14.09,,
874 ,Total,86.36,7,,,
875
876 Table: Contrast Coefficients
877 ,,sex,
878 ,,.00,1.00
879 Contrast,1,-1,1
880 ,2,-3,3
881 ,3,-9,9
882
883 Table: Contrast Tests
884 ,,Contrast,Value of Contrast,Std. Error,t,df,Sig. (2-tailed)
885 height,Assume equal variances,1,-222.27,20.23,10.99,6,.000
886 ,,2,-666.80,60.68,10.99,6,.000
887 ,,3,-2000.40,182.03,10.99,6,.000
888 ,Does not assume equal,1,-222.27,27.67,-8.03,2.00,.015
889 ,,2,-666.80,83.02,-8.03,2.00,.015
890 ,,3,-2000.40,249.07,-8.03,2.00,.015
891 weight,Assume equal variances,1,-36.16,2.74,13.21,6,.000
892 ,,2,-108.48,8.21,13.21,6,.000
893 ,,3,-325.44,24.63,13.21,6,.000
894 ,Does not assume equal,1,-36.16,2.19,-16.48,5.42,.000
895 ,,2,-108.48,6.58,-16.48,5.42,.000
896 ,,3,-325.44,19.75,-16.48,5.42,.000
897 temperature,Assume equal variances,1,-.98,2.74,.36,6,.733
898 ,,2,-2.94,8.22,.36,6,.733
899 ,,3,-8.83,24.67,.36,6,.733
900 ,Does not assume equal,1,-.98,2.07,-.47,4.19,.660
901 ,,2,-2.94,6.22,-.47,4.19,.660
902 ,,3,-8.83,18.66,-.47,4.19,.660
903 ])
904
905 AT_CLEANUP
906
907
908 AT_SETUP([ONEWAY crash on single category independent variable])
909 AT_DATA([crash.sps],[
910 input program.
911 loop #i = 1 to 10.
912 compute test = #i.
913 end case.
914 end loop.
915 end file.
916 end input program.
917
918 compute x = 1.
919
920 oneway test by x.
921 ])
922
923 AT_CHECK([pspp -O format=csv crash.sps], [0], [ignore])
924
925 AT_CLEANUP
926
927
928
929 AT_SETUP([ONEWAY crash on missing dependent variable])
930 AT_DATA([crash2.sps],[dnl
931 data list notable list /dv1 * dv2  *  y * .
932 begin data.
933 2  .  2     
934 1  .  2 
935 1  .  1    
936 2  .  4    
937 3  .  4
938 4  .  4    
939 5  .  4    
940 end data.
941
942 ONEWAY 
943        /VARIABLES= dv1 dv2  BY y
944        /STATISTICS = DESCRIPTIVES
945        /POSTHOC = BONFERRONI LSD SCHEFFE SIDAK TUKEY
946        /MISSING = ANALYSIS      
947        .
948 ])
949
950 AT_CHECK([pspp -O format=csv crash2.sps], [0], [ignore])
951
952 AT_CLEANUP
953
954
955
956
957 AT_SETUP([ONEWAY Games-Howell test with few cases])
958 AT_DATA([crash3.sps],[dnl
959 data list notable list /dv * y * .
960 begin data.
961 2 2
962 1 2
963 1 1
964 2 4
965 3 4
966 end data.
967
968 ONEWAY
969  /VARIABLES= dv BY y
970  /POSTHOC = GH
971  . 
972 ])
973
974 AT_CHECK([pspp -O format=csv crash3.sps], [0], [ignore])
975
976 AT_CLEANUP
977
978
979 AT_SETUP([ONEWAY Crash on empty data])
980 AT_DATA([crash4.sps],[dnl
981 DATA LIST NOTABLE LIST /height * weight * temperature * sex *.
982 BEGIN DATA.
983 1801     .       .     0
984 1606     .       .     1
985 END DATA.
986
987 ONEWAY /VARIABLES= height weight temperature BY sex
988  /CONTRAST = -1  1
989  /CONTRAST = -3  3
990  /CONTRAST =  2 -2  1
991  /CONTRAST = -9  9
992  .
993 ])
994
995 AT_CHECK([pspp -O format=csv crash4.sps], [0], [ignore])
996
997 AT_CLEANUP