SAS/IML
From Wikibooks, open books for an open world
< SAS
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 ;
This page may need to be