From: Doran, Harold <HDoran_at_air.org>

Date: Tue, 12 Apr 2011 11:43:28 -0400

lm.D9 <- lm(weight ~ group)

R-help_at_r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Tue 12 Apr 2011 - 15:46:00 GMT

Date: Tue, 12 Apr 2011 11:43:28 -0400

There are easier solutions. Suppose you have a matrix A, such as:

### Use the info from lm() help

ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) group <- gl(2,10,20, labels=c("Ctl","Trt"))weight <- c(ctl, trt)

lm.D9 <- lm(weight ~ group)

A <- model.matrix(lm.D9)

> L <- chol(crossprod(A))

> all.equal(crossprod(L), crossprod(A))

**[1] TRUE
**
I think this answers your remaining two questions below as ewll.

> -----Original Message-----

*> From: r-help-bounces_at_r-project.org [mailto:r-help-bounces_at_r-project.org] On
**> Behalf Of Shawn Koppenhoefer
**> Sent: Tuesday, April 12, 2011 11:11 AM
**> To: r-help_at_r-project.org
**> Subject: Re: [R] B %*% t(B) = R , then solve for B
**> Importance: High
**>
**> Hello.
**>
**> I found a solution that may interest others.
**>
**> Recall that my problem was how to use R to decompose a matrix into the
**> product of a matrix and its transpose. or, symbolically:
**>
**> For known matrix M (3x3 matrix) and unknown matrix F and its
**> transpose t(F)
**> where F * t(F) = M
**> determine F
**>
**> The solution using R seems to be :
**>
**> U=eigen(M)$vectors
**> D=diag(x=eigen(M)$values)
**> F=U %*% sqrt(D)
**>
**> But now I have two new questions:
**> 1. How can I find a solution where F is a triangular matrix.
**> 2. How can I find solutions to non-square matrices?
**>
**> /shawn
**>
**>
**>
**> p.s. Here's a numerical example that demonstrates the above.
**>
**> > M
**> [,1] [,2] [,3]
**> [1,] 0.6098601 0.2557882 0.1857773
**> [2,] 0.2557882 0.5127065 -0.1384238
**> [3,] 0.1857773 -0.1384238 0.9351089
**>
**> > U=eigen(M)$vectors
**> > D=diag(x=eigen(M)$values)
**> > F=U %*% sqrt(D)
**>
**> > *F %*% t(F)*
**> [,1] [,2] [,3]
**> [1,] 0.6098601 0.2557882 0.1857773
**> [2,] 0.2557882 0.5127065 -0.1384238
**> [3,] 0.1857773 -0.1384238 0.9351089
**>
**>
**>
**>
**> [[alternative HTML version deleted]]
**>
**> ______________________________________________
**> R-help_at_r-project.org mailing list
**> https://stat.ethz.ch/mailman/listinfo/r-help
**> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
**> and provide commented, minimal, self-contained, reproducible code.
*

R-help_at_r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Tue 12 Apr 2011 - 15:46:00 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Tue 12 Apr 2011 - 16:10:29 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*