BookmarkSubscribeRSS Feed
trash
Fluorite | Level 6

I'm given these two equations:

                       PDF: f(x) =1/(π(1+x^2))    -∞ ≤ x ≤ ∞                   CDF: F(x) =(1/2) + arctan(x)/π  -∞ ≤ x ≤ ∞
and I am asked to generate 10,000 random numbers using the Inversion Method for Cauchy Distribution.
Here is the code I have started:
PROC IML; 
      n=10000;
      myran = j(n,1, 0); 
      uniform = uniform(myran);
      exponential = (tan(uniform*pi-(pi/2)));
CREATE uniform2 FROM uniform[colname={'x'}];
APPEND FROM uniform;
CREATE exp2 FROM exponential[colname={'y'}];
APPEND FROM exponential;
QUIT;
 
but my log says: "ERROR: (execution) Matrix has not been set to a value." after the exponential statement. 
how do I correct for this? I'm not sure how to account for the -∞ ≤ x ≤ ∞ part. 
subsequently, I am asked to create a subset of the 10000 Cauchy Dist. of random numbers where -10<x<10
 
3 REPLIES 3
WarrenKuhfeld
Rhodochrosite | Level 12

Set the scalar pi to a value after you invoke IML.

pi = constant('pi');
Ksharp
Super User

IML has build-in function, you can use it .

 

proc iml;
x=j(10000,1,.);
call randseed(12345678);
call randgen(x, 'CAUCHY'); 

create want var{x};
append;
close;
quit;
Rick_SAS
SAS Super FREQ

You asked, "how do I account for the [-infinity, infinity] part?" Here is a hint: What is the range of the expression

uniform*pi - pi/2 ?

Ask yourself how the TAN function behaves on this interval.

 

 

For more about the inverse CDF method of simulating data, see "The inverse CDF method for simulating from a distribution."

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

Multiple Linear Regression in SAS

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.

From The DO Loop
Want more? Visit our blog for more articles like these.
Discussion stats
  • 3 replies
  • 1121 views
  • 2 likes
  • 4 in conversation