> I try to fit a GLS model in which the responses are correlated with a
> knonw covariance matrix, hence I need to sandwich the covariance
> matrix into the normal equation. Wonder how that can be done with the
> existing procedures in Splus version 3.3 for Windows.
> Thank you.
> Ba' Pham
> Dept of Medicine - U of Ottawa
> 501 Smyth Rd, Ottawa Ontario Canada K1H 8L6
> Phone: (613) 737 8472. Fax: (613) 737 8141
> Email: bpham@ogh.on.ca
OLS assumes:
y = X * b + e where var(e) = sigma^2 * I, an n by n identity
GLS assumes var(e) = sigma^2 * V where V is symmetric positive
definite, known.
We can decompose V into U * U' and take T = inverse of U
Then var(T * e) = sigma^2 * T * U * U' * T' = sigma^2 * I
so the transformed model:
T*y = T * X * b + T * e can be fit with OLS
There are several ways to find T. One is:
Transf <- solve(t(chol(V)))
#(Splus chol() puts transposes oppositely from mine)
Ty <- Transf *% y
TX <- Transf %*% X
now you are ready to use lm()
fit <- lm(Ty ~ TX)
This is assuming that V is n by n. SOmetimes it's block diagonal and
much efficiency would be gained by using that structure.
Jim Robison-Cox ____________
Department of Math Sciences | | phone: (406)994-5340
2-214 Wilson Hall \ BZN, MT | FAX: (406)994-1789
Montana State University | *_______|
Bozeman, MT 59717 \_| e-mail: jimrc@math.montana.edu