I recently read a paper that described a SAS macro to carry out a permutation test. The permutations were generated by PROC IML. (In fact, an internet search for the terms "SAS/IML" and "permutation test" gives dozens of papers in recent years.) The PROC IML code was not as efficient
Uncategorized
A previous post described a simple algorithm for generating Fibonacci numbers. It was noted that the ratio between adjacent terms in the Fibonacci sequence approaches the "Golden Ratio," 1.61803399.... This post explains why. In a discussion with my fellow blogger, David Smith, I made the comment "any two numbers (at
Space is big. You just won't believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it's a long way down the road to the drug store, but that's just peanuts to space. - Douglas Adams, Hitchhiker's Guide to the Galaxy SAS is big. It's not quite
Often, the first step of a SAS/IML program is to use the USE, READ, and CLOSE statements to read data from a SAS data set into a vector or matrix. There are several ways to read data: Read variables into vectors of the same name. Read one or more variables
The Fall issue of Foresight is available this month, and includes a review of The BFD (the book). Here is Editor Len Tashman's preview: Books reviewed in Foresight in the past have fallen into two categories: those that serve as textbooks, largely emphasizing forecasting methods, and general-interest books, that offer
Since its 4.2 release, SAS Enterprise Guide has been able to import Microsoft Excel 2007 and 2010 spreadsheet files (usually encountered as .XLSX files). But while SAS Enterprise Guide can export XLS files (which are compatible with all versions of Microsoft Excel), it does not have the ability to export
In a previous blog post about hurricanes, I created a histogram of the occurrence of tropical cyclones in the Atlantic basin during the years 1988–2003. That histogram shows that the peak of hurricane activity occurs in the second week of September, but also that a majority of tropical storms occur
This morning I read an interesting post about the design of the new Twitter Web page. The post included some R code to generate the ratio between adjacent terms in the Fibonacci seqence. The ratio converges to the "Golden Ratio": 1.61803399.... I'm sure that many R gurus will post simpler
I saw a suggestion arrive from a SAS customer who would like to see the IN operator extended to allow ranges of date values. For example, you can currently write a program that checks for values IN a collection or range of numbers: data check; if x in (1:10) then
The SAS/IML language is a vector language, so statements that operate on a few long vectors run much faster than equivalent statements that involve many scalar quantities. For example, in a previous post, I asserted that the LOC function is much faster than writing a loop, for finding observations that
AnnMaria wrote her latest blog post, "SAS Enterprise Guide makes you smarter", partly in response to my recent post about whether it's making you stupider. From the contents of her program example, I'm guessing that she's preparing for WUSS in November. I don't get to attend this year, but my
The Junk Chart blog discusses a potential problem that can arise in grouped bar charts when the two groups have vastly different ranges. One possible solution (which is discussed at the Junk Chart sister blog, Numbers Rule Your World) is to present the data back-back in what is sometimes called
We have all heard the old axiom that all politics are local. Recently, I have been in discussions about international responses to major disasters, Specifically, the floods in Pakistan, Haitian earthquake and Indonesia tsunami of 2004. In each of those cases, there were massive international responses to the crisis. Numerous
Contributed by Christine Kjellberg, Marketing Specialist and Joel Wilson, Systems Administrator As Stacey and I have mentioned in previous posts, we have expanded our study group to include another co-worker, Joel Wilson. The three of us meet weekly to review and discuss all things certification-related. Today’s installment of Open Mic
The SAS/IML run-time library contains hundreds of functions and subroutines that you can call to perform statistical analysis. There are also many functions in Base SAS software that you can call from SAS/IML programs. However, one day you might need to compute some quantity for which there is no prewritten
Visualizing the distribution of data is a primary task of data analysis. With all the hurricane activity in the Atlantic this year, I’ve been thinking about ways to visualize the historical distribution of hurricane activity. USA Today on Friday, August 13, 2010, announced that "the heart of hurricane season is
Recently, SAS Global Forum announced the call for papers for the 2011 conference to be held at Caesars Palace in Las Vegas. Since the conference is in Las Vegas, I’ve been thinking a lot about games of chance: blackjack, craps, roulette, and the like. You can analyze these games by
My mother taught me to put things away when I'm finished using them. She doesn't use a computer, but if she did, I know that she'd approve of this tip from my book: Tip: Always close your files and data sets when you are finished reading or writing them. In
Today is the birthday of Bernhard Riemann, a German mathematician who made fundamental contributions to the fields of geometry, analysis, and number theory. Riemann is definitely on my list of the greatest mathematicians of all time, and his conjecture about the distribution of prime numbers is one of the great
In my post yesterday about the 64-bit hype and how client apps like SAS Enterprise Guide would see only a limited boost from a 64-bit version, I forgot to point out another offering from SAS that has embraced the 64-bit architecture: JMP. JMP offers a 64-bit version, and it makes
Question: Is there a 64-bit version of SAS Enterprise Guide? Answer: SAS Enterprise Guide is a 32-bit application, even with its most recent release. As such, it is still completely supported on any 64-bit Windows machine, but it runs in the 32-bit subsystem (also known as WoW64 – short for
Missing values are a fact of life. Many statistical analyses, such as regression, exclude observations that contain missing values prior to forming matrix equations that are used in the analysis. This post shows how to find rows of a data matrix that contain missing values and how to remove those
Have you ever visited a city for the first time and, instead of relying maps to plan your journey, you simply plug your destinations into a GPS device and mindlessly follow the navigation directions? You've just cheated yourself out of a learning opportunity, because planning the journey and using your
I believe that we've "done" social media at SAS the right way. I know that because I can read this Dilbert cartoon (embedded here from dilbert.com) and actually laugh, and not cringe with shameful recognition.
Peter Flom reminded readers of his blog that you should always end a SAS procedure with a RUN statement. This is good rule. However, PROC IML is an exception to the rule. In PROC IML, the RUN statement is used to execute a built-in subroutine or a user-defined module. You
For the first time in a decade, I have a new official role and title at SAS. But what's remarkable about my new role isn't how much of my job will change, but how much of it will remain the same. I'm giving up my role as a software manager,
Look out, SAS and software nerds: there are more techy blogs headed your way via blogs.sas.com. Beginning this week, I've been joined by two of my fellow SAS R&D staffers: Rick Wicklin presents The DO Loop, which focuses on SAS/IML and other subjects of interest to statistical programmers, and SAS
The shortfall in 2010 state and local government budgets is not news. But it remains the biggest issue facing state and local governments today – and will continue well into tomorrow. Existing gaps are projected to widen further in 2011, throwing departments and agencies already on the edge further into
No matter how much we want it, and no matter how hard we try, we can’t always achieve the forecast accuracy desired. Forecasting Heads or Tails in the toss of a fair coin gives the perfect illustration (being right 50% of the time is all we can achieve over a
A frequently performed task in data analysis is identifying all the observations in a data set that satisfy certain conditions. For example, you might want to identify all of the female patients in your study or to identify all patients whose systolic blood pressure is greater than 140 mm Hg.