This is an old revision of the document!
AIREMLF90
A modification of REMLF90 for estimating variances with the Average-Information algorithm. Initially written by Shogo Tsuruta in 03/99-07/99.
Summary
AIREMLF90 uses a second derivative REML algrithm with extra heuristics, as is described in Jensen et al. (1996-7). For most problems, it converges in far fewer rounds than EM REML as implemented in REMLF90. While typically REMLF90 takes 50-300 rounds to converge, AIREMLF90 converges in 5-15 rounds and to a higher accuracy. For selected problems, AI-REML fails to converge when the covariance matrix is close to non-positive definite. Adjust sensitivity of the program by setting the appropriate tolerance or setting good starting values.
Options
OPTION conv_crit 1d-12
Convergence criterion (default 1d-10).
OPTION maxrounds 1000
Maximum rounds (default 5000). When the number < 2, the program calculates BLUP without iterating REML.
OPTION EM-REML 10
Run EM-REML (REMLF90) for first 10 rounds to get initial variances within the parameter space (default 0).
OPTION tol 1d-12
Tolerance (or precision) (default 1d-14) for positive definite matrix and g-inverse subroutines. Convergence may be much faster by changing this value.
OPTION sol se
Store solutions and those s.e.
OPTION missing -1
Set the missing value (default 0).
Heterogeneous residual variances for a single trait
OPTION hetres_pos 10 11
Specify the position of covariables.
OPTION hetres_pol 4.0 0.1 0.1
Initial values of coefficients for heterogeneous residual variances use ln(a0, a1, a2, …) to make these values.
Heterogeneous residual variances for multiple traits Convergence will be very slow with multiple trait heterogeneous residual variances
OPTION hetres_pos 10 10 11 11
or
OPTION hetres_pos 10 11 12 13
Specify the position of covariables (trait first). “10 10” or “10 11” could be linear for first and second traits, and “11 11” or “12 13” could be quadratic.
OPTION hetres_pol 4.0 4.0 0.1 0.1 0.01 0.01
Initial values of coefficients for heterogeneous residual variances use ln(a0, a1, a2, …) to make these values (trait first).