Solved
Frequent Learner
Posts: 1

# Issue with Random Number Generation

I am trying to solve this issue and I am very new to sas.  Can someone please help me?

Simulate 200 observations from the following linear model: Y = alpha + beta1 * X1 + beta2 * X2 + noise

where

• alpha=1, beta1=2, beta2=-1.5

• X1 ~ N(1, 4), X2 ~ N(3,1), noise ~ N(0,1)

I have this so far but do not think its right.

DATA ONE;
alpha = 1;
beta1 = 2;
beta2 = -1.5;
RUN;

DATA CALC;
SET ONE;
DO i = 1 to 200;
Y=alpha+beta1*X1+beta2*X2+Noise;
X1=Rannor(1);
X2=rannor(3);
Noise=ranuni(0);
OUTPUT;
END;

RUN;

PROC PRINT DATA=CALC;
RUN;

Accepted Solutions
Solution
‎09-09-2016 10:40 PM
Super User
Posts: 9,878

## Re: Issue with Random Number Generation

```It is X~N(mu,sigma^2) ,right ?

DATA CALC;
alpha = 1;
beta1 = 2;
beta2 = -1.5;
call streaminit(1234);

DO i = 1 to 200;
X1=rand('normal',1,2);
X2=rand('normal',3,1);
Noise=rand('normal');
Y=alpha+beta1*X1+beta2*X2+Noise;

OUTPUT;
END;
RUN;

PROC PRINT DATA=CALC;
RUN;

```

All Replies
Super User
Posts: 19,181

## Re: Issue with Random Number Generation

Yeah, I don't think so either. Hopefully this helps provide you with some more direction:

X1 ~ N(1, 4) -> X is Normally distributed with a mean of 1 and standard deviation of 4.

RANNOR (Seed)

The RANNOR function returns a variate that is generated from a normal distribution with mean 0 and variance 1. The Box-Muller transformation of RANUNI uniform variates is used.

A normal variate X with mean MU and variance S2 can be generated with this code:
`x=MU+sqrt(S2)*rannor(seed);`

Your order is also incorrect. You need to create the random variables X1/X2/Noise before you apply the formula.

Solution
‎09-09-2016 10:40 PM
Super User
Posts: 9,878

## Re: Issue with Random Number Generation

```It is X~N(mu,sigma^2) ,right ?

DATA CALC;
alpha = 1;
beta1 = 2;
beta2 = -1.5;
call streaminit(1234);

DO i = 1 to 200;
X1=rand('normal',1,2);
X2=rand('normal',3,1);
Noise=rand('normal');
Y=alpha+beta1*X1+beta2*X2+Noise;

OUTPUT;
END;
RUN;

PROC PRINT DATA=CALC;
RUN;

```
☑ This topic is solved.

Discussion stats
• 2 replies
• 245 views
• 2 likes
• 3 in conversation