From: Christoph Scherber <Christoph.Scherber_at_agr.uni-goettingen.de>

Date: Thu, 24 Jul 2008 18:28:10 +0200

>> Dear all,

*>> I am fitting a multivariate linear model with 7 response variables and
*

*>> 1 explanatory variable.
*

*>>
*

*>> The following matrix P:
*

*>>
*

*>> P <- cbind(
*

*>> c(1,-1,0,0,0,0,0),
*

*>> c(2,2,2,2,2,-5,-5),
*

*>> c(1,0,0,-1,0,0,0),
*

*>> c(-2,-2,0,-2,2,2,2),
*

*>> c(-2,1,0,1,0,0,0),
*

*>> c(0,-1,0,1,0,0,0))
*

*>>
*

*>> should consist of orthogonal elements (as can be shown using %*%
*

*>> on the individual columns).
*

*>> However, when I use
*

*>>
*

*>> linhyp=linear.hypothesis(model, "explanatory.variable", P=P)
*

*>>
*

*>> I get an error saying
*

*>>
*

*>> Error in linear.hypothesis.mlm(mult1, "logdiv", P = P) :
*

*>> The error SSP matrix is apparently of deficient rank = 4 < 6
*

*>>
*

*>> Which I interpret as there are too many non-zero rows in the matrix, P.
*

*>>
*

*>> Is that correct? And how can I assess if the matrix is orthogonal
*

*>> (given that it is non-symmetrical,
*

*>> hence det(P) and other matrix operations won?t work)
*

>> Many thanks for your help!

*>>
*

*>> Best wishes
*

*>> Christoph.
*

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 Thu 24 Jul 2008 - 16:35:49 GMT

Date: Thu, 24 Jul 2008 18:28:10 +0200

Dear Ted,

Thanks for your help; is there any straightforward way to construct an orthogonal contrast matrix by hand? Of course

contrasts(as.factor(letters[1:6]))

would also do the job, but user-defined contrasts would make more sense.

Ideally, I would like to have a function that "tests" for me if my contrast matrix is orthogonal or not. Is there some built-in function in R for that?

Best wishes

Christoph.

> On 24-Jul-08 15:30:57, Christoph Scherber wrote:

>> Dear all,

> > The matrix has rank 4 (not 6 as I suppose you intended): > > svd(P)$d > # [1] 9.123340e+00 3.280954e+00 3.000000e+00 1.732051e+00 > # [5] 2.754966e-16 1.315742e-16 > > The last two eigenvalues are effectively 0. > > Also, as I see it the columns of P are not all orthognal to each > other by pairs: > > for(i in (1:5)){for(j in ((i+1):6)) print(c(i,j,sum(P[,i]*P[,j])))} > # [1] 1 2 0 > # [1] 1 3 1 > # [1] 1 4 0 > # [1] 1 5 -3 > # [1] 1 6 1 > # [1] 2 3 0 > # [1] 2 4 -28 > # [1] 2 5 0 > # [1] 2 6 0 > # [1] 3 4 0 > # [1] 3 5 -3 > # [1] 3 6 -1 > # [1] 4 5 0 > # [1] 4 6 0 > # [1] 5 6 0 > > Am I using the right P? > > P > # [,1] [,2] [,3] [,4] [,5] [,6] > # [1,] 1 2 1 -2 -2 0 > # [2,] -1 2 0 -2 1 -1 > # [3,] 0 2 0 0 0 0 > # [4,] 0 2 -1 -2 1 1 > # [5,] 0 2 0 2 0 0 > # [6,] 0 -5 0 2 0 0 > # [7,] 0 -5 0 2 0 0 > >

>> Many thanks for your help!

> > -------------------------------------------------------------------- > E-Mail: (Ted Harding) <Ted.Harding_at_manchester.ac.uk> > Fax-to-email: +44 (0)870 094 0861 > Date: 24-Jul-08 Time: 17:16:41 > ------------------------------ XFMail ------------------------------ > > . > ______________________________________________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 Thu 24 Jul 2008 - 16:35:49 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 Thu 24 Jul 2008 - 17:32:17 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.
*