Estimates the anchor transformation for the Anchor-Objective. The anchor transformation is \(W = I-(1-\sqrt{\gamma}))\Pi_A\), where \(\Pi_A = A(A^TA)^{-1}A^T\). For \(\gamma = 1\) this is just the identity. For \(\gamma = 0\) this corresponds to residuals after orthogonal projecting onto A. For large \(\gamma\) this is close to the orthogonal projection onto A, scaled by \(\gamma\). The estimator \(\text{argmin}_f ||W(Y - f(X))||^2\) corresponds to the Anchor-Regression Estimator (Rothenhäusler et al. 2021) , (Bühlmann 2020) .

get_W(A, gamma, intercept = FALSE, gpu = FALSE)

Arguments

A

Numerical Anchor of class matrix.

gamma

Strength of distributional robustness, \(\gamma \in [0, \infty]\).

intercept

Logical, whether to include an intercept in the anchor.

gpu

If TRUE, the calculations are performed on the GPU. If it is properly set up.

Value

W of class matrix, the anchor transformation matrix.

References

Bühlmann P (2020). “Invariance, Causality and Robustness.” Statistical Science, 35(3). ISSN 0883-4237, doi:10.1214/19-STS721 .

Rothenhäusler D, Meinshausen N, Bühlmann P, Peters J (2021). “Anchor Regression: Heterogeneous Data Meet Causality.” Journal of the Royal Statistical Society Series B: Statistical Methodology, 83(2), 215–246. ISSN 1369-7412, doi:10.1111/rssb.12398 .

Author

Markus Ulmer

Examples

set.seed(1)
n <- 50
X <- matrix(rnorm(n * 1), nrow = n)
Y <- 3 * X + rnorm(n)
W <- get_W(X, gamma = 0)
resid <- W %*% Y