Computational Decision Making Methods
Artificial intelligence is broadly defined as the ability of an agent or a model to make either optimal or satisficing decisions. Decisionmaking in this context is a process which culminates in the selection of a particular course of action among several alternative possibilities. When decision making is automated using computational techniques such as neural networks and decision trees it is called computational decision making. Just like how Deep Blue had to decide what moves to make against Garry Kasparov, computational finance (and finance in general) is also all about making intelligent decisions,
How should I allocate my portfolio? (Portfolio Optimization)
Should I buy this stock or not? (Algorithmic Trading)
What should I pay for this security? (Pricing)
There are many fields dedicated to trying to find optimal ways of making such decisions including, but not limited to, statistics, operations research, and artificial intelligence. As such, there are a very large number of techniques which could be used each with their own pros and cons. This article will discuss the applications and challenges of computational decision making and present a taxonomy of computational decision making methods, their strengths, and their weaknesses. I hope that this will be useful for the design of intelligent trading systems.
Applications of computational decision making
A significant amount of literature has been published covering the applications of computational decision making in fields such as finance, economics, investment management, and trading. The applications which this blog has primarily focussed on up until now include,
Application  Description 

Asset allocation  Allocate capital between different asset classes based on expected future returns e.g. 25% in bonds and 75% in stocks. 
Security analysis  Quantitatively screen securities for further detailed analysis using logical rules e.g. PE <= 15 or price <= Book Value + 50% 
Portfolio optimization  Allocate portfolio capital between securities to maximize the risk adjusted return of the portfolio e.g. Sharpe or Sortino ratio 
Algorithmic trading  Automatically buy and sell securities on the market according to some predefined algorithmic trading strategy 
Forecasting  Forecast the future values in a time series e.g. interest and exchange rates or the price of a security or even gross domestic product (GDP) 
Policies  Predicting the impact of a new policy on a business or a regulatory decision by a govenment e.g. Basel III's impact on banking 
Challenges with computational decision making
All models are wrong but some are useful; as such, the real challenge with computational decision making is that the model is so wrong that it is no longer useful. Some of the problems associated with these techniques include dangerous assumptions regarding the nature of variables (e.g. Linearity, Stationarity, and Normality) as well as unavoidable statistical biases such as over and / or under fitting, omitted variable biases, and sampling biases. In addition to these many computational decision making models suffer from the curse of dimensionality and their performance may deteriorate as the complexity (number of attributes considered) of the problem being solved increases. Lastly, decisions are often constrained into feasible and unfeasible solutions and many computational decision making techniques struggle in the presence of boundary, equality, and inequality constraints.
Classes of computational decision making
In my mind computational decision making methods can be broadly split up between five different classes. These include mathematical methods, statistical methods, logical methods, search methods, and hybrid methods which belong to two or more of the previous classes. Mathematical methods such as linear programming can be used to explicitly solve decision making problems when they are posed as systems of equations. Statistical methods rely on statistical inference and probability theory to make probabilistic decision regarding random variables. Logical methods use predicate or fuzzy logic to construct symbolic rules which can be used to make decisions. Search methods such as the Min Max algorithm and A* search through the possible decisions to arrive at the most optimal one. Last, but not least, hybrid methods make use of one or more of the above mentioned techniques.
Note: here are three specific examples of popular computational decision making methods which have been discussed on this blog, intelligent algorithmic trading systems (more high level), neural networks for quantitative finance and trading, and evolving trading strategies using genetic programming.
These classes represent the top level of the proposed taxonomy. Underneath each class there are various categories which contain different but oftentimes similar methods and algorithms. For an interactive demonstration of the proposed taxonomy please click on the image below.
Relative strengths and weaknesses
Assuming that computational decision making algorithms and methods within particular categories share similar strengths and weaknesses, we can broadly compare different categories. That said, it is impossible to generalize to the extent that we say that algorithm X is better than algorithm Y. The reasons for this are as follows,
 Performance is problem dependent  if you judge a screwdriver by its ability to hammer in a nail, you will wrongly conclude that a screwdriver is useless. The type of problem should inform the selection of an appropriate model or algorithm.
 Every algorithm and or method has tradeoffs  in achieving better performance according to a one metric e.g. information capacity, models must (usually) trade off performance in another metric e.g. understandability.
The aforementioned trade off is particularly useful to look at because it is relevant to algorithmic trading, financial modelling, and economic modelling. Financial professionals demand high performance from computational decision making models, yet many of them have a healthy fear of "black boxes". A black box is a computational decision making models which can be viewed in terms of its input and output without any knowledge of its workings.
One reason for this is that when a black box breaks down, traders relying on that model are often left exposed to market risk without any explanation for that exposure. Another reason for this is than in certain industries an organization is obligated to motivate why a particular decision was or was not made e.g. credit application scoring. Therefore it is important to find models which strike a balance between being understandable and performing well.
An easy way of viewing these tradeoffs is to construct matrices. The example matrix below represents my opinion of where popular computational decision making methods and algorithms reside in terms of the performance to understandability trade off,
To illustrate how to use the matrix, consider a model which uses a Neural Network against a model which uses predicate logic (e.g. an inference engine). Decisions made by the inference engine are easily understood because they can be traced back to a set of logical ifthen rules representing a 'though process'. However, the performance of this model is heavily constrained by the quality and completeness of those rules. A model based on a neural network is a black box which can learn how to make good decisions. It is not constrained by human logic because it develops its own internal statistical logic. However, the decisions made by the neural network are not easily understood and cannot be traced back to any logical 'thought processes'.
For this reason, researchers have investigated algorithms which try to extract logical rules, similar to those used in an inference engine, from trained neural networks. These algorithms approximate a human readable representation of what is inside the black box. Models using this method are therefore arguably better than either models which use neural networks or models which use predicate logic. This is assuming that the requirements are to create a computational decision making model which is both humanreadable and performs well.
Conclusion
Because of its practical importance, many fields of academic research are continuously identifying new methods and algorithms for computational decision making. It is important for businesses and industry professionals which use computational decision making to stay uptodate with theoretical advances. Academics and practitioners should remember that the performance of these models is dependent on the type of problem being solved and the requirements on that model. For the academic, taxonomies are useful in identifying the gaps in current research and for generally comparing classes of computational decision making. For the practitioner, a taxonomy can be used to narrow the choice of model down to a few which are expected to address the problem.

Excellent article. I spotted a spelling error. "Though process" should be "thought process", thirdtolast paragraph.
Comments