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;
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;
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.
Reading further into the documentation:
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.
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;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Get started using SAS Studio to write, run and debug your SAS programs.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.