【问题标题】:SaS Scenario GenerationSaS 场景生成
【发布时间】:2016-09-09 00:06:38
【问题描述】:

有人可以帮忙解决下面的场景吗?我对 SaS 很陌生,不知道如何让它发挥作用?

从以下线性模型模拟 200 个观测值:

Y = alpha + beta1 * X1 + beta2 * X2 + noise

地点:

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

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

我已经尝试过这段代码,但不确定它是否完全准确:

 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;

【问题讨论】:

    标签: sas


    【解决方案1】:

    您需要查看主题的 SAS 帮助 "rannor","ranuni","生成随机数",...

    rannor:生成标准正态分布 RV。

    ranuni:均匀分布的 RV。

    rannor 中的参数是种子数,而不是期望值。

    如果您的示例中的 N(x,y) 表示随机变量正态分布,期望值 x 和标准差 y (或者您的意思是方差???)那么代码可能是(看看语句的更改顺序;Y的定义必须在随机数的定义之后...):

    DATA ONE;
     alpha = 1;
     beta1 = 2;
     beta2 = -1.5;
    RUN;
    
    DATA CALC;
     SET ONE;
     seed = 1234;
     DO i = 1 to 200;
       X1=1+4*Rannor(seed);
       X2=3+rannor(seed);
       Noise=rannor(seed);
       Y=alpha+beta1*X1+beta2*X2+Noise;
       OUTPUT;
     END;
    RUN;
    
    PROC PRINT DATA=CALC;
    RUN;
    

    还有用于生成随机数的变体,例如“打电话给兰诺”。在 SAS 中处理种子数有不同的概念。有关这些主题,请参阅 SAS 帮助,例如here

    【讨论】:

      猜你喜欢
      • 2015-06-10
      • 1970-01-01
      • 2017-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 2015-05-30
      相关资源
      最近更新 更多