## Simulating chi-square data

Solved
Occasional Contributor
Posts: 11

# 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,835

## 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 */

All Replies
Super User
Posts: 10,205

## 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,835

## 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: 301

## 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 and locked.