GFT-package: Generalized Fisher Transformation of Correlation Matrices

GFT-packageR Documentation

Generalized Fisher Transformation of Correlation Matrices

Description

Forward and inverse generalized Fisher transformation (GFT) of correlation matrices. The GFT maps a non-singular n \times n correlation matrix C to the real vector \gamma = \mathrm{vecl}(\log C) of below-diagonal elements of the matrix logarithm of C. The map is a bijection between the set of positive definite correlation matrices and R^d with d = n(n-1)/2 (Archakov and Hansen, 2021), and generalizes Fisher's z-transformation, to which it reduces for n = 2.

Details

The forward map is computed by gft. The inverse is computed from the variational characterization

x^*(z) = \arg\min_x \; \mathrm{tr}\, e^{A[x;z]} - \textstyle\sum_i x_i,

where A[x;z] is symmetric with off-diagonal elements z and diagonal x, by the following solvers:

inv_gft

GFT-FP+N (recommended): fixed-point phase in the log domain, then matrix-free inexact Newton via preconditioned conjugate gradients.

inv_gft_fp

The Archakov-Hansen fixed point.

inv_gft_broyden

Broyden's method as in Chen, Fei and Yu (2025).

inv_gft_newton

Full Newton with the exact O(n^4) Hessian.

The implementation is a line-faithful port of the Julia reference implementation by the same authors and uses base R only.

Author(s)

Ilya Archakov and Peter Reinhard Hansen.

Maintainer: Peter Reinhard Hansen hansen@unc.edu

References

Archakov, I. and Hansen, P. R. (2021). A new parametrization of correlation matrices. Econometrica, 89(4), 1699–1715. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.3982/ECTA16910")}

Archakov, I. and Hansen, P. R. (2026). A variational approach to the generalized Fisher transformation of correlation matrices. Working paper.

Chen, H., Fei, Y. and Yu, J. (2025). Multivariate stochastic volatility models based on generalized Fisher transformation. Journal of Econometrics, 251, 106041.

Examples

C <- 0.9^abs(outer(1:5, 1:5, "-"))   # Toeplitz correlation matrix
z <- gft(C)                          # forward transformation
r <- inv_gft(z)                      # inverse transformation
max(abs(r$C - C))                    # round trip at machine precision

GFT documentation built on Aug. 23, 2026, 5:10 p.m.