| GLS_chol {varycoef} | R Documentation |
GLS Estimate using Cholesky Factor
Description
Computes the GLS estimate using the formula:
\mu_{GLS} = (X^\top \Sigma^{-1} X)^{-1}X^\top \Sigma^{-1} y.
The computation is done depending on the input class of the Cholesky factor
R. It relies on the classical solve or on
using forwardsolve and backsolve functions of package
spam, see solve. This is much faster than
computing the inverse of \Sigma, especially since we have to compute
the Cholesky decomposition of \Sigma either way.
Usage
GLS_chol(R, X, y)
## S3 method for class 'spam.chol.NgPeyton'
GLS_chol(R, X, y)
## S3 method for class 'matrix'
GLS_chol(R, X, y)
Arguments
R |
( |
X |
( |
y |
( |
Value
A numeric(p) vector, i.e., the mean effects.
Author(s)
Jakob Dambon
Examples
# generate data
n <- 10
X <- cbind(1, 20+1:n)
y <- rnorm(n)
A <- matrix(runif(n^2)*2-1, ncol=n)
Sigma <- t(A) %*% A
# two possibilities
## using standard Cholesky decomposition
R_mat <- chol(Sigma); str(R_mat)
mu_mat <- GLS_chol(R_mat, X, y)
## using spam
R_spam <- chol(spam::as.spam(Sigma)); str(R_spam)
mu_spam <- GLS_chol(R_spam, X, y)
# should be identical to the following
mu <- solve(crossprod(X, solve(Sigma, X))) %*%
crossprod(X, solve(Sigma, y))
## check
abs(mu - mu_mat)
abs(mu - mu_spam)