1. Home
  2. CENSOR procedure

CENSOR procedure

Pre-processes censored data before analysis by ANOVA (P.W. Lane).


PRINT = string token Whether to monitor convergence (monitor); default * implies no monitoring
TERM = formula Formula for lowest stratum residual term; no default – this option must be set
DESIGN = pointer Identifier specifying design information for ANOVA, or to save design information; default *
MAXCYCLE = scalar Maximum number of iterations; default 20


Y = variates Observed variate with censored values represented by values greater than or equal to the bound; no default – this parameter must be set
BOUND = scalars or variates Upper bound for censoring for each unit; no default – this parameter must be set
DF = scalars Estimated residual d.f. for lowest stratum, adjusting for censoring; default *
NEWY = variates Saves a variate with the censored values replaced by their estimates; if unset, the censored values are replaced in the original Y variate
SAVE = identifiers Save details of each analysis for use in subsequent ADISPLAY or AKEEP statements


An observation is said to be censored if it is known only that it is less than (or greater than) a particular value. Such observations can occur in designed experiments when the observed variable is the time until some event takes place for each experimental unit. For example, if the observed measurement is the lifetime of electric light-bulbs, it may happen that some bulbs are still alight when the experiment has to be concluded.

The response variate should be specified using the Y parameter, representing the censored values as values that are greater than or equal to the censoring bound. The bound is specified using the BOUND parameter, either as a scalar – if the bound is constant over the experiment – or as a variate of the same length as the response variate. Missing values in Y will be treated as usual, not as censored values. The procedure deals with the case of censoring with an upper bound. For a problem involving a lower bound, the structures in Y and BOUND should be multiplied by -1 before using the procedure (and the analysis interpreted accordingly).

The results for any experiment analysable by the ANOVA directive may be processed by the procedure. You must give BLOCKSTRUCTURE, TREATMENTSTRUCTURE and COVARIATE statements, as relevant, before using the procedure. If the analysis of the experiment requires a setting of the WEIGHTS, FACTORIAL, CONTRASTS or DEVIATIONS options of the ANOVA directive, you should give an ANOVA statement with these settings before using the procedure, setting the DESIGN option and then using the same identifier in the DESIGN option of CENSOR. The lowest stratum of the experiment must be identified explicitly in the BLOCKSTRUCTURE statement, rather than being implicitly taken as the *units* stratum by ANOVA; the model term representing this stratum must be specified using the TERM option of CENSOR. For example, a split-plot experiment with blocks might be specified by

BLOCKS block/plot/subplot

CENSOR [TERM=block.plot.subplot; ...

If you set the option PRINT=monitor, the procedure will print the values of the standard error of the lowest stratum at each cycle of the iterative estimation process. The maximum number of iterations is specified by the MAXCYCLE option, with a default of 20. The NEWY parameter allows you to specify a copy of the Y variate with the censored values replaced by their estimates. If NEWY is unset, the censored values are replaced in the original Y variate. The analysis of this variate can be displayed with ADISPLAY, or results saved with AKEEP. The save structure for the corresponding analysis of variance can be saved using the SAVE parameter.

The analysis will not be exact, due to the estimation of the censored values. However, the residual degrees of freedom in the lowest stratum may be corrected to the value output by the DF parameter (this is the absolute correction referred to by Taylor 1973; see the Method section).



The censored units in the observed variate are replaced by estimated values, using the method outlined by Taylor (1973). This method estimates the expected value of each censored observation iteratively conditional on the fact that the value must be greater than the fixed bound, and using the relevant information from the other observations in the experiment. The iterative process is deemed to have converged when the relative change in each fitted value, and in the stratum standard error, is less than 0.1%. If convergence is not reached within the number of iteractions specified by the MAXCYCLE option, a message will be printed and the process will terminate. This should occur only if there is a high proportion of censored values, or if the design affords no information about one or more of the censored values.

Action with RESTRICT

The Y variate can be restricted, but the BOUNDS variate must not be.


Taylor, J. (1973). The analysis of designed experiments with censored observations. Biometrics, 29, 35-43.

See also

Directive: ANOVA.

Commands for: Analysis of variance.


CAPTION 'CENSOR example',!t(\
  'Analysis of an experiment testing control of bolting in',\
  'sugar beet. Two chemicals were tested, Gibberellin and Ancymidol.',\
  'The number of days to bolting was recorded, but some plants did',\ 
  'not bolt before harvest (78 days after chemical treatment):',\ 
  'these were recorded as 99 days.'); STYLE=meta,plain
FACTOR  [NVALUES=90; LEVELS=3] gibb,ancy
&       [LEVELS=10] block
READ    days
  10 11  3 15 14 12 99 11 16 99
  18 12 14 23 11 12 10 14 10 26
  14 24 12 99 23 16 99 99 20 99
  11 11 11 10  7  7 10 11  1 10
   9 11 12  8  7  9 11 12 11 10
   1  3 12 11 11 14 12 11 11 15
   7  4  7 10  7  3 10 11 11 10
   3  7  5  2  7  7 10 11 11 12
  10 24 11 10 10  7 12 11 17  7 :
GENERATE    gibb,ancy,block
CALCULATE   logdays = LOG10(50+days)
&           bound   = LOG10(78)
CAPTION  !T('The experiment was a 3*3 factorial with 10 blocks:',\ 
         'ensure that the lower stratum is defined explicitly in the BLOCKS',\
         'statement so it can be referred to in the TERM option of CENSOR.')\
BLOCKS      block/(gibb.ancy)
TREATMENTS  gibb*ancy
CENSOR      [TERM=block.gibb.ancy] Y=logdays; BOUND=bound; DF=resdf
CAPTION  !T('Display the analysis, based on the values estimated for the',\
         'censored plants. The analysis should be adjusted using the',\ 
         'effective degrees of freedom calculated by the procedure.')
ADISPLAY    [PRINT=aov,means]
AKEEP       [FITTED=fitted]
PRINT       [SERIAL=yes] resdf
RESTRICT    fitted; logdays>=bound
CALCULATE   fitted,newdays = 10**fitted,logdays-50
CAPTION     'Display the values fitted to the censored observations.'
PRINT       days,newdays,fitted
Updated on February 6, 2023

Was this article helpful?