
\chapter{OODA Context and Related Areas\label{chapC:BackgroundRelatedAreas}}

This chapter discusses the origins of the \index{OODA terminology!origins}OODA
terminology in Sections \ref{secC1:History-and-Terminology} and \ref{secC5:OODA-analogy-OOP}.
Other related types of general statistical frameworks are described
in Sections \ref{secC2:Compositional-Data-Analysis} and \ref{secC3:Symbolic-Data-Analysis}.

\section{History and Terminology\label{secC1:History-and-Terminology} }

The terminology Object Oriented Data Analysis (OODA) has a clear connection
to the notion of \emph{Object Oriented Programming\index{Object Oriented Programming|(}}
(OOP) from Computer Science. A good definition of OOP is: \emph{Programming
that supports encapsulation, inheritance, polymorphism and abstraction}.
More detail on this connection appears in Section \ref{secC5:OODA-analogy-OOP}.

The use of these concepts in a statistical context was pioneered by
John M. Chambers and colleagues at the former Bell Laboratories, through
the development of the statistical software package S and subsequently
S-Plus. See \citet{VenablesRipley1994,VenablesRipley2013} for a good
overview. An important historical point is that S was a major precursor
of the currently very popular statistical software package R \citep{Rproject2014}.
A common misconception is that the name R was chosen as the letter
before S. In fact it was in part from the first initial of the co-founders
Robert Gentleman and Ross Ihaka.

OODA itself has its roots in the concept of FDA\index{functional data analysis},
which was pioneered by James O. Ramsay and colleagues, see the monographs
by \citet{RamsaySilverman2002,RamsaySilverman2005} and \citet{FerratyVieu2006}
for good overview of this area. While this use of ``functional''
is now quite standard in statistics, it is problematic for researchers
with a strong mathematical training, because in that area a \emph{functional}
is essentially a function which maps functions into numbers (or more
generally maps a vector space into its underlying field of scalars).
Personal discussion with James O. Ramsay led to the realization that
the notion of \emph{data objects}\index{data objects|(}, i.e. atoms
of the statistical analysis as discussed in Chapter \ref{chap1B:Breadth-of-OODA},
provides the basis of this way of thinking, which led to the coining
of the term OODA in \citet{WangMarron2007}.

The perceived value of scientific naming is an interesting cultural
issue. Computer scientists seem to enjoy coining many names, trying
them out for a while and then frequently abandoning most of them,
except for the few that are viewed as having ``gained traction''.
In contrast statisticians have a noticeable tendency to be very careful,
in fact are usually quite conservative, about applying new names.
Some have observed that at statistical meetings there tends to be
too strong a focus on a rather few fashionable areas. At the time
of this writing \emph{sparsity\index{sparsity}} and \emph{FDA} are
the over-represented areas, in the past the perhaps overly dominant
areas included \emph{kernel smoothing\index{smoothing}} and \emph{robustness}.
A natural question at this point is whether this apparent narrowness
of fashionable research is a consequence of the reluctance to seek
new names. 

The terminology OODA itself has raised objections on occasion. For
example, \citet{LuHaalandMarron2014} contains an example demonstrating
the value of the OODA viewpoint. The example came from the desire
to automate the basic biological science practice of growing cells
in \emph{wells} on a plate. A challenging part of that automation
was making the decision of when to move a subset of the cells to a
new well based on digital images\index{data objects!images|(}, because
they have grown to fill the capacity of the current well. The issue
of what should be the data objects, between features summarizing aspects
of the whole well (e.g. cell counts) and feature\index{feature!well vs. cell}s
of individual cells (e.g. shape and size aspects), turned out to be
pivotal to the investigation and even led to some interesting theoretical
work discussed in that paper. An early submission of that paper was
rejected by a well known journal on the grounds that the terminology
of ``data objects'' did not bring added value over the more traditional
``experimental units''. This point made sense for that particular
project, but is limited in the context of the larger data analytic
picture. In particular, generally choice of data objects includes
not only experimental units, but also \index{data representation|(}data\index{data}
representation issues, for example the choice of original versus log
scale\index{scale!log} illustrated in Figure \ref{fig:Mortality-Raw}
of Section \ref{sec:Curves-as-Data}, the choice to focus on amplitude\index{amplitude!variation}
and/or phase variation in Section \ref{sec:Amplitude-and-Phase},
the choice of shape or tree\index{tree|(} representation discussed
in Sections \ref{sec:Shapes-as-Data} and \ref{sec:Tree-Structured-Data},
and which aspect of sounds an analysis should be centered upon in
Section \ref{sec:Sounds-as-Data}. 

The discussion of the overview paper by \citet{MarronAlonso2014}
covers quite a few other interesting aspects of OODA.

In some situations, there have been variations on the name OODA. For
example, in 2010-2011 the Statistics and Applied Mathematical Sciences
Institute hosted a program on OODA under the name Analysis of Object
Data. That version of the name is also prominently featured in the
monograph \citet{PatrangenaruEllingson2016}, which provides an important
overview of statistical analysis for data lying in manifolds and \index{stratified space}stratified
spaces. However, Piercesare Secchi has pointed out that inclusion
of Oriented in OODA is quite appropriate in the sense that careful
consideration of the data objects indeed tends to \emph{orient} the
analysis.\index{data objects|)}

\section{OODA Analogy with Object-Oriented Programming\label{secC5:OODA-analogy-OOP}}

In Object-Oriented Programming (OOP) there are many important concepts,
including classes, objects, inheritance, methods, modularity, abstraction,
encapsulation, extensibility, and polymorphism \citep{Pittwhit12}.
An object is an instance of a class in OOP, and so we can consider
the different types of data spaces in OODA as being analogous to OOP
classes, and the datasets that lie in the spaces as being analogous
to OOP objects. The classes in OOP often have a tree-like relationship,
with a base class at the root and different levels of derived classes
below the root. Each class in OOP has functionality (including variables
and methods) and this functionality is inherited by the derived classes.
From \citet[p9]{Pittwhit12} inheritance is probably the most important
aspect of OOP for the facilitation of interoperability.

To highlight the connection between OODA and OOP, we show how OODA
concepts can naturally be put into an OOP type framework in Figure
\ref{figC-A:OOPvsOODA}. 

\begin{figure}[H]
\hskip -1cm\includegraphics[scale=0.4]{ChapterC/OODAbookChpCFigAOOPvsOODA}

\caption{Relationships between OOP and OODA.\label{figC-A:OOPvsOODA}}
\end{figure}
The \emph{base class} in our example consists of all types of data
spaces in OODA. \emph{Methods} in the base class could be basic statistical
operations such as univariate summary statistics, histograms, pairwise
scatterplots\index{scores!scatterplot}, which are building blocks
that are appropriate to calculate for any type of dataset. Then the
\emph{derived classes} in the example are a subdivision of the types
of data space, for example Euclidean-type data spaces, Riemannian
manifolds, tree data space, etc. which require different methods of
calculation for similar concepts. The methods at this level could
be calculation of a mean or PCA calculation, for example. In OOP the
derived classes \emph{inherit the functionality} of the base class,
in particular the base class methods are all applicable exactly in
an unaltered form to the derived classes (they are inherited). This
is true in our example for OODA, where the calculation of a histogram
for example can be appropriate for any type of data.

There is a \emph{further} level of derived class, e.g. different classes
derived from Euclidean data, e.g. vectors, matrices, images, functions
which all have the same method of mean and PCA calculation (which
is inherited from the Euclidean class) but some other methods/calculations
might need to be specified differently at this level.

The strict OOP analogy is that a sample of data objects in the OODA
sense would be an \emph{object }in the OOP sense. The choice of data
object and its space in OODA drives the type of analysis and methods
in a similar way that an OOP program is constructed.

The analogy can be extended. In \index{OOP!polymorphism}OOP \emph{polymorphism}
is where the same code can be used for a variety of objects, and so
for example computing PCA based on a Euclidean covariance matrix is
useful not just for computing the Euclidean data-type PCA, but also
for computing PCA in shape analysis using tangent space coordinates.
The same code is used in both methods, but the inner workings are
kept hidden from the user (OOP \emph{encapsulation}\index{OOP!encapsulation}).
That code can be extended, e.g. PCA in Euclidean data can be extended
to PCA for shape data using a tangent space (\index{OOP!extensibility}OOP
\emph{extensibility}). The essential features and methods of a class
are put in one place but the inner details are easily ignored by the
user (\index{OOP!abstraction}OOP \emph{abstraction}).

We should stress that OODA is not OOP, and so it is \emph{not} our
intention to build an actual single computer program to carry out
OODA. Rather the building blocks of OODA are analogous to those of
OOP, particularly with the choice of data objects and classes driving
the appropriate methodology and analysis.

Users of R are familiar with aspects of OOP\index{Object Oriented Programming|)},
where the objects are instances of classes, e.g. objects from the
linear model fitting command \texttt{lm} or \texttt{aov} are instances
of S3 classes which can then have methods applied to them like \texttt{summary}
or \texttt{coef}. In our example the object is a dataset which is
a member of a class (Euclidean, Shape, Tree\index{tree|)} etc.) and
then a generic method that can be applied is \texttt{mean} or \texttt{pca}
for example, although the implementation details may be different
``under the hood'' for datasets in different classes.

\section{Compositional Data Analysis\label{secC2:Compositional-Data-Analysis} }

The\index{data objects!compositional|(} field of statistical \emph{\index{compositional data analysis}compositional
data analysis} goes back at least to \citet{Aitchison1982} and has
connections to OODA. The original motivation was the study of variation
in geological composition, in terms of vectors of proportions. 

Data objects in that context were typically vectors $\boldsymbol{x}\in\mathbb{R}^{d}$,
each entry of which is the proportion of a given material in the geological
sample. Note that each such object $\boldsymbol{x}=\left(x_{1},\cdots,x_{d}\right)$
is a point on the unit simplex in $\mathbb{R}{}^{d}$, i.e. $x_{j}\geq0$
for $j=1,\cdots,d$ and $\sum_{j=1}^{d}x_{j}=1$. 

Good insight can come from considering such data objects to be \emph{probability
vectors}\index{probability vectors}, as is common in Markov Chains,
see e.g. \citet{Hastings1970MCMC}. In econometrics terminology, such
data objects are sometimes called \emph{fractional responses}\index{fractional responses},
see \citet{PapkeFractionalResponse1993,PapkeFractionalResponse2008}
and \citet{MurteiraFractionalData2016}.

Data objects restricted to the unit simplex create some serious statistical
challenges. For example, standard Euclidean analysis methods such
as PCA (see Sections \ref{sec:Curves-as-Data} and \ref{secBA.1:Foundations_Terminology}
and Chapter \ref{chapP:PCA-Details}), or even use of the Gaussian
distribution for statistical inference become clumsy at best, because
such methodologies tend to leave the unit simplex. Other examples
of naive analyses tending to leave the feature space\index{feature space}
include covariance matrices as data objects\index{data objects!covariance matrices}
in Section \ref{subsec:Covariance-matrix-distances} and phase data
objects as discussed around Figure \ref{figH.L:ToyNoSphere}. 

An often advocated choice of data object in this context is the \emph{log-ratio}
method, developed by \citet{AitchisonShen1980} and \citet{Aitchison1982,Aithchison1986}.
This approach has worked well in many analyses, and is especially
appropriate when the primary focus is on \emph{ratios} of different
amounts. However, in other situations, there can be a cost of some
distortion, particularly when some entries are 0 or near 0. This has
motivated other data objects choices for compositional data analysis,
such as the square root transform which moves the data from the unit
simplex to the unit sphere, in e.g. \citet{ScealyWelsh2011}. Other
power transformation\index{transformation!power}s have been proposed
and studied by \citet{TsagrisWood2011} and \citet{Scealy12015}.
\citet{ButlerGlasbey2008} address this issue using a latent Gaussian
modeling approach, while \citet{StewartField2011} took a mixture
modeling approach. \citet{ScealyWelsh2014} provide a fascinating
historical discussion of major controversy that has occurred over
such data object choices.

See Section \ref{secJ-D:DWD} and \citet{XiongDittmerMarron2015}
for a quite different example of data objects on the unit simplex,
in the context of virus hunting using DNA methods. That paper also
considered unit sphere versus simplex data object representations
and found the best performance in that case came from working directly
on the unit simplex.\index{data objects!compositional|)}

\section{Symbolic Data Analysis\label{secC3:Symbolic-Data-Analysis}}

Another\index{data objects!symbolic|(} statistical area related to
OODA is \emph{Symbolic Data Analysis}\index{Symbolic Data Analysis|(},
see the books \citet{BockDiday2012Symbolic} and \citet{BillardDiday2006Symbolic}.
The goal of that area is to find intuitive summaries of various aspects
of relational databases. These summaries are called \emph{symbols}\index{symbols},
which are distributional summaries, such as ranges (intervals), frequencies
(for categorical variables), histograms or quantile\index{quantile}s.
There are at least two levels of relationship between Symbolic Data
Analysis and OODA. First symbols (e.g. probability densities) are
often the data objects of interest. Second, given any set of data
objects, the large and well developed set of Symbolic Data Analysis
ideas can provide a number of types of useful summarizations of object
oriented data via symbols of the data set. In particular, many specialized
methods and software suites from that literature are very useful for
analyzing symbols as data objects. For good recent access see \citet{Diday2016WIREs}
and \citet{Verde2016SDAdimred}.

There are several different types of symbolic data, and in particular
there is \emph{native} \index{symbolic data!native}symbolic data
and \emph{aggregated} symbolic data\index{symbolic data!aggregated}.
Native symbolic data may be recorded in original form, e.g. as numbers
or even as an interval $[0.2-0.4]$ perhaps as a range of values capturing
uncertainty in an expert's opinion, \citet{Ellerby2020Symbolic}.
Aggregated data may be a summary of data that were recorded at a finer
stage, e.g. a histogram of values. \citet{BillardDiday2006Symbolic}
and \citet{Diday1986,Diday2016WIREs} outline some of the benefits
of treating data as symbolic data rather than classical data. 

An example of some symbolic data is given below from the RSDA package
in R, \citet{Rodriguez2020SymbolicR}. The approach to analyzing symbolic
data has analogies with OODA. In particular it is important to consider
what are the most appropriate data objects. For example should interval
data be considered as uniform probability distributions, or a type
of indicator function\index{indicator function}al data (1 if in the
interval and 0 otherwise, as defined at (\ref{eqJ.A:LinearClasser})),
or perhaps a Gaussian random variable centered at the middle of the
interval and standard deviation a quarter of the interval width? What
distances should be used for comparing intervals, for example perhaps
the Euclidean distance between end points, the $L^2$ norm or Hausdorff
distance\index{distance!Hausdorff}? 

\begin{footnotesize}
\begin{center}
\begin{verbatim} 
# A Symbolic Data Table :  7  x  7          
       F1      F2                    F3   F4        F5          F6      F7 
Case1  2.8   [1,2] M1:10% M2:70% M3:20%     6 {e,g,i,k}      [0,90]  [9,24] 
Case2  1.4   [3,9] M1:60% M2:30% M3:10%     8 {a,b,c,d}    [-90,98]  [-9,9] 
Case3  3.2  [-1,4] M1:20% M2:20% M3:60%    -7 {2,b,1,c}     [65,90] [65,70] 
Case4 -2.1   [0,2] M1:90% M2:0%  M3:10%     0 {a,3,4,c}     [45,89] [25,67] 
Case5   -3 [-4,-2] M1:60% M2:0%  M3:40%  -9.5 {e,g,i,k}     [20,40]  [9,40] 
Case6  0.1 [10,21] M1:0%  M2:70% M3:30%    -1   {e,1,i}       [5,8]   [5,8] 
Case7    9  [4,21] M1:20% M2:20% M3:60%   0.5   {e,a,2} [3.14,6.76]   [4,6]

\end{verbatim}
\end{center}
\end{footnotesize}

The example dataset above consists of seven cases (in each of the
rows) and there are four different types of data: F1, F4 continuous
data; F2, F6, F7 interval data; F3 histogram data; F5 set valued data.
Variables F1, F4 are simply standard classical continuous data. F2,
F6, F7 contain interval data for which we need to have appropriate
methods for carrying out analysis such as computing means, PCA and
cluster analysis\index{cluster analysis}. Similarly the data types
F3 (Histogram) and F5 (set valued) also require special methods for
statistical analysis. Combining the analysis of different data types
would be a challenge, although generalizations of the multi-block
methods of Section \ref{secP-B:TwoBlockDecomp} are an appropriate
way forward. 

Let us consider some further interval data from the dataset {\tt Lynne2}
from the RSDA package, which is a dataset of $15$ individuals with
interval measurements on pulse rate, systolic blood pressure and diastolic
blood pressure. We treat the intervals as uniform distributions and
the interval-valued means are calculated from the arithmetic averages
of the lower and upper end-points of each interval. This method of
calculation results from the use of interval arithmetic, see \citet{Moore2009IntervalAnal}.
The sample interval means are as follows: for pulse rate $[63.47,81.73]$,
systolic pressure $[125.8,154.7]$, diastolic pressure $[85.8,105.53]$.
This interval mean estimator is also equivalent to the Fr\'echet
mean\index{Fréchet mean} (discussed in Section \ref{secE.1:Fr=0000E9chet-mean})
with respect to Euclidean distance between the 2-vector of lower and
upper end-points. In Figure \ref{fig:Symbolic-histograms} we see
symbolic histograms and symbolic scatter plots of the data, using
the same visually linked graphics matrix format as in Figure \ref{fig:50d-ToyPCAScatMat}
(for the Twin Arches data\index{Twin Arches data}) and many others.
The symbolic histograms are obtained by superimposing uniform distributions
on each interval, and then binning. The symbolic scatter plots include
a rectangle for each case, where the corners of the rectangles are
at the coordinates of the combinations of lower and upper end-points.
These plots are obtained using the {\tt RSDA} package (Version 2.0).
The bottom and left panels all reveal a clear outlier in diastolic
pressure. The middle right panel indicates a positive mostly linear
association between systolic and diastolic pressures, while the middle
left panel suggests a quadratic association between pulse rate and
systolic pressure. 

\begin{figure}[H]
\includegraphics[scale=0.35]{ChapterC/lynne2matrixplot}

\caption{Symbolic histograms and scatterplots of the three dimensional {\tt Lynne2}
blood measurement interval data. Finds interesting relationships between
variables and a clear outlier. \label{fig:Symbolic-histograms}}
\end{figure}
Further analysis, much in the spirit of other analyses given in this
book can be carried out using the RSDA package.

An important historical note is that the terminology Symbolic Data
Analysis\index{Symbolic Data Analysis|(} came well before OODA, going
back at least to \citet{Diday1986}. \index{data objects!symbolic|)}

\section{Other Research Areas\label{secC3:Other-Research-Areas}}

There are several other areas, not discussed in detail here, where
OODA ideas and terminology are potentially very useful, mostly because
of the many complicated research questions that are typically addressed
there. 

One is \emph{\index{Object Oriented Spatial Statistics}Object Oriented
Spatial Statistics}, reviewed by \citet{MenafoglioSecchi2017OOSpatialStats}.
In this area a number of the tasks and approaches considered in this
book are extended to the important case of spatial data. These include
data sets where location plays a key role, and must be properly included
in competent analyses. 

Another such area, which has had a major impact on both neuroscience
and also the study of many aspects of human behavior is \emph{Functional
Magnetic Resonance Imaging}\index{Functional Magnetic Resonance Imaging},
see e.g. \citet{Huettel2004FMRI}. This method involves brain imaging
over time, using blood flow as a surrogate for brain activity, measured
at a set of voxels\index{voxel} (recall the three dimensional version
of \index{pixel}pixels). Many choices of data objects have been made
in this area. In some studies, the focus is on a particular voxel
(thus one brain region), so the time series at that point is the data
object choice. In other studies the behavior over time is summarized
by a single number, so the data objects can be three dimensional sets
of voxels. Still other studies treat the full 3-d movies over time
as data objects. An example, showing joint analysis of how imaged
brain function jointly interacts with behavioral scores is discussed
in \citet{Yu2017JIVE}.

One more research area with close links to OODA is \emph{Deep Learning\index{Deep Learning}},
which aims to provide computational methods that work in ways parallel
to the human brain. Main methods in this area are based on \emph{neural
networks}\index{neural networks}, which go back at least to \citet{MccullochPitts1943NeuralNets}.
That area was quite popular in the 1990s, but seems to have been over-advertised
at the time, with many attempted applications apparently failing to
live up to their promise. However, more recently there has been a
very strong resurgence, perhaps fueled by much larger typical data
sets, together with much more powerful computing capabilities. These
ideas have created research revolutions in areas such as computer
vision. See \citet{Demuth2014NeuralNetDesign} for important ideas
in this area. \citet{Bengio2013RepresentationLearning} suggest that
much of the success of deep learning methods comes from the ability
of neural networks to provide a type of \emph{automatic data representation\index{data representation!automatic}}.
For example, in classification\index{classification} tasks, the last
step is typically a classical method (of the type discussed in Chapter
\ref{chapJ:Classification}), while the preceding neural layers are
usefully viewed as providing inputs, via a search over a very large
potential feature space\index{feature space}. This can be viewed
as an interesting way of automating the step of data object representation\emph{\index{data representation|)}},
as discussed in Section \ref{secBA.1:Foundations_Terminology}.

An example of such deep learning derived feature\index{feature!deep learning derived}s
in an image\index{data objects!images|)} analysis context can be
found in \citet{Carmichael2019JIVEimage} in the context of cancer
data. The goal of that paper was to jointly analyze histology images
(still the gold standard for cancer diagnosis) with genomic data (fundamental
to recent breakthroughs in cancer research). This was accomplished
with data integration\index{data integration} using the AJIVE method
discussed in Section \ref{subsecP-B-C:JIVE}.

A further area with OODA connections is \emph{Natural Language Processing}\index{Natural Language Processing},
an example of which was studied in Section \ref{subsec:corpuslingustics}.
This area aims to develop algorithms for the computational extraction
of meaning from text. One part of that field is called \emph{latent
semantic analysis}\index{latent semantic analysis}, see e.g. \citet{Martin2007LatentSemanticAnalysis},
where the key idea is \index{Singular Value Decomposition}Singular
Value Decomposition (essentially PCA without mean centering\index{centering}\index{mean!center},
as noted in Section \ref{subsecP-A-B:SVD}) of some variation of an
\emph{occurrence matrix}, which summarizes appearance of words in
large collections of documents. As noted in \citet{Berry2005SearchEngines},
there are many data object choices to be made, in terms of both how
to summarize word/phrase occurrences and also how to weight various
aspects of the decomposition. \citet{Baroni2014NatLangProc} showed
that in many cases neural network based word embedding algorithms
gave better performance than traditional matrix factorization based
approaches, for a variety of standard measures. However, \citet{Levy2015NeuralNetsinNatLangProc}
demonstrated that these performance gains are likely due to data object
choices that can be easily carried over to make the traditional matrix
factorization approaches achieve state of the art performance.

We anticipate that in the future many additional applications and
research areas will arise where OODA ideas will be useful.
