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, statistical simulation, and modern methods in statistical data analysis. Rick is author of the books Statistical Programming with SAS/IML Software and Simulating Data with SAS.
Follow @RickWicklin on Twitter.
Subscribe to this blog
Tags9.3 9.4 9.22 12.1 12.3 13.1 Bootstrap and Resampling Data Analysis Efficiency Getting Started GTL History IMLPlus Just for Fun Matrix Computations Numerical Analysis R Reading and Writing Data Sampling and Simulation SAS/IML Studio SAS Programming Statistical Graphics Statistical Programming Statistical Thinking Tips and Techniques vectorization
For programmers who are learning the SAS/IML language, it is sometimes confusing that there are two kinds of multiplication operators, whereas in the SAS DATA step there is only scalar multiplication. This article describes the multiplication operators in the SAS/IML language and how to use them to perform common tasks [...]Post a Comment
In statistics, distances between observations are used to form clusters, to identify outliers, and to estimate distributions. Distances are used in spatial statistics and in other application areas. There are many ways to define the distance between observations. I have previously written an article that explains Mahalanobis distance, which is [...]Post a Comment
Someone recently asked a question on the SAS Support Communities about estimating parameters in ridge regression. I answered the question by pointing to a matrix formula in the SAS documentation. One of the advantages of the SAS/IML language is that you can implement matrix formulas in a natural way. The [...]Post a Comment
Frequently someone will post a question to the SAS Support Community that says something like this: I am trying to do [statistical task] and SAS issues an error and reports that my correlation matrix is not positive definite. What is going on and how can I complete [the task]? The [...]Post a Comment
The other day I was constructing covariance matrices for simulating data for a mixed model with repeated measurements. I was using the SAS/IML BLOCK function to build up the “R-side” covariance matrix from smaller blocks. The matrix I was constructing was block-diagonal and looked like this: The matrix represents a [...]Post a Comment
I recently encountered a SUGI30 paper by Chuck Kincaid entitled “Guidelines for Selecting the Covariance Structure in Mixed Model Analysis.” I think Kincaid does a good job of describing some common covariance structures that are used in mixed models. One of the many uses for SAS/IML is as a language [...]Post a Comment
The determinant of a matrix arises in many statistical computations, such as in estimating parameters that fit a distribution to multivariate data. For example, if you are using a log-likelihood function to fit a multivariate normal distribution, the formula for the log-likelihood involves the expression log(det(Σ)), where Σ is the [...]Post a Comment
This article is an excerpt from my forthcoming book Simulating Data with SAS. Not every matrix with 1 on the diagonal and off-diagonal elements in the range [–1, 1] is a valid correlation matrix. A correlation matrix has a special property known as positive semidefiniteness. All correlation matrices are positive [...]Post a Comment
Magic squares are cool. Algorithms that create magic squares are even cooler. You probably remember magic squares from your childhood: they are n x n matrices that contain the numbers 1,2,…,n2 and for which the row sum, column sum, and the sum of both diagonals are the same value. There are many [...]Post a Comment
It is common to want to extract the lower or upper triangular elements of a matrix. For example, if you have a correlation matrix, the lower triangular elements are the nontrivial correlations between variables in your data. As I’ve written before, you can use the VECH function to extract the [...]Post a Comment