Blog Archives

Overview of new features in SAS/IML 12.3

July 30, 2014
By
Overview of new features in SAS/IML 12.3

Unless you diligently read the "What's New" chapter for each release of SAS software, it is easy to miss new features that appear in the language. People who have been writing SAS/IML programmers for decades are sometimes surprised when I tell them about a useful new function or programming feature. […]

Read more »

Lexicographic combinations in SAS

July 28, 2014
By
Lexicographic combinations in SAS

In a previous blog post, I described how to generate combinations in SAS by using the ALLCOMB function in SAS/IML software. The ALLCOMB function in Base SAS is the equivalent function for DATA step programmers. Recall that a combination is a unique arrangement of k elements chosen from a set […]

Read more »

Computing prediction ellipses from a covariance matrix

July 23, 2014
By
Computing prediction ellipses from a covariance matrix

In a previous blog post, I showed how to overlay a prediction ellipse on a scatter plot in SAS by using the ELLIPSE statement in PROC SGPLOT. The ELLIPSE statement draws the ellipse by using a standard technique that assumes the sample is bivariate normal. Today's article describes the technique […]

Read more »

Add a prediction ellipse to a scatter plot in SAS

July 21, 2014
By
Add a prediction ellipse to a scatter plot in SAS

It is common in statistical graphics to overlay a prediction ellipse on a scatter plot. This article describes two easy ways to overlay prediction ellipses on a scatter plot by using SAS software. It also describes how to overlay multiple prediction ellipses for subpopulations. What is a prediction ellipse? A […]

Read more »

How to create and detect an empty matrix

July 18, 2014
By
How to create and detect an empty matrix

An empty matrix is a matrix that has zero rows and zero columns. At first "empty matrix" sounds like an oxymoron, but when programming in a matrix language such as SAS/IML, empty matrices arise surprisingly often. Sometimes empty matrices occur because of a typographical error in your program. If you […]

Read more »

The SAS/IML File Exchange is open

July 16, 2014
By
The SAS/IML File Exchange is open

Have you written a SAS/IML program that you think is particularly clever? Are you the proud author of SAS/IML functions that extend the functionality of SAS software? You've worked hard to develop, debug, and test your program, so why not share it with others? There is now a central location […]

Read more »

A log transformation of positive and negative values

July 14, 2014
By
A log transformation of positive and negative values

In my four years of blogging, the post that has generated the most comments is "How to handle negative values in log transformations." Many people have written to describe data that contain negative values and to ask for advice about how to log-transform the data. Today I describe a transformation […]

Read more »

Create custom tick marks for axes on the log scale

July 11, 2014
By
Create custom tick marks for axes on the log scale

In my previous blog post, I showed how to use log axes on a scatter plot in SAS to better visualize data that range over several orders of magnitude. Because the data contained counts (some of which were zero), I used a custom transformation x → log10(x+1) to visualize the […]

Read more »

Scatter plots with logarithmic axes…and how to handle zeros in the data

July 9, 2014
By
Scatter plots with logarithmic axes…and how to handle zeros in the data

If you are trying to visualize numerical data that range over several magnitudes, conventional wisdom says that a log transformation of the data can often result in a better visualization. This article shows several ways to create a scatter plot with logarithmic axes in SAS and discusses some of the […]

Read more »

An easy way to expand data by using frequencies

July 7, 2014
By
An easy way to expand data by using frequencies

A few years ago I blogged about how to expand a data set by using a frequency variable. The DATA step in the article was simple, but the SAS/IML function was somewhat complicated and used a DO loop to expand the data. (Although a reader later showed how to avoid […]

Read more »


Subscribe

Email:

  Subscribe