Programming the statistical procedures from SAS

Simulating chi-square data

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 11
Accepted Solution

Simulating chi-square data

Dear's

I simulated a dataset bivariate wich normal distribution.

PROC IML;

N=100000;

MEAN={0.074, 0.1274};

COV={0.000302 0.000581, 0.000581 0.00156};

CALL RANDSEED(12345);

P=RANDNORMAL(N,MEAN,COV);

CREATE ESTRUTURA_1 FROM P; APPEND FROM P; CLOSE ESTRUTURA_1;

RUN;

However I would like to simulate the dataset with chi square distribution, how do I proceed?

Best regards.


Accepted Solutions
Solution
‎11-25-2014 01:58 PM
SAS Super FREQ
Posts: 3,306

Re: Simulating chi-square data

Do you want n=100,000 observations drawn randomly from a chi-square distribution with D degrees of freedom? By using IML? Then use

proc iml;

DF = 10;

N = 100000;

x = j(N,1);                       /* allocate vector */

call randseed(12345);    /* set random number seed */

call randgen(x, "Chisquare", DF); /* fill vector */

View solution in original post


All Replies
Grand Advisor
Posts: 9,447

Re: Simulating chi-square data

Maybe you should check :

x = RAND(’CHISQUARE’,df)

Xia Keshan

Occasional Contributor
Posts: 11

Re: Simulating chi-square data

Dear Keshan,

I tried to use the

X=RAND(ÇHISQUARE',df)

But I don't know simulate a dataset with n=100000 using this command.

I tried to use the DO command, but it still fails.

Best regards.

Solution
‎11-25-2014 01:58 PM
SAS Super FREQ
Posts: 3,306

Re: Simulating chi-square data

Do you want n=100,000 observations drawn randomly from a chi-square distribution with D degrees of freedom? By using IML? Then use

proc iml;

DF = 10;

N = 100000;

x = j(N,1);                       /* allocate vector */

call randseed(12345);    /* set random number seed */

call randgen(x, "Chisquare", DF); /* fill vector */

Occasional Contributor
Posts: 11

Re: Simulating chi-square data

Dear Rick,

Thank's

Super Contributor
Posts: 271

Re: Simulating chi-square data

Or, you can do it inside a datastep.

data simualation;

  df=1;

  call streaminit(1234567); /*initialize the seed is optional*/;

  do i=1 to 100000;

  chisq=rand('chisq',df);

  output;

  end;

run;

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 5 replies
  • 257 views
  • 0 likes
  • 4 in conversation