Just got some time to begin playing with the 9.3 Enterprise Business Intelligence installation on my SAS laptop. As I was testing out the web applications, SASWebDoc opened but I couldn't get to the SAS login screen up to access the SAS Stored Process web application. First I started perusing my
Uncategorized

NOTE: SAS stopped shipping the SAS/IML Studio interface in 2018. It is no longer supported, so this article is no longer relevant. When I write SAS/IML programs, I usually do my development in the SAS/IML Studio environment. Why? There are many reasons, but the one that I will discuss today
Creating shared prompts to use across the various BI clients requires the use of SAS Management Console's stored process wizard. Editing these prompts after they have been shared requires some forethought. The important thing to consider when making any changes to a prompt's properties is the impact these changes could

Some people search the Internet for a set of topics and then use the number of search results ("hits") for each topic to rank the relative popularity of the topics. At the 2011 Joint Statistical Meetings (JSM), I had the opportunity to attend several talks by statisticians from Google and

The new, third edition of Frederick Pratter’s Web Development with SAS by Example recently came out to great fanfare. Updated for SAS 9.2 and SAS Enterprise BI Server 4.3, Web Development with SAS by Example, Third Edition, introduces readers to Web programming using real-world examples and SAS Web programming tools. So

I've previously described ways to solve systems of linear equations, A*b = c. While discussing the relative merits of the solving a system for a particular right hand side versus solving for the inverse matrix, I made the assertion that it is faster to solve a particular system than it

I'm currently enjoying the Australian "winter" as I travel around the region talking to SAS customers for the SAS Insight Series. It just so happens that I was in Perth, Western Australia for Australia's Census Night. Because I was in the country on this special day, I was compelled

This week’s featured SAS author’s tip comes from SAS user extraordinaire Ron Cody. Honestly, because Ron has written so many SAS books, I could probably feature a year’s worth of tips from his work alone. To find something useful in any of Ron’s books, one merely needs to let the
In order to support a SAS Server Architecture, administrators must know where all the log files from the various SAS Business Intelligence services are located. By default, each service that generates a log will create it within the services' own configuration folder structure. For example, the metadata server log is

This article describes the SAS/IML CHOOSE function: how it works, how it doesn't work, and how to use it to make your SAS/IML programs more compact. In particular, the CHOOSE function has a potential "gotcha!" that you need to understand if you want your program to perform as expected. What

When I was at the Joint Statistical Meetings (JSM) last week, a SAS customer asked me whether it was possible to use the SGPLOT procedure to produce side-by-side bar charts. The answer is "yes" in SAS 9.3, thanks to the new GROUPDISPLAY= option on the VBAR and HBAR statements. For

The SAS/IML language provides two functions for solving a nonsingular nxn linear system A*x = c: The INV function numerically computes the inverse matrix, A-1. You can use this to solve for x: Ainv = inv(A); x = Ainv*c;. The SOLVE function numerically computes the particular solution, x, for a

In the SAS/IML language, the index creation operator (:) is used to construct a sequence of integer values. For example, the expression 1:7 creates a row vector with seven elements: 1, 2, ..., 7. It is important to know the precedence of matrix operators. When I was in grade school,

I bet that many of you reading our blog are familiar with accomplished SAS users and authors Lauren Haworth, Cynthia Zender, and Michele Burlew. Together, they form a powerful triumvirate of SAS experience. If you get a chance to pick up their book Output Delivery System: The Basics and Beyond

I've previously discussed how to find the root of a univariate function. This article describes how to find the root (zero) of a function of several variables by using Newton's method. There have been many papers, books, and dissertations written on the topic of root-finding, so why am I blogging

At the SAS/IML Support Community, a SAS/IML programmer recently asked how to find "the root of a complicated equation." That's a huge question, and many papers and books have been written on the topic of root-finding, also known as finding the zeros of a function. Everyone has favorite techniques for

One of the great innovations with SAS 9.3 is the focus on ODS statistical graphics. "Wait a minute," you're thinking, "weren't ODS graphics added in SAS 9.2?" Yes, that's true. But with SAS 9.3 there is even more capability: more analytical SAS procedures support the graphs, and there are more

A matrix is an array of numbers or character strings. When I print a matrix, I usually want to see only the data. However, sometimes it is helpful to add row or column headings that indicate the names of variables or labels for rows. A simple example is count data

In a previous blog post, I showed how to use the LOGISTIC procedure to construct a receiver operator characteristic (ROC) curve in SAS. That same day, Charlie H. blogged about how to use the DATA step to construct an ROC curve from basic principles. It has been a long time

I've written about how to add a diagonal line to a scatter plot by using the SGPLOT procedure in SAS 9.2. The main idea (use the VECTOR statement) is easy enough, but writing a program that handles a line with any slope requires some additional effort. But now SAS 9.3

The other day I needed to compute the signum function for each element of a matrix. If x is a real number, then the sgn(x) is -1 when x<0, 1 when x>0, and 0 when x=0. I wrote a SAS/IML module that contains a compact little expression: proc iml; start

I recently blogged about how many times, on average, you must roll a die until you see all six faces. This question is a special case of the coupon collector's problem. My son noted that the expected value (the mean number of rolls) is not necessarily the best statistic to

"Dad? How many times do I have to roll a die until all six sides appear?" I stopped what I was doing to consider my son's question. Although I could figure out the answer mathematically, sometimes experiments are more powerful than math equations for showing how probability works. "Why don't

Yesterday, Jiangtang Hu did a frequency analysis of my blog posts and noticed that there are some holidays on which I post to my blog and others on which I do not. The explanation is simple: I post on Mondays, Wednesdays, and Fridays, provided that SAS Institute (World Headquarters) is

Dates and times. As Wayne Finley states in his SUGI25 paper on SAS date and time handling, "The SAS system provides a plethora of methods to handle date and time values." Along with the plethora of methods is a plethora of papers on the topic. If you want to trick
I feel privileged to have been invited back to meet with SAS customers throughout New Zealand and Australia. I also feel lucky to escape the North Carolina summer (with temperatures trending in the 90s Fahrenheit) in exchange for the "winter" weather Down Under. For a good chunk of August, I'll

Tuesday's release of SAS 9.3 included the new SAS Forecast Server 4.1, which has several valuable enhancements: Combination (Ensemble) Models: A combination of forecasts using different forecasting techniques can outperform forecasts produced by using any single technique. Users can combine forecasts produced by many different models using several different combination

Welcome, SAS 9.3! I've already blogged about some interface and graphical changes that everyone should know about. Now I'll put on my statistical hat and mention a few 9.3 features that excite me, personally, as a data analyst and a statistical programmer: As a statistician, I am keen to try
Rick Wicklin created his own list of Five Interface and Graphics Features that Everyone Can Use. It's a very good summary of what you'll immediately notice when you use analytics procedures in SAS display manager: cool graphs turned on by default. For SAS Enterprise Guide users, you won't see such

Most of us grew up playing some type of sport and dreaming of becoming a collegiate or professional athlete. For me, it was a focus on dance and striving to be a professional ballerina. At some point we realized that in order to make this dream a reality, we’d have