About this blog
Rick Wicklin, PhD, is a senior researcher in computational statistics at SAS and is a principal developer of PROC IML and SAS/IML Studio. His areas of expertise include computational statistics, statistical graphics, and modern methods in statistical data analysis. Rick is author of the book Statistical Programming with SAS/IML Software.

Follow @RickWicklin on Twitter.
Subscribe to this blog
Tags
Archives
The power method: compute only the largest eigenvalue of a matrix
When I was at SAS Global Forum last week, a SAS user asked my advice regarding a SAS/IML program that he wrote. One step of the program was taking too long to run and he wondered if I could suggest a way to speed it up. The long-running step was [...]
Post a Comment Checking your answers: Are computed values close to the true values?
In statistical programming, I often test a program by running it on a problem for which I know the correct answer. I often use a single expression to compute the maximum value of the absolute difference between the vectors: maxDiff = max( abs( z-correct ) ); /* largest absolute difference [...]
Post a Comment Expand data by using frequencies
A reader asked: I want to create a vector as follows. Suppose there are two given vectors x=[A B C] and f=[1 2 3]. Here f indicates the frequency vector. I hope to generate a vector c=[A B B C C C]. I am trying to use the REPEAT function [...]
Post a Comment The DIF function: Compute lagged differences and finite differences
To a statistician, the DIF function (which was introduced in SAS/IML 9.22) is useful for time series analysis. To a numerical analyst and a statistical programmer, the function has many other uses, including computing finite differences. The DIF function computes the difference between the original vector and a shifted version [...]
Post a Comment The LAG function: Useful for more than time series analysis
To a statistician, the LAG function (which was introduced in SAS/IML 9.22) is useful for time series analysis. To a numerical analyst and a statistical programmer, the function provides a convenient way to compute quantitites that involve adjacent values in any vector. The LAG function is essentially a “shift operator.” [...]
Post a Comment Popular! Articles that strike a chord with SAS users
Next week I will be in Orlando for SAS Global Forum 2012. If you will be there too, I hope you will try to find me (I’ve posted my schedule!) to discuss statistical programming with SAS software. If you aren’t going to Orlando, why don’t you write a comment to [...]
Post a Comment Extending SAS: How to define new functions in PROC FCMP and SAS/IML software
SAS software provides many run-time functions that you can call from your SAS/IML or DATA step programs. The SAS/IML language has several hundred built-in statistical functions, and Base SAS software contains hundreds more. However, it is common for statistical programmers to extend the run-time library to include special user-defined functions. [...]
Post a Comment BY-group processing in SAS/IML
Because the SAS/IML language is a general purpose programming language, it doesn’t have a BY statement like most other SAS procedures (such as PROC REG). However, there are several ways to loop over categorical variables and perform an analysis on the observations in each category. One way is to use [...]
Post a Comment The Poissonness plot: A goodness-of-fit diagnostic
Last week I discussed how to fit a Poisson distribution to data. The technique, which involves using the GENMOD procedure, produces a table of some goodness-of-fit statistics, but I find it useful to also produce a graph that indicates the goodness of fit. For continuous distributions, the quantile-quantile (Q-Q) plot [...]
Post a Comment Vectorized computations and the birthday matching problem
The birthday matching problem is a classic problem in probability theory. The part of it that people tend to remember is that in a room of 23 people, there is greater than 50% chance that two people in the room share a birthday. But the birthday matching problem is also [...]
Post a Comment 