Statistical programming, matrix languages, and more

SAS PROC IML AND SQL under precision matrix product

Reply
Super Contributor
Posts: 366

SAS PROC IML AND SQL under precision matrix product

[ Edited ]

Hello,

 

I would like to konw which  method give the best result for the matrix with the number between 0 et 1:

 

==>  I have two matrix A and B,  0<=Aij<=1,  0<= Bij<=1

 

Which metho gives the best results :

 

1- IML Proc

or

2- proc sql

 

do i=1 to L;

proc sql;
create table prod as
select (...)+(....) as  Vi
t1 m ,Tran_t2 n;
quit;

 

end;

 Any documentation for that are welcomed

 

 

 

SAS Super FREQ
Posts: 3,220

Re: SAS PROC IML AND SQL under precision matrix product

For matrix computations, use IML.

 

Your title says "matrix product," by which I assume you want the standard matrix multiplication:

C = A*B;

However, read this article "Ways to multiply in the SAS/IML language" if you want a different product.

Super Contributor
Posts: 366

Re: SAS PROC IML AND SQL under precision matrix product

Thank you for your answer.

Yes, I want to do C=A*B

But, I can use IML proc or SQL proc , I have a small number.

Please, which method (IML or SQL) is better for the small number ?

 

 

SAS Super FREQ
Posts: 3,220

Re: SAS PROC IML AND SQL under precision matrix product

As I said, you should  use IML for matrix computations.

 

All SAS procedures use double precision computations. If your numbers are so small that you think the computation will result in a numerical overflow or underflow, it probably doesn't make a difference how you perform the computation. If you post the data and a sample program, we might be able to say more.

Super Contributor
Posts: 366

Re: SAS PROC IML AND SQL under precision matrix product

Thank you for your message.

 

As an exemple,

You can take

 

A= (Aij)==> 0<Aij<1

B = (Bij)==> 0<Bij<1

 

Methode 1: Using IML proc

C=A*B

 

Method  2: Using SQl poc

 

C= A*transpose(B)

 

 

Grand Advisor
Posts: 9,307

Re: SAS PROC IML AND SQL under precision matrix product

[ Edited ]

For the precise problem , you'd better use IML's function XMULT() to calculate Matrix Product.

 

z = xmult(x,y); 
print z;

Look like FORMAT is not good for displaying precision. 

Super Contributor
Posts: 366

Re: SAS PROC IML AND SQL under precision matrix product

Thank you for your answer.

It is a good idea.

What's about  the results found by sql proc ? C=A*transpose(B)

 

 

Post a Question
Discussion Stats
  • 6 replies
  • 333 views
  • 1 like
  • 3 in conversation