Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: matrix algebra


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: matrix algebra
Date   Wed, 2 Oct 2002 19:38:55 +0100

Alfonso Miranda
> 
> I need to calculate a matrix product that has the following form
> 
> B = G'YG
> 
> where G is a n x k matrix and Y is a n x n diagonal matrix. 
> My problem is:
> 
> (a) G should be formed with information for some variables, 
> say, a1 a2 a3. I
> have n observations for each variable.
> 
> (a) I have the information of the diagonal of Y in variable 
> called e. So I
> need to use e to create matrix Y.
> 
> (b) n is very large (more than 20,000 observations) so it 
> is imposible to
> create a nxn diagonal matrix  with elements in the diagonal 
> entries in e.
> 
> I guess I need to use something like:
> 
> matrix glsaccum B = a1 a2 a3, glsmat(Y)
> 
> But first I must define Y. Can anyone help me in this one?

One way to do it

. local n = _N 
. matrix Y = J(`n',`n',0) 
. forval i = 1 / `n' { 
.	matrix Y[`i',`i'] = myvar[`i'] 
. } 

Nick 
n.j.cox@durham.ac.uk 
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index