SAS/IML

From Wikibooks, open books for an open world
< SAS
Jump to: navigation, search

IML is an Interactive Matrix Programming Language for SAS. This is similar to R, Matlab and Stata/Mata language. You deal with matrix and you can perform any operation on those matrix.

Contents

[edit] Least Squares in SAS/IML

data base ; 
input x u ; 
cards ; 
1 -1
2 1
3 -1
4 1
5 -1
;
run ; 
proc print data = base ; run ; 
data base ; 
set base ; 
y = 1 + x + u ; 
cste = 1 ; 
run ; 
proc print data = base ; run ; 
 
proc iml;
        use base; /*Reads the data*/
        read all var {cste x} into x; /*creates matrix*/
        read all var {y} into y;
        beta=inv(x`*x)*(x`*y); /*computes point estimates*/
        print beta;
        yhat = x*beta;  /*computes predicted values*/
        print yhat ; 
        res = y - yhat ; /*Computes residuals*/
        print res ; 
        SSR = res`*res; /*Computes the sum of squared residuals*/
        print SSR ; 
        hatsigma = SSR / (nrow(y) - ncol(x)); /*Estimates the variance of u*/
        print hatsigma ; 
        sigmabeta = hatsigma * inv(x`*x); /*Computes the variance of the estimator */
        print sigmabeta ; 
        sebeta = sqrt(vecdiag(sigmabeta)); /*Computes standard error for each coefficient*/
        print sebeta ; 
        student = beta / sebeta ; /* Computes the Student t statistique*/
        print student ;  
quit;
 
proc reg data = base ; 
model y = x / I XPX  ; 
run ; quit ;

[edit] Optimization

IML includes lots of optimization routines.


[edit] Random Number Generation

proc iml ;
   seed = 123456; 
   c = j(5,1,seed); 
   b = uniform(c); 
   print b; 
quit ;

[edit] Ressources

Personal tools
Namespaces
Variants
Actions
Navigation
Community
Toolbox
Sister projects
Print/export