
@b@cSummarize


@bDescription

Choosing the summarize menu item generates a requestor window which allows
you to choose a single variable from those currently in memory. Selecting a
variable from this list (and, optionally, setting relevant boundaries in the
from and to fields) produces tabular output in the main display area.

The output includes a number of summary statistics, including mean, median,
variance, and standard deviation. This output is echoed to any log or texlog
files that are currently active.

The variance, standard deviation, and other higher moment statisitics are
affected by whether or not the "Assume Sample Data" box is activated in the
Preferences window. 

@bNotes

The median, first quartile, and third quartile routines are innacurate for
very small numbers of observations(ie. N<3). 


@bSee Also

Graph --> Histogram



@b@cCorrelation


@bDescription

The Correlation menu item allows you to choose two or more variables and
produces tabular output of the correlation between these variables. The
table shows the linear correlation coefficient (aka Pearson's r and
product-moment correlation coefficient). The value presented in parentheses
after this measure is a questionable test of the null hypothesis that the
absolute value of the correlation coefficient should be larger than that
observed. That is, small values mean the calculated coefficient is
significant (under a probably ridiculous set of assumptions).


@bNotes

See Numerical Recipes in C (pp. 636-39) for details.


@bSee Also

Analysis --> Regression



@b@cRegression


@bDescription

This calls up a variable selector that allows you to choose which variables
to include. The fitted values of the regression can be stored in a user
supplied variable name. 

The algorithm performed is standard OLS regression, with Gauss-Jordan
elimination. 


@bNotes

None



@b@cGA Fit


@bDescription

Selecting the GA Fit menu option brings up a large window which provides a
great deal of control over the genetic algorithm employed. What's a genetic
algorithm? Well, it's a method for searching through large solution spaces
using a process inspired by genetic evolution. In this context, the problem
is to fit an equation to the supplied data. You select the dependent
variable and as many independent variables as you wish. This defines an
equation such as:

	dependent = a +/- b1(independent1)^p1 +/- b2(independent2)^p2 ...

The algorithm has to figure out values for a, b, p, and choose between + and
- as operators. A potential solution is called a string, and consists of a
series of bits representing all these parameters. 

	The following options are available:

	Fitted		Supplied name where fitted values should be stored
	Overwrite	Flag to overwrite existing fitted values
	Force Incl.	Force at least one term for each independent var.
	Mutation    	Turn on/off mutation
	Crossover	Turn on/off crossover (data exchange)
	Perturbation	Turn on/off perturbation
	From		First observation for this run
	To		Last observation for this run
	Cycles		Number of iterations to perform
	Updates		How frequently to refresh the graphic feedback
	Mutate		Each bit faces a 1/value probability of mutating
	Pert		1/value probability of perturbing an estimate
	MaxR		The largest real value that a and b can take
	Bitsize		Length in bits of each real number segment
	Pool		The number of strings in existence
	Swap		Replace how many bad strings with best string
	Cross		1/value probability of strings exchanging data
	Tol		Tolerance (if strings get his close, stop)

The Go button will start the process running, and the user is presented with
visual feedback in the form of a bar chart. The height of the chart
indicates the average sum of squared deviations of the values that string
predicts from the actual values in the dependent variable. That is, the
higher the bar, the worse the fit. A red bar is such a bad fit that it is
more than 10 times worse than the best fit. A blue bar indicates values
between 10 times the best and the best. The current best fitting string is
indicated by a yellow bar.    

@bNotes

See John Holland, _Adaptation in Natural and Artificial Systems_ for
details of GAs. See Sigvaldason, "One Real Problem with Genetic Algorithms"
(working paper, 1996) for details of the perturbation operator (This paper
will soon be available via http://www.netcom.ca/~thor).



@b@cNN Fit


@bDescription

The NN Fit command tells xldlas to construct and fit a 1 hidden layer fully
forward connected backpropagation artifical neural network. What's that?
Well, you choose some variables to serve as the input(s) for a network,
decide how many nodes you want in the hidden layer, and choose a single
variable to be the output. Then xldlas fits the network; it uses an
error backpropagation algorithm to adjust the weights that connect nodes in
order to make the values of the output node as close as possible to the
values of the output variable.

To do this, xldlas automatically converts all input and output data to a
range between 0 and 1 (this change only occurs for the purposes of the
routine; your actual dataset will remain unchanged). There are a number of
options available:

	step		Use a step (discontinuous) squasher function
	straight		Use a linear squasher function
	sigmoid		Use the "standard" squasher function
	Use Annealing	Add some Noise to the adjustment process
	Overwrite	Overwrite existing Fitted Values	
	Cycles		Number of fitting iterations to perform
	From		Limit fitting to observations that begin here
	To      		Limit fitting to observations that end here
	Learn		Learning Speed (but high values may fit badly)
	PiCTex		Include PiCTeX image of net in TeXLog
	Hidden		Set the number of nodes in the Hidden Layer
	Fit:		Variable name for fitted values
		
Once fitting has terminated, values may be written to a Fit: variable, and
two tables of output appear. The first lists the various settings used,
while the second shows all the final weights associated with the network.
Since it is a full forward connected network, there is a weight that links
each input node to each hidden node and to the output node. There is also a
weight for each coonection between hidden nodes and the output mode. In,
addition, the Bias term for each hidden node and the output node is
included.

Can you do anything useful with this information? Probably not, although
xldlas might be handy for prototyping more complicated hand built networks
that might serve some practical purpose. Also, if your output variable
includes missing observations, NN Fit is a very nonlinear way to interpolate
missing values (or extrapolate into the future, provided the input
observations exist).



@bNotes

Consult any standard text on artificial neural networks for more
information.


@b@cANOVA


@bDescription

In general, analysis of variance (ANOVA) is used to test the hypothesis that
a number of samples have the same mean. The xldlas routines for ANOVA assume
that your data is in a specific form, namely that the variables you supply
in the ANOVA Variables browser are all similar samples.

There are two main routines, One Way ANOVA and Two Way ANOVA. The former
simply produces a standard Sum of Squares table that shows the variation
between variables (Between Groups) and within variables (Withing Groups).
The F Ratio is the calculated F statisitic (with relevant degrees of
freedom) for a null-hypothesis that the means are not equal, and Prob(F)
show the confidence of this test.

Two Way ANOVA allows you to choose a Block variable, to further break down
the variation in the data. The Block variable is divided into a number of
categories, set via the Block Categories: counter. This divides the data
in the selected ANOVA variables into a matrix, which can be thought of as
having one column for each ANOVA variable and one row for each category of
the Block Variable. If only one observation falls in each cell, then the
routine produces a 1 observation per cell ANOVA table. If multiple
observations fall in each cell, then within cell interaction is also
included in the output table. 

@bNotes

The ANOVA routines were based on Newbold, _Statistics for Business and
Economics_. They are thought to be innacurate for multiple cell entries
with varying entries per cell.
