"Gabor Grothendieck" <[EMAIL PROTECTED]> writes: > Obviously the R code does not match the > description I gave since we should be taking > the QR decomp of sqrt(D)X, not X. Z should be: > > diag(1/sqrt(diag(D))) %*% qr.Q(qr(sqrt(D)%*%X))
Because R stores matrices in column-major order and repeats shorter vectors in arithmetic operations, you can avoid the matrix multiplications. What you have written is equivalent to sqrtD = sqrt(diag(D)) qr.Q(qr(sqrtD*X))/sqrtD Also, you don't really need to store a diagonal matrix as a matrix. > > --- > Date: Mon, 23 Feb 2004 21:38:15 -0500 (EST) > From: Gabor Grothendieck <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]> > Subject: RE: [R] orthonormalization with weights > > diag(1/sqrt(diag(D))) %*% qr.Q(qr(X)) > > > > 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 <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > 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 > > ______________________________________________ > [EMAIL PROTECTED] mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html -- Douglas Bates [EMAIL PROTECTED] Statistics Department 608/262-2598 University of Wisconsin - Madison http://www.stat.wisc.edu/~bates/ ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html