X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fstatistics.texi;h=602f0ad57444d76cc4a701c4c900e495e6a36a81;hb=4fd6d0378134d9653966258f44b0b0f8db15fbd5;hp=75de355bd07bd0d9a263b8d47f1ad3eb1dd847e8;hpb=cee6f0eb54144da7034566fa1bcdcee22337ae6a;p=pspp diff --git a/doc/statistics.texi b/doc/statistics.texi index 75de355bd0..602f0ad574 100644 --- a/doc/statistics.texi +++ b/doc/statistics.texi @@ -1014,12 +1014,6 @@ In @code{TABLE}, each of @var{rows}, @var{columns}, and @var{layers} is either empty or an axis expression that specifies one or more variables. At least one must specify an axis expression. -@menu -* CTABLES Categorical Variable Basics:: -* CTABLES Scalar Variable Basics:: -* CTABLES Overriding Measurement Level:: -@end menu - @node CTABLES Categorical Variable Basics @subsubsection Categorical Variables @@ -1027,7 +1021,8 @@ An axis expression that names a categorical variable divides the data into cells according to the values of that variable. When all the variables named on @code{TABLE} are categorical, by default each cell displays the number of cases that it contains, so specifying a single -variable yields a frequency table: +variable yields a frequency table, much like the output of the +@code{FREQUENCIES} command (@pxref{FREQUENCIES}): @example CTABLES /TABLE=AgeGroup. @@ -1036,7 +1031,8 @@ CTABLES /TABLE=AgeGroup. @noindent Specifying a row and a column categorical variable yields a -crosstabulation: +crosstabulation, much like the output of the @code{CROSSTABS} command +(@pxref{CROSSTABS}): @example CTABLES /TABLE=AgeGroup BY qns3a. @@ -1121,15 +1117,24 @@ decide whether to treat it as categorical or scalar. Variables assigned the nominal or ordinal measurement level are treated as categorical, and scalar variables are treated as scalar. -Use the @code{VARIABLE LEVEL} command to change a variable's -measurement level (@pxref{VARIABLE LEVEL}). To treat a variable as -categorical or scalar only for one use on @code{CTABLES}, add -@samp{[C]} or @samp{[S]}, respectively, after the variable name. The -following example shows how to analyze the scalar variable @code{qn20} -as categorical: +When @pspp{} reads data from a file in an external format, such as a +text file, variables' measurement levels are often unknown. If +@code{CTABLES} runs when a variable has an unknown measurement level, +it makes an initial pass through the data to guess measurement levels +using the rules described earlier in this manual (@pxref{Measurement +Level}). Use the @code{VARIABLE LEVEL} command to set or change a +variable's measurement level (@pxref{VARIABLE LEVEL}). + +To treat a variable as categorical or scalar only for one use on +@code{CTABLES}, add @samp{[C]} or @samp{[S]}, respectively, after the +variable name. The following example shows the output when variable +@code{qn20} is analyzed as scalar (the default for its measurement +level) and as categorical: @example -CTABLES /TABLE qn20 [C] BY qns3a. +CTABLES + /TABLE qn20 BY qns3a + /TABLE qn20 [C] BY qns3a. @end example @psppoutput {ctables9} @@ -1145,14 +1150,17 @@ sets. @subsection Data Summarization The @code{CTABLES} command allows the user to control how the data are -summarized with summary specifications, which are enclosed in square -brackets following a variable name on the @code{TABLE} subcommand. -When all the variables are categorical, summary specifications can be -given for the innermost nested variables on any one axis. When a -scalar variable is present, only the scalar variable may have summary -specifications. The following example includes a summary -specification for column and row percentages for categorical -variables, and mean and median for a scalar variable: +summarized with @dfn{summary specifications}, syntax that lists one or +more summary function names, optionally separated by commas, and which +are enclosed in square brackets following a variable name on the +@code{TABLE} subcommand. When all the variables are categorical, +summary specifications can be given for the innermost nested variables +on any one axis. When a scalar variable is present, only the scalar +variable may have summary specifications. + +The following example includes a summary specification for column and +row percentages for categorical variables, and mean and median for a +scalar variable: @example CTABLES @@ -1172,6 +1180,31 @@ CTABLES /TABLE=AgeGroup [COLPCT 'Gender %' PCT5.0, @end example @psppoutput {ctables11} +In addition to the standard formats, @code{CTABLES} allows the user to +specify the following special formats: + +@multitable {@code{NEGPAREN@i{w}.@i{d}}} {Encloses all numbers in parentheses.} {@t{(42.96%)}} {@t{(-42.96%)}} +@item @code{NEGPAREN@i{w}.@i{d}} +@tab Encloses negative numbers in parentheses. +@tab @t{@w{ }42.96} +@tab @t{@w{ }(42.96)} + +@item @code{NEQUAL@i{w}.@i{d}} +@tab Adds a @code{N=} prefix. +@tab @t{@w{ }N=42.96} +@tab @t{@w{ }N=-42.96} + +@item @code{@code{PAREN@i{w}.@i{d}}} +@tab Encloses all numbers in parentheses. +@tab @t{@w{ }(42.96)} +@tab @t{@w{ }(-42.96)} + +@item @code{PCTPAREN@i{w}.@i{d}} +@tab Encloses all numbers in parentheses with a @samp{%} suffix. +@tab @t{@w{ }(42.96%)} +@tab @t{(-42.96%)} +@end multitable + Parentheses provide a shorthand to apply summary specifications to multiple variables. For example, both of these commands: @@ -1185,24 +1218,20 @@ produce the same output shown below: @psppoutput {ctables12} -The following sections list the available summary functions. - -@menu -* CTABLES Summary Functions for Individual Cells:: -* CTABLES Summary Functions for Groups of Cells:: -* CTABLES Summary Functions for Adjusted Weights:: -* CTABLES Unweighted Summary Functions:: -@end menu +The following sections list the available summary functions. After +each function's name is given its default label and format. If no +format is listed, then the default format is the print format for the +variable being summarized. @node CTABLES Summary Functions for Individual Cells @subsubsection Summary Functions for Individual Cells -This section lists the summary functions that can be applied to -individual cells in @code{CTABLES}. Only one such summary function, +This section lists the summary functions that consider only an +individual cell in @code{CTABLES}. Only one such summary function, @code{COUNT}, may be applied to both categorical and scale variables: @table @asis -@item @code{COUNT} (``Count'') +@item @code{COUNT} (``Count'', F40.0) The sum of weights in a cell. If @code{CATEGORIES} for one or more of the variables in a table @@ -1252,7 +1281,7 @@ The standard deviation. @item @code{SUM} (``Sum'') The sum. -@item @code{TOTALN} (``Total N'') +@item @code{TOTALN} (``Total N'', F40.0) The sum of weights in a cell. For scale data, @code{COUNT} and @code{TOTALN} are the same. @@ -1264,7 +1293,7 @@ Options}), or user-missing values excluded because @code{MISSING=EXCLUDE} is in effect on @code{CATEGORIES}, or system-missing values. @code{COUNT} does not count these. -@item @code{VALIDN} (``Valid N'') +@item @code{VALIDN} (``Valid N'', F40.0) The sum of valid count weights in included categories. @code{VALIDN} does not count missing values regardless of whether they @@ -1325,13 +1354,13 @@ each @var{area} described above, for both categorical and scale variables: @table @asis -@item @code{@i{area}PCT} or @code{@i{area}PCT.COUNT} (``@i{Area} %'') +@item @code{@i{area}PCT} or @code{@i{area}PCT.COUNT} (``@i{Area} %'', PCT40.1) A percentage of total counts within @var{area}. -@item @code{@i{area}PCT.VALIDN} (``@i{Area} Valid N %'') +@item @code{@i{area}PCT.VALIDN} (``@i{Area} Valid N %'', PCT40.1) A percentage of total counts for valid values within @var{area}. -@item @code{@i{area}PCT.TOTALN} (``@i{Area} Total N %'') +@item @code{@i{area}PCT.TOTALN} (``@i{Area} Total N %'', PCT40.1) A percentage of total counts for all values within @var{area}. @end table @@ -1339,7 +1368,7 @@ Scale variables and totals and subtotals for categorical variables may use the following additional group cell summary function: @table @asis -@item @code{@i{area}PCT.SUM} (``@i{Area} Sum %'') +@item @code{@i{area}PCT.SUM} (``@i{Area} Sum %'', PCT40.1) Percentage of the sum of the values within @var{area}. @end table @@ -1353,13 +1382,13 @@ the summary function without the @samp{E}-prefix: @itemize @bullet @item -@code{ECOUNT} (``Adjusted Count'') +@code{ECOUNT} (``Adjusted Count'', F40.0) @item -@code{ETOTALN} (``Adjusted Total N'') +@code{ETOTALN} (``Adjusted Total N'', F40.0) @item -@code{EVALIDN} (``Adjusted Valid N'') +@code{EVALIDN} (``Adjusted Valid N'', F40.0) @end itemize @node CTABLES Unweighted Summary Functions @@ -1371,16 +1400,16 @@ counts: @itemize @bullet @item -@code{UCOUNT} (``Unweighted Count'') +@code{UCOUNT} (``Unweighted Count'', F40.0) @item -@code{U@i{area}PCT} or @code{U@i{area}PCT.COUNT} (``Unweighted @i{Area} %'') +@code{U@i{area}PCT} or @code{U@i{area}PCT.COUNT} (``Unweighted @i{Area} %'', PCT40.1) @item -@code{U@i{area}PCT.VALIDN} (``Unweighted @i{Area} Valid N %'') +@code{U@i{area}PCT.VALIDN} (``Unweighted @i{Area} Valid N %'', PCT40.1) @item -@code{U@i{area}PCT.TOTALN} (``Unweighted @i{Area} Total N %'') +@code{U@i{area}PCT.TOTALN} (``Unweighted @i{Area} Total N %'', PCT40.1) @item @code{UMEAN} (``Unweighted Mean'') @@ -1395,7 +1424,7 @@ counts: @code{UMODE} (``Unweight Mode'') @item -@code{U@i{area}PCT.SUM} (``Unweighted @i{Area} Sum %'') +@code{U@i{area}PCT.SUM} (``Unweighted @i{Area} Sum %'', PCT40.1) @item @code{UPTILE} @i{n} (``Unweighted Percentile @i{n}'') @@ -1410,15 +1439,63 @@ counts: @code{USUM} (``Unweighted Sum'') @item -@code{UTOTALN} (``Unweighted Total N'') +@code{UTOTALN} (``Unweighted Total N'', F40.0) @item -@code{UVALIDN} (``Unweighted Valid N'') +@code{UVALIDN} (``Unweighted Valid N'', F40.0) @item -@code{UVARIANCE} (``Unweighted Variance'') +@code{UVARIANCE} (``Unweighted Variance'', F40.0) @end itemize +@node CTABLES Summarizing Missing Values +@subsubsection Summarizing Missing Values + +CTABLES treats missing values in categorical and scale variables +differently. For categorical variables, in most cases values that are +valid and in included categories are analyzed, and values that are +missing or in excluded categories are not analyzed. (@xref{CTABLES +Per-Variable Category Options}), for information on included and +excluded categories.) The following chart, in which cells that +contain ``yes'' indicate that a value is analyzed, and the notes below +it give the exact rules: + +@multitable {@headitemfont{System-Missing}} {Included Category} {Excluded Category} +@headitem @tab Included Category @tab Excluded Category +@item @headitemfont{Valid} @tab yes @tab --- +@item @headitemfont{User-Missing} @tab yes [*] @tab --- [+] +@item @headitemfont{System-Missing} @tab n/a [#] @tab --- [+] +@end multitable + +@table @asis +@item [*] +Exceptions: The ``@t{VALIDN}'' summary functions (@code{VALIDN}, +@code{EVALIDN}, @code{UVALIDN}, @code{@i{area}PCT.VALIDN}, and +@code{U@i{area}PCT.VALIDN}), which only count valid values in included +categories. + +@item [+] +Exceptions: The ``@t{TOTALN}'' summary functions (@code{TOTALN}, +@code{ETOTALN}, @code{UTOTALN}, @code{@i{area}PCT.TOTALN}), and +@code{U@i{area}PCT.TOTALN}, which count all values (valid and missing) +in included categories and missing (but not valid) values in excluded +categories. + +@item [#] +System-missing values are never in included categories. +@end table + +@noindent +The following table provides another view of the same information: + +@multitable {Missing values in excluded categories} {@code{VALIDN}} {other} {@code{TOTALN}} +@headitem @tab @code{VALIDN} @tab other @tab @code{TOTALN} +@item Valid values in included categories @tab yes @tab yes @tab yes +@item Missing values in included categories @tab --- @tab yes @tab yes +@item Missing values in excluded categories @tab --- @tab --- @tab yes +@item Valid values in excluded categories @tab --- @tab --- @tab --- +@end multitable + @node CTABLES Statistics Positions and Labels @subsection Statistics Positions and Labels @@ -1485,8 +1562,8 @@ CTABLES /TABLE AgeGroup BY qns3a. @t{ROWLABELS=OPPOSITE} or @t{COLLABELS=OPPOSITE} move row or column variable category labels, respectively, to the opposite axis. The -setting affects only the innermost variable on the given axis. For -example: +setting affects only the innermost variable or variables, which must +be categorical, on the given axis. For example: @example CTABLES /TABLE AgeGroup BY qns3a /CLABELS ROWLABELS=OPPOSITE. @@ -1500,6 +1577,50 @@ column variable category labels, respectively, to the layer axis. Only one axis's labels may be moved, whether to the opposite axis or to the layer axis. +@subsubheading Effect on Summary Statistics + +@code{CLABELS} primarily affects the appearance of tables, not the +data displayed in them. However, @code{CTABLES} can affect the values +displayed for statistics that summarize areas of a table, since it can +change the definitions of these areas. + +For example, consider the following syntax and output: + +@example +CTABLES /TABLE AgeGroup BY qns3a [ROWPCT, COLPCT]. +@end example +@psppoutput {ctables23} + +@noindent +Using @code{COLLABELS=OPPOSITE} changes the definitions of rows and +columns, so that column percentages display what were previously row +percentages and the new row percentages become meaningless (because +there is only one cell per row): + +@example +CTABLES + /TABLE AgeGroup BY qns3a [ROWPCT, COLPCT] + /CLABELS COLLABELS=OPPOSITE. +@end example +@psppoutput {ctables24} + +@subsubheading Moving Categories for Stacked Variables + +If @code{CLABELS} moves category labels from an axis with stacked +variables, the variables that are moved must have the same category +specifications (@pxref{CTABLES Per-Variable Category Options}) and the +same value labels. + +The following shows both moving stacked category variables and +adapting to the changing definitions of rows and columns: + +@example +CTABLES /TABLE (qn105ba + qn105bb) [COLPCT]. +CTABLES /TABLE (qn105ba + qn105bb) [ROWPCT] + /CLABELS ROW=OPPOSITE. +@end example +@psppoutput {ctables25} + @node CTABLES Per-Variable Category Options @subsection Per-Variable Category Options @@ -1523,7 +1644,7 @@ variables. @code{CATEGORIES} applies to the table produced by the @code{CATEGORIES} does not apply to scalar variables. -@t{VARIABLES} is required. List the variables for the subcommand +@t{VARIABLES} is required and must list the variables for the subcommand to affect. There are two way to specify the Categories to include and their sort @@ -1570,7 +1691,7 @@ A computed category name (@pxref{CTABLES Computed Categories}). Additional forms, described later, allow for subtotals. If multiple elements of the list cover a given category, the last one -in the list is considered to be a match. +in the list takes precedence. @item Implicit categories. Without an explicit list of categories, @pspp{} sorts @@ -1579,13 +1700,15 @@ categories automatically. The @code{KEY} setting specifies the sort key. By default, or with @code{KEY=VALUE}, categories are sorted by default. Categories may also be sorted by value label, with @code{KEY=LABEL}, or by the value -of a summary function, e.g.@: @code{KEY=COUNT}. For summary -functions, a variable name may be specified in parentheses, e.g.@: -@code{KEY=MAXIUM(qnd1)}, and this is required for functions that apply -only to scalar variables. The @code{PTILE} function also requires a -percentage argument, e.g.@: @code{KEY=PTILE(qnd1, 90)}. Only summary -functions used in the table may be used, except that @code{COUNT} is -always allowed. +of a summary function, e.g.@: @code{KEY=COUNT}. +@ignore @c Not yet implemented +For summary functions, a variable name may be specified in +parentheses, e.g.@: @code{KEY=MAXIUM(qnd1)}, and this is required for +functions that apply only to scalar variables. The @code{PTILE} +function also requires a percentage argument, e.g.@: +@code{KEY=PTILE(qnd1, 90)}. Only summary functions used in the table +may be used, except that @code{COUNT} is always allowed. +@end ignore By default, or with @code{ORDER=A}, categories are sorted in ascending order. Specify @code{ORDER=D} to sort in descending order. @@ -1598,9 +1721,10 @@ user-missing values. The system-missing value is always excluded. @subsubheading Totals and Subtotals @code{CATEGORIES} also controls display of totals and subtotals. -Totals are not displayed by default, or with @code{TOTAL=NO}. Specify -@code{TOTAL=YES} to display a total. By default, the total is labeled -``Total''; use @code{LABEL="@i{label}"} to override it. +Totals are not displayed with @code{TOTAL=NO}, which is also the +default. Specify @code{TOTAL=YES} to display a total. By default, +the total is labeled ``Total''; use @code{LABEL="@i{label}"} to +override it. Subtotals are also not displayed by default. To add one or more subtotals, use an explicit category list and insert @code{SUBTOTAL} or @@ -1611,16 +1735,18 @@ categories that make up the subtotal. Either way, the default label is ``Subtotal'', use @code{SUBTOTAL="@i{label}"} or @code{HSUBTOTAL="@i{label}"} to specify a custom label. -By default, or with @code{POSITION=AFTER}, totals come after the last -category and subtotals apply to categories that precede them. With -@code{POSITION=BEFORE}, totals come before the first category and -subtotals apply to categories that follow them. +By default, or with @code{POSITION=AFTER}, totals are displayed in the +output after the last category and subtotals apply to categories that +precede them. With @code{POSITION=BEFORE}, totals come before the +first category and subtotals apply to categories that follow them. Only categorical variables may have totals and subtotals. Scalar variables may be ``totaled'' indirectly by enabling totals and subtotals on a categorical variable within which the scalar variable is summarized. +@c TODO Specifying summaries for totals and subtotals + @subsubheading Categories Without Values Some categories might not be included in the data set being analyzed. @@ -1630,9 +1756,10 @@ younger'' age group. By default, or with @code{EMPTY=INCLUDE}, them, specify @code{EMPTY=EXCLUDE}. For implicit categories, empty categories potentially include all the -values with labels for a given variable; for explicit categories, they -include all the values listed individually and all labeled values -covered by ranges or @code{MISSING} or @code{OTHERNM}. +values with value labels for a given variable; for explicit +categories, they include all the values listed individually and all +values with value labels that are covered by ranges or @code{MISSING} +or @code{OTHERNM}. @node CTABLES Titles @subsection Titles @@ -1645,10 +1772,33 @@ covered by ranges or @code{MISSING} or @code{OTHERNM}. @end display The @code{TITLES} subcommand sets the title, caption, and corner text -for the table output for the previous @code{TABLE} subcommand. The -title appears above the table, the caption below the table, and the -corner text appears in the table's upper left corner. By default, the -title is ``Custom Tables'' and the caption and corner text are empty. +for the table output for the previous @code{TABLE} subcommand. Any +number of strings may be specified for each kind of text, with each +string appearing on a separate line in the output. The title appears +above the table, the caption below the table, and the corner text +appears in the table's upper left corner. By default, the title is +``Custom Tables'' and the caption and corner text are empty. With +some table output styles, the corner text is not displayed. + +The strings provided in this subcommand may contain the following +macro-like keywords that @pspp{} substitutes at the time that it runs +the command: + +@table @code @c ( +@item )DATE +The current date, e.g.@: MM/DD/YY. The format is locale-dependent. + +@c ( +@item )TIME +The current time, e.g.@: HH:MM:SS. The format is locale-dependent. + +@c ( +@item )TABLE +The expression specified on the @code{TABLE} command. Summary +and measurement level specifications are omitted, and variable labels are used in place of variable names. +@end table + +@c TODO example @node CTABLES Table Formatting @subsection Table Formatting @@ -1667,13 +1817,13 @@ The @code{FORMAT} subcommand, which must precede the first tables. @code{FORMAT} and all of its settings are optional. Use @code{MINCOLWIDTH} and @code{MAXCOLWIDTH} to control the minimum -or maximum width of columns in output tables. By default, or with +or maximum width of columns in output tables. By default, with @code{DEFAULT}, column width varies based on content. Otherwise, specify a number for either or both of these settings. If both are -specified, @code{MAXCOLWIDTH} must be bigger than @code{MINCOLWIDTH}. -The default unit, or with @code{UNITS=POINTS}, is points (1/72 inch), -but specify @code{UNITS=INCHES} to use inches or @code{UNITS=CM} for -centimeters. +specified, @code{MAXCOLWIDTH} must be greater than or equal to +@code{MINCOLWIDTH}. The default unit, or with @code{UNITS=POINTS}, is +points (1/72 inch), or specify @code{UNITS=INCHES} to use inches or +@code{UNITS=CM} for centimeters. By default, or with @code{EMPTY=ZERO}, zero values are displayed in their usual format. Use @code{EMPTY=BLANK} to use an empty cell @@ -1703,7 +1853,7 @@ variables listed on @code{VARIABLES}. The supported values are: @table @code @item DEFAULT -Uses the setting from @ref{SET TVARS}. +Use the setting from @code{SET TVARS} (@pxref{SET TVARS}). @item NAME Show only a variable name. @@ -1802,30 +1952,33 @@ in @code{EXPR(@dots{})}. A postcompute expression consists of: This form evaluates to the summary statistic for @i{category}, e.g.@: @code{[1]} evaluates to the value of the summary statistic associated with category 1. The @i{category} may be a number, a quoted string, -or a quoted time or date value, and all of the categories for a given -postcompute must have the same form. +or a quoted time or date value. All of the categories for a given +postcompute must have the same form. The category must appear in all +the @code{CATEGORIES} list in which the postcompute is used. @item [@i{min} THRU @i{max}] @itemx [LO THRU @i{max}] @itemx [@i{min} THRU HI] @itemx MISSING @itemx OTHERNM -These forms evaluate to the summary statistics for categories matching -the given syntax, as described in previous sections (@pxref{CTABLES -Explicit Category List}). If more than one category matches, their -values are summed. +These forms evaluate to the summary statistics for a category +specified with the same syntax, as described in previous section +(@pxref{CTABLES Explicit Category List}). The category must appear in +all the @code{CATEGORIES} list in which the postcompute is used. @item SUBTOTAL The summary statistic for the subtotal category. This form is allowed -only for variables with exactly one subtotal. +only if the @code{CATEGORIES} lists that include this postcompute have +exactly one subtotal. @item SUBTOTAL[@i{index}] The summary statistic for subtotal category @i{index}, where 1 is the first subtotal, 2 is the second, and so on. This form may be used for -any number of subtotals. +@code{CATEGORIES} lists with any number of subtotals. @item TOTAL -The summary statistic for the total. +The summary statistic for the total. The @code{CATEGORIES} lsits that +include this postcompute must have a total enabled. @item @i{a} + @i{b} @itemx @i{a} - @i{b} @@ -1892,14 +2045,16 @@ by computed categories are displayed like other categories. Use The @code{WEIGHT} subcommand is optional and must appear before @code{TABLE}. If it appears, it must name a numeric variable, known as the @dfn{effective base weight} or @dfn{adjustment weight}. The -effective base weight variable is used for the @code{ECOUNT}, -@code{ETOTALN}, and @code{EVALIDN} summary functions. - -Cases with zero, missing, or negative effective base weight are -excluded from all analysis. +effective base weight variable stands in for the dictionary's weight +variable (@pxref{WEIGHT}), if any, in most calculations in +@code{CTABLES}. The only exceptions are the @code{COUNT}, +@code{TOTALN}, and @code{VALIDN} summary functions, which use the +dictionary weight instead. Weights obtained from the @pspp{} dictionary are rounded to the -nearest integer. Effective base weights are not rounded. +nearest integer at the case level. Effective base weights are not +rounded. Regardless of the weighting source, @pspp{} does not analyze +cases with zero, missing, or negative effective weights. @node CTABLES Hiding Small Counts @subsection Hiding Small Counts