Move all command implementations into a single 'commands' directory.
[pspp] / tests / language / stats / glm.at
diff --git a/tests/language/stats/glm.at b/tests/language/stats/glm.at
deleted file mode 100644 (file)
index 618d2a1..0000000
+++ /dev/null
@@ -1,570 +0,0 @@
-dnl PSPP - a program for statistical analysis.
-dnl Copyright (C) 2017 Free Software Foundation, Inc.
-dnl
-dnl This program is free software: you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation, either version 3 of the License, or
-dnl (at your option) any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
-dnl
-AT_BANNER([GLM procedure])
-
-AT_SETUP([GLM latin square design])
-AT_KEYWORDS([categorical categoricals])
-
-dnl This example comes from :
-dnl  http://ssnds.uwo.ca/statsexamples/spssanova/latinsquareresults.html
-AT_DATA([latin.sps], [dnl
-set format = F20.3.
-data list notable  fixed /a 1 b 3 c 5 y 7-10(2).
-begin data.
-1 1 6  3.5
-1 2 2  8.9
-1 3 3  9.6
-1 4 4 10.5
-1 5 5  3.1
-1 6 1  5.9
-2 1 2  4.2
-2 2 6  1.9
-2 3 5  3.7
-2 4 3 10.2
-2 5 1  7.2
-2 6 4  7.6
-3 1 1  6.7
-3 2 4  5.8
-3 3 6 -2.7
-3 4 2  4.6
-3 5 3  4.0
-3 6 5 -0.7
-4 1 4  6.6
-4 2 1  4.5
-4 3 2  3.7
-4 4 5  3.7
-4 5 6 -3.3
-4 6 3  3.0
-5 1 3  4.1
-5 2 5  2.4
-5 3 4  6.0
-5 4 1  5.1
-5 5 2  3.5
-5 6 6  4.0
-6 1 5  3.8
-6 2 3  5.8
-6 3 1  7.0
-6 4 6  3.8
-6 5 4  5.0
-6 6 2  8.6
-end data.
-
-variable labels a 'Factor A' b 'Factor B' c 'Factor C' y 'Criterion'.
-
-glm y by   b a c
-  /intercept=include
-  /criteria=alpha(.05)
-  /design = a b c
-  .
-])
-
-AT_CHECK([pspp -O format=csv latin.sps | sed 's/329.62[[678]]/329.62/'], [0],
-  [dnl
-Table: Tests of Between-Subjects Effects
-,Type III Sum Of Squares,df,Mean Square,F,Sig.
-Corrected Model,263.064,15,17.538,5.269,.000
-Intercept,815.103,1,815.103,244.910,.000
-Factor A,78.869,5,15.774,4.739,.005
-Factor B,28.599,5,5.720,1.719,.176
-Factor C,155.596,5,31.119,9.350,.000
-Error,66.563,20,3.328,,
-Total,1144.730,36,,,
-Corrected Total,329.62,35,,,
-])
-
-AT_CLEANUP
-
-AT_SETUP([GLM 2 by 2 factorial design])
-AT_KEYWORDS([categorical categoricals])
-
-AT_DATA([2by2.sps], [dnl
-set format = F20.3.
-data list notable  list /Factor0 * Factor1 * points (F10).
-begin data.
-1      4       332
-1      4       380
-1      4       371
-1      4       366
-1      4       354
-1      0       259.5
-1      0       302.5
-1      0       296
-1      0       349
-1      0       309
-2      4       354.67
-2      4       353.5
-2      4       304
-2      4       365
-2      4       339
-2      0       306
-2      0       339
-2      0       353
-2      0       351
-2      0       333
-end data.
-
-glm points by Factor0 Factor1
-  /intercept=include
-  /criteria=alpha(.05)
-  .
-])
-
-
-AT_CHECK([pspp -O format=csv 2by2.sps ], [0],
-  [dnl
-Table: Tests of Between-Subjects Effects
-,Type III Sum Of Squares,df,Mean Square,F,Sig.
-Corrected Model,8667.053,3,2889.018,5.043,.012
-Intercept,2256018.640,1,2256018.640,3937.693,.000
-Factor0,313.394,1,313.394,.547,.470
-Factor1,5157.508,1,5157.508,9.002,.008
-Factor0 × Factor1,3196.150,1,3196.150,5.579,.031
-Error,9166.865,16,572.929,,
-Total,2273852.559,20,,,
-Corrected Total,17833.918,19,,,
-])
-
-AT_CLEANUP
-
-
-AT_SETUP([GLM Type I and II Sums of Squares])
-AT_KEYWORDS([categorical categoricals])
-
-dnl  The following example comes from
-dnl  http://www.uvm.edu/~dhowell/StatPages/More_Stuff/Type1-3.pdf
-AT_DATA([data-inc.sps], [dnl
-set decimal = dot.
-set format=F20.3.
-data list notable list /dv * Agrp * B0 * B1 * B2 * i0 * i1 * i2 * sss *.
-begin data.
-5   1  1  0  0  1  0  0 1.00
-7   1  1  0  0  1  0  0 1.00
-9   1  1  0  0  1  0  0 1.00
-8   1  1  0  0  1  0  0 1.00
-2   1  0  1  0  0  1  0 1.00
-5   1  0  1  0  0  1  0 1.00
-7   1  0  1  0  0  1  0 1.00
-3   1  0  1  0  0  1  0 1.00
-9   1  0  1  0  0  1  0 1.00
-8   1  0  0  1  0  0  1 1.00
-11  1  0  0  1  0  0  1 1.00
-12  1  0  0  1  0  0  1 1.00
-14  1  0  0  1  0  0  1 1.00
-11  1 -1 -1 -1 -1 -1 -1 1.00
-15  1 -1 -1 -1 -1 -1 -1 1.00
-16  1 -1 -1 -1 -1 -1 -1 1.00
-10  1 -1 -1 -1 -1 -1 -1 1.00
-9   1 -1 -1 -1 -1 -1 -1 1.00
-7  -1  1  0  0 -1  0  0 2.00
-9  -1  1  0  0 -1  0  0 2.00
-10 -1  1  0  0 -1  0  0 2.00
-9  -1  1  0  0 -1  0  0 2.00
-3  -1  0  1  0  0 -1  0 2.00
-8  -1  0  1  0  0 -1  0 2.00
-9  -1  0  1  0  0 -1  0 2.00
-11 -1  0  1  0  0 -1  0 2.00
-9  -1  0  0  1  0  0 -1 2.00
-12 -1  0  0  1  0  0 -1 2.00
-14 -1  0  0  1  0  0 -1 2.00
-8  -1  0  0  1  0  0 -1 2.00
-7  -1  0  0  1  0  0 -1 2.00
-11 -1 -1 -1 -1  1  1  1 2.00
-14 -1 -1 -1 -1  1  1  1 2.00
-10 -1 -1 -1 -1  1  1  1 2.00
-12 -1 -1 -1 -1  1  1  1 2.00
-13 -1 -1 -1 -1  1  1  1 2.00
-11 -1 -1 -1 -1  1  1  1 2.00
-12 -1 -1 -1 -1  1  1  1 2.00
-end data.
-
-do if B0 = -1 AND B1 = -1 AND B2 = -1.
-compute Bgrp = 4.
-end if.
-
-do if B0 = 0 AND B1 = 0 AND B2 = 1.
-compute Bgrp = 3.
-end if.
-
-do if B0 = 0 AND B1 = 1 AND B2 = 0.
-compute Bgrp = 2.
-end if.
-
-do if B0 = 1 AND B1 = 0 AND B2 = 0.
-compute Bgrp = 1.
-end if.
-])
-
-AT_DATA([type1.sps], [dnl
-include 'data-inc.sps'.
-
-glm dv by Agrp Bgrp
-       /method = sstype (1)
-       .
-
-glm dv by Agrp Bgrp
-       /method = sstype (1)
-       /design Bgrp Agrp Bgrp * Agrp
-       .
-])
-
-
-AT_CHECK([pspp -O format=csv type1.sps], [0],
-  [dnl
-Table: Tests of Between-Subjects Effects
-,Type I Sum Of Squares,df,Mean Square,F,Sig.
-Corrected Model,216.017,7,30.860,5.046,.001
-Agrp,9.579,1,9.579,1.566,.220
-Bgrp,186.225,3,62.075,10.151,.000
-Agrp × Bgrp,20.212,3,6.737,1.102,.364
-Error,183.457,30,6.115,,
-Total,3810.000,38,,,
-Corrected Total,399.474,37,,,
-
-Table: Tests of Between-Subjects Effects
-,Type I Sum Of Squares,df,Mean Square,F,Sig.
-Corrected Model,216.017,7,30.860,5.046,.001
-Bgrp,193.251,3,64.417,10.534,.000
-Agrp,2.553,1,2.553,.418,.523
-Bgrp × Agrp,20.212,3,6.737,1.102,.364
-Error,183.457,30,6.115,,
-Total,3810.000,38,,,
-Corrected Total,399.474,37,,,
-])
-
-
-AT_DATA([type2.sps], [dnl
-include 'data-inc.sps'.
-
-glm dv by Agrp Bgrp
-       /method = sstype (2)
-       .
-])
-
-
-AT_CHECK([pspp -O format=csv type2.sps], [0],
-  [dnl
-Table: Tests of Between-Subjects Effects
-,Type II Sum Of Squares,df,Mean Square,F,Sig.
-Corrected Model,216.017,7,30.860,5.046,.001
-Agrp,2.553,1,2.553,.418,.523
-Bgrp,186.225,3,62.075,10.151,.000
-Agrp × Bgrp,20.212,3,6.737,1.102,.364
-Error,183.457,30,6.115,,
-Total,3810.000,38,,,
-Corrected Total,399.474,37,,,
-])
-
-AT_CLEANUP
-
-
-
-AT_SETUP([GLM excluded intercept])
-AT_KEYWORDS([categorical categoricals])
-
-dnl  The following example comes from
-dnl
-dnl Rudolf N. Cardinal
-dnl Graduate-level statistics for psychology and neuroscience
-dnl ANOVA in practice, and complex ANOVA designs
-dnl Version of 2 May 2004
-dnl
-dnl Downloaded from: http://egret.psychol.cam.ac.uk/psychology/graduate/Guide_to_ANOVA.pdf
-
-AT_DATA([intercept-exclude.sps], [dnl
-set format = F20.3.
-
-data list notable list /depvar * A *.
-begin data.
-10     1
-14     1
-8      1
-7      1
-2      1
-10     1
-1      1
-3      1
-2      1
-8.5    1
-14.29  2
-18.49  2
-12.46  2
-11.63  2
-6.66   2
-14.02  2
-5.66   2
-7.06   2
-6.37   2
-13.26  2
-end data.
-
-GLM depvar by A
-   /intercept = exclude
-  .
-
-
-GLM depvar by A
-   /intercept = include
-  .
-
-])
-
-AT_CHECK([pspp -O format=csv intercept-exclude.sps], [0],
-  [dnl
-Table: Tests of Between-Subjects Effects
-,Type III Sum Of Squares,df,Mean Square,F,Sig.
-Model,1636.826,2,818.413,43.556,.000
-A,1636.826,2,818.413,43.556,.000
-Error,338.216,18,18.790,,
-Total,1975.042,20,,,
-
-Table: Tests of Between-Subjects Effects
-,Type III Sum Of Squares,df,Mean Square,F,Sig.
-Corrected Model,98.568,1,98.568,5.246,.034
-Intercept,1538.258,1,1538.258,81.867,.000
-A,98.568,1,98.568,5.246,.034
-Error,338.216,18,18.790,,
-Total,1975.042,20,,,
-Corrected Total,436.784,19,,,
-])
-
-AT_CLEANUP
-
-
-AT_SETUP([GLM missing values])
-AT_KEYWORDS([categorical categoricals])
-
-AT_DATA([glm.data], [dnl
-1 1 6  3.5
-1 2 2  8.9
-1 3 3  9.6
-1 4 4 10.5
-1 5 5  3.1
-1 6 1  5.9
-2 1 2  4.2
-2 2 6  1.9
-2 3 5  3.7
-2 4 3 10.2
-2 5 1  7.2
-2 6 4  7.6
-3 1 1  6.7
-3 2 4  5.8
-3 3 6 -2.7
-3 4 2  4.6
-3 5 3  4.0
-3 6 5 -0.7
-4 1 4  6.6
-4 2 1  4.5
-4 3 2  3.7
-4 4 5  3.7
-4 5 6 -3.3
-4 6 3  3.0
-5 1 3  4.1
-5 2 5  2.4
-5 3 4  6.0
-5 4 1  5.1
-5 5 2  3.5
-5 6 6  4.0
-6 1 5  3.8
-6 2 3  5.8
-6 3 1  7.0
-6 4 6  3.8
-6 5 4  5.0
-6 6 2  8.6
-])
-
-AT_DATA([glm-miss.sps], [dnl
-set format = F20.3.
-data list file='glm.data' notable  fixed /a 1 b 3 c 5 y 7-10(2).
-
-do if a=6.
-recode y (else=SYSMIS).
-end if.
-
-glm y by   b a c
-  /criteria=alpha(.05)
-  /design = a b c
-  .
-])
-
-AT_CHECK([pspp -O format=csv glm-miss.sps], [0],  [dnl
-Table: Tests of Between-Subjects Effects
-,Type III Sum Of Squares,df,Mean Square,F,Sig.
-Corrected Model,251.621,14,17.973,4.969,.002
-Intercept,628.376,1,628.376,173.737,.000
-a,72.929,4,18.232,5.041,.009
-b,20.703,5,4.141,1.145,.380
-c,135.179,5,27.036,7.475,.001
-Error,54.253,15,3.617,,
-Total,934.250,30,,,
-Corrected Total,305.874,29,,,
-])
-
-
-
-AT_DATA([glm-miss2.sps], [dnl
-set format = F20.3.
-data list file='glm.data' notable  fixed /a 1 b 3 c 5 y 7-10(2).
-
-select if a <> 6.
-
-glm y by   b a c
-  /criteria=alpha(.05)
-  /design = a b c
-  .
-])
-
-AT_CHECK([pspp -O format=csv glm-miss2.sps], [0],  [dnl
-Table: Tests of Between-Subjects Effects
-,Type III Sum Of Squares,df,Mean Square,F,Sig.
-Corrected Model,251.621,14,17.973,4.969,.002
-Intercept,628.376,1,628.376,173.737,.000
-a,72.929,4,18.232,5.041,.009
-b,20.703,5,4.141,1.145,.380
-c,135.179,5,27.036,7.475,.001
-Error,54.253,15,3.617,,
-Total,934.250,30,,,
-Corrected Total,305.874,29,,,
-])
-
-
-dnl Now for some missing values in the factor variables.
-
-AT_DATA([glm-miss3.sps], [dnl
-set format = F20.3.
-data list file=glm.data notable  fixed /a 1 b 3 c 5 y 7-10(2).
-
-do if a=6.
-recode a (else=SYSMIS).
-end if.
-
-glm y by   b a c
-  /criteria=alpha(.05)
-  /design = a b c
-  .
-])
-
-AT_CHECK([pspp -O format=csv glm-miss3.sps], [0],  [dnl
-Table: Tests of Between-Subjects Effects
-,Type III Sum Of Squares,df,Mean Square,F,Sig.
-Corrected Model,251.621,14,17.973,4.969,.002
-Intercept,628.376,1,628.376,173.737,.000
-a,72.929,4,18.232,5.041,.009
-b,20.703,5,4.141,1.145,.380
-c,135.179,5,27.036,7.475,.001
-Error,54.253,15,3.617,,
-Total,934.250,30,,,
-Corrected Total,305.874,29,,,
-])
-
-AT_CLEANUP
-
-AT_SETUP([GLM syntax errors])
-AT_DATA([glm.sps], [dnl
-DATA LIST LIST NOTABLE /x y z.
-GLM **.
-GLM x **.
-GLM x BY **.
-GLM x BY y.
-GLM x y BY z.
-GLM x BY y/MISSING=**.
-GLM x BY y/INTERCEPT=**.
-GLM x BY y/CRITERIA=**.
-GLM x BY y/CRITERIA=ALPHA **.
-GLM x BY y/CRITERIA=ALPHA(**).
-GLM x BY y/CRITERIA=ALPHA(123 **).
-GLM x BY y/METHOD=**.
-GLM x BY y/METHOD=SSTYPE **.
-GLM x BY y/METHOD=SSTYPE(4).
-GLM x BY y/METHOD=SSTYPE(2 **).
-GLM x BY y/DESIGN=**.
-GLM x BY y/DESIGN=x(y).
-GLM x BY y/DESIGN=x WITHIN y.
-])
-AT_CHECK([pspp -O format=csv glm.sps], [1], [dnl
-"glm.sps:2.5-2.6: error: GLM: Syntax error expecting variable name.
-    2 | GLM **.
-      |     ^~"
-
-"glm.sps:3.7-3.8: error: GLM: Syntax error expecting `BY'.
-    3 | GLM x **.
-      |       ^~"
-
-"glm.sps:4.10-4.11: error: GLM: Syntax error expecting variable name.
-    4 | GLM x BY **.
-      |          ^~"
-
-"glm.sps:6.1-6.3: error: GLM: Syntax error expecting `BEGIN DATA'.
-    6 | GLM x y BY z.
-      | ^~~"
-
-"glm.sps:6.1-6.3: error: GLM: Syntax error expecting end of command.
-    6 | GLM x y BY z.
-      | ^~~"
-
-"glm.sps:7.20-7.21: error: GLM: Syntax error expecting INCLUDE or EXCLUDE.
-    7 | GLM x BY y/MISSING=**.
-      |                    ^~"
-
-"glm.sps:8.22-8.23: error: GLM: Syntax error expecting INCLUDE or EXCLUDE.
-    8 | GLM x BY y/INTERCEPT=**.
-      |                      ^~"
-
-"glm.sps:9.21-9.22: error: GLM: Syntax error expecting `ALPHA@{:@'.
-    9 | GLM x BY y/CRITERIA=**.
-      |                     ^~"
-
-"glm.sps:10.21-10.28: error: GLM: Syntax error expecting `ALPHA@{:@'.
-   10 | GLM x BY y/CRITERIA=ALPHA **.
-      |                     ^~~~~~~~"
-
-"glm.sps:11.27-11.28: error: GLM: Syntax error expecting number.
-   11 | GLM x BY y/CRITERIA=ALPHA(**).
-      |                           ^~"
-
-"glm.sps:12.31-12.32: error: GLM: Syntax error expecting `@:}@'.
-   12 | GLM x BY y/CRITERIA=ALPHA(123 **).
-      |                               ^~"
-
-"glm.sps:13.19-13.20: error: GLM: Syntax error expecting `SSTYPE@{:@'.
-   13 | GLM x BY y/METHOD=**.
-      |                   ^~"
-
-"glm.sps:14.19-14.27: error: GLM: Syntax error expecting `SSTYPE@{:@'.
-   14 | GLM x BY y/METHOD=SSTYPE **.
-      |                   ^~~~~~~~~"
-
-"glm.sps:15.26: error: GLM: Syntax error expecting integer between 1 and 3 for SSTYPE.
-   15 | GLM x BY y/METHOD=SSTYPE(4).
-      |                          ^"
-
-"glm.sps:16.28-16.29: error: GLM: Syntax error expecting `@:}@'.
-   16 | GLM x BY y/METHOD=SSTYPE(2 **).
-      |                            ^~"
-
-"glm.sps:17.19-17.20: error: GLM: Syntax error expecting variable name.
-   17 | GLM x BY y/DESIGN=**.
-      |                   ^~"
-
-"glm.sps:18.20: error: GLM: Nested variables are not yet implemented.
-   18 | GLM x BY y/DESIGN=x(y).
-      |                    ^"
-
-"glm.sps:19.21-19.26: error: GLM: Nested variables are not yet implemented.
-   19 | GLM x BY y/DESIGN=x WITHIN y.
-      |                     ^~~~~~"
-])
-AT_CLEANUP