Hi John: I don't understand what you're doing ( not saying that it's wrong. I just don't follow it ). Below is code for computing the coefficients using the matrix way I follow. Others may understand what you're doing and be able to fix it so I wouldn't just use below immediately.
xprimex <- solve(t(data[,1:2]) %*% data[,1:2]) xprimey <- t(data[,1:2]) %*% data[,3] betas <- xprimex %*% xprimey print(betas) On Sat, Feb 18, 2012 at 8:36 AM, John Sorkin <jsor...@grecc.umaryland.edu>wrote: > I am trying to use matrix algebra to get the beta coefficients from a > simple bivariate linear regression, y=f(x). > The coefficients should be computable using the following matrix algebra: > t(X)Y / t(x)X > > I have pasted the code I wrote below. I clearly odes not work both because > it returns a matrix rather than a vector containing two elements the beta > for the intercept and the beta for x, and because the values produced by > the matrix algebra are not the same as those returned by the linear > regression. Can someone tell we where I have gone wrong, either in my use > of matrix algebra in R, or perhaps at a more fundamental theoretical level? > Thanks, > John > > # Define intercept, x and y. > int <- rep(1,100) > x <- 1:100 > y <- 2*x + rnorm(100) > > # Create a matrix to hold values. > data <- matrix(nrow=100,ncol=3) > dimnames(data) <- list(NULL,c("int","x","y")) > data[,"int"] <- int > data[,"x"] <- x > data[,"y"] <- y > data > > # Compute numerator. > num <- cov(data) > num > > # Compute denominator > denom <- solve(t(data) %*% data) > denom > > # Compute betas, [t(X)Y]/[t(X)Y] > betaRon <- num %*% denom > betaRon > > # Get betas from regression so we can check > # values obtaned by matrix algebra. > fit0 <- lm(y~x) > > > John David Sorkin M.D., Ph.D. > Chief, Biostatistics and Informatics > University of Maryland School of Medicine Division of Gerontology > Baltimore VA Medical Center > 10 North Greene Street > GRECC (BT/18/GR) > Baltimore, MD 21201-1524 > (Phone) 410-605-7119 > (Fax) 410-605-7913 (Please call phone number above prior to faxing) > > Confidentiality Statement: > This email message, including any attachments, is for ...{{dropped:13}} ______________________________________________ R-help@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.