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/