[R] orthonormalization with weights

Gabor Grothendieck ggrothendieck at myway.com
Tue Feb 24 03:38:15 CET 2004



Let QR be such that sqrt(D)X = QR. Then letting
solve(...) denote the inverse of ... we have
X = solve(sqrt(D))QR  which is of the form ZR 
and Z has the desired weighted orthoginality 
property.  

Since D is diagonal, solve(sqrt(D)) equals 
diag(1/sqrt(diag(D))) so we get this for Z:

   diag(1/sqrt(diag(D))) %*% qr.Q(qr(X))

---
Date:   Mon, 23 Feb 2004 18:46:34 -0500 
From:   Stephane DRAY <stephane.dray at umontreal.ca>
To:   <r-help at stat.math.ethz.ch> 
Subject:   [R] orthonormalization with weights 

 
Hello List,
I would like to orthonormalize vectors contained in a matrix X taking into 
account row weights (matrix diagonal D). ie, I want to obtain Z=XA with 
t(Z)%*%D%*%Z=diag(1)

I can do the Gram-Schmidt orthogonalization with subsequent weighted 
regressions. I know that in the case of uniform weights, qr can do the 
trick. I wonder if there is a way to do it in the case of non uniform 
weights by qr or svd ?

Thanks in advances.
Stéphane DRAY
-------------------------------------------------------------------------------------------------- 

Département des Sciences Biologiques
Université de Montréal, C.P. 6128, succursale centre-ville
Montréal, Québec H3C 3J7, Canada

Tel : 514 343 6111 poste 1233
E-mail : stephane.dray at umontreal.ca




More information about the R-help mailing list