I need some advice on Rick Wicklin's implementation of the Value-Maurelli method in SAS/IML from his book (section 16.11), "Simulating data with SAS" (highly recommended book by the way).
The method allows one to generate Monte Carlo simulation data with pre-specified marginal skewness, kurtosis and joint linear correlation (as gauged by Pearson's r).
Great stuff, but I find that I get this error (see below a simple bivariate example) when I try to specify significant skewness, with low kurtosis.
It looks like a type of input format error, but I've used it a lot and it seems rather a problem with specifying high skew with low kurtosis (if I bump up the kurtosis in this example, eventually the problem goes away).
It would be nice if I could find out if this is a limitation of the method itself or my own error?
Thank you for taking the time to consider my question.
250 proc iml;
NOTE: IML Ready
251 load module=_all_;
NOTE: Opening storage library WORK.IMLSTOR
252 skew = {2 2};
253 kurt = {0 0};
254 R = {1.0 0.5,
255 0.5 1.0};
256 V = VMTargetCorr(R, skew, kurt);
ERROR: (execution) Invalid argument or operand; contains missing values.
Look at the moment-ratio diagram on p. 300 (Fig 16.2). The diagram and accompanying text indicates that skew=2 and kurtosis=0 is not a valid choice of any univariate probability distribution. That combination of moments is impossible. Look at Section 16.19 for code that helps you restrict your simulation study to valid values of (skew, kurt).
Makes perfect sense, thanks for the confirmation.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.