How do I increase the ESS of a parameter? 

Here are some ways of increasing the ESS of a parameter:

  1. Optimize the performance of the operators. BEAST implements a system of auto-optimization for operator tuning. By default, this is on, but can be turned of for many (but not all) operators by adding the following attribute to the operator element in the XML input file:
    <operator optimize="false" ... ><

    Also, at the end of a BEAST run, a report is printed showing some performance suggestions for operators that do not perform very well. You could change the start values of some operator parameters (e.g. the scale-factor for scale operators), which should help those operators explore the state space more efficiently.

  2. Increase the sampling frequency. The ESS is calculated by measuring the correlation between sampled states in the chain (i.e., the entries in the log file). If the sampling frequency is very low these will be uncorrelated. This will be indicated by the ESS being approximately equal to the number of states in the log file (minus the burn-in). If this is the case, then it may be that you can improve the ESSs by increasing the sampling frequency until the samples in the log file begin to be autocorrelated. Sampling too frequently will not affect the ESSs but will increase the size of the log file and the time it takes to analyse it.
  3. Combine the results of multiple independent chains. It is a good idea to do multiple independent runs of your analyses and compare the results to check that the chains are converging and mixing adequately. If this is the case then each should be sampling from the same distribution and the results could be combined (having removed a suitable burn-infrom each). The continuous parameters in the log file can be analysed and combined using Tracer. The tree files will currently have to be combined manually using a text editor. An advantage of this approach is that the different runs can be performed simultaneously on different computers (say in a computer lab or nodes on a Linux cluster) or on different processors in a multi-processor machine.
  4. Increase the chain length. This is the most straight-forward way of increasing the ESS. This obviously requires more computer resources and may not be practical.

Leave a Reply

Bayesian evolutionary analysis by sampling trees