[R] Matrix multiplications

george brida george.brida at gmail.com
Sat May 21 21:32:59 CEST 2016


Thank you very much Peter.

On Sat, May 21, 2016 at 9:18 PM, peter dalgaard <pdalgd at gmail.com> wrote:

>
> > On 21 May 2016, at 21:00 , george brida <george.brida at gmail.com> wrote:
> >
> > Dear R users:
> >
> > I have written the following lines :
> >
> >> x=c(10,11,12,13,14,17,15,16,10,11,41,25,26,14,12,14,15,20,14,22)
> >> x=matrix(x,ncol=2)
> >> a=matrix(1,nrow(x),1)
> >> X=cbind(a,x)
> >> y=c(12.00, 11.00, 13.00, 12.50, 14.00, 18.50, 15.00, 12.50, 13.75,
> 15.00)
> >
> >> b=solve(t(X)%*% X)%*% t(X)%*% y
> >
> > when I wrote the following line
> >> (t(y-X %*% b)%*%(y-X %*% b)/(length(y)-ncol(X)))*solve(t(X)%*% X)
> > I have obtained an error message, I don't know why namely (t(y-X %*%
> > b)%*%(y-X %*% b)/(length(y)-ncol(X))) is a scalar:
> >> (t(y-X %*% b)%*%(y-X %*% b)/(length(y)-ncol(X)))
> >         [,1]
> > [1,] 3.620354
> >
> >
> > Can you please help me.
>
> Mistake is that (t(y-X %*% b)%*%(y-X %*% b)/(length(y)-ncol(X))) is NOT a
> scalar, but a 1 x 1 matrix.
>
> This works:
>
> as.vector((t(y-X %*% b)%*%(y-X %*% b))/(length(y)-ncol(X)))*solve(t(X)%*%
> X)
>
> as does recognizing the first term as a sum of squares:
>
> sum((y-X %*% b)^2)/(length(y)-ncol(X))*solve(t(X)%*% X)
>
> (And, for the Illuminati, a Kronecker product works too:
>
> (t(y-X %*% b)%*%(y-X %*% b)/(length(y)-ncol(X))) %x% solve(t(X)%*% X)
>
> This could be useful for multivariate y.)
>
> >
> > Thank you
> >
> > George
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > 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.
>
> --
> Peter Dalgaard, Professor,
> Center for Statistics, Copenhagen Business School
> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
> Phone: (+45)38153501
> Office: A 4.23
> Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
>
>
>
>
>
>
>
>
>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list