DFT-SPEC:  Specify a diffusion tree model, or display existing spec.

Dft-spec creates a log file containing the specifications for a
Dirichlet diffusion tree model, along with the associated priors over
hyperparameters.  When invoked with just a log file as an argument, it
displays the specifications stored in that log file.

Usage:

    dft-spec log-file N-inputs N-targets { / SD-prior c0 [ c1 [ c2 ] ] }

or:

    dft-spec log-file

N-inputs and N-targets are the numbers of input variables and target
variables in the model.  The model tries to represent the joint
distribution of the targets.  At present, the number of inputs
(N-inputs) must be 0, but in future, input variables may be allowed,
in which case the model will define a joint conditional distribution
for the target values given observed values for the inputs.

One or more specifications for Dirichlet diffusion trees must follow
the number of targets.  The values at the terminal nodes of all these
trees are added together to give the values used to model the observed
data.  Each specification starts with a prior for the standard
deviations of the diffusion process for each variable, in a two-level
hierarchical form, in which a top level standard deviation common to
all variables gives the centre of the prior for the standard deviation
for each individual variable.  For the syntax of hierarchical prior
specifications, see prior.doc.  Note that levels in the hierarcy can
be omitted, and in particular, a prior specification that is just a
number produces a degenerate prior in which the parameter is fixed at
that number.

The remainder of the specification for a diffusion tree is the prior
for the parameters of the divergence function.  At present, divergence
functions of the following form are supported:

    a(t) = c0 + c1/(1-t) + c2/(1-t)^2

Priors for the parameters c0, c1, and c2 are specified in the same
format as the standard deviation prior, except that there is only one
level.  A simple number makes the corresponding parameter be a
constant, and specifying zero or "-" eliminates the corresponding
term.  If c2 and/or c1 are omitted, they default to zero.

The specification of the overall model is completed using the
model-spec command (see model-spec.doc), which specifies whether the
model is for binary or real data.  

For real data, model-spec specifies the prior for the "noise" standard
deviations, in a three-level hierarchical form, which allows for a
top-level standard deviation common to all target values, giving the
centre of the prior distribution for the standard deviation for each
target value.  If there are only two levels, the distribution of the
data is normal with this noise standard deviation and with mean given
by the sum of the values from the diffusion trees.  If a third level
is given, the data has a t distribution with degrees of freedom given
by the third alpha value.

For binary data, the probability that a target is 1 is 1/(1+exp(-v)),
where v is the latent value for that variable, which is the sum of the
diffusion values from the diffusion trees.

If no data model is specified, the data is assumed to be real valued,
and to have no additional noise (ie, the diffusion tree(s) directly
produce the observed values).

Note: There is no way at present to make the diffusion trees have
anything other than zero means for each variable, but you can get an
equivalent effect by transforming the target values by subtracting a
constant, as described in data-spec.doc.

            Copyright (c) 1995-2003 by Radford M. Neal