全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2867 1
2010-04-11
悬赏 10 个论坛币 已解决
请教如何如何用SAS生成二维随机数?假设生成两个变量,每个变量的边缘分布为标准正态分布,且两个变量之间不独立,现在知道它们的联合分布.怎样产生这样的一组二维随机数?

最佳答案

bobguy 查看完整内容

For 2-dimesional matrix, it can be done in a data step with rotations. For 3-dimesional matrix, you can use call vnormal in SAS/IML package. Here is an example. %let rho=0.8; %let size=1000; data binormal; rho=ρ a1=sqrt((1+rho)/2); a2=sqrt((1-rho)/2); do i=1 to &size; rd1=rannor(12390); rd2=rannor(12390); e1=a1*rd1+a2*rd2; e2=a1*rd1-a2*rd2; outpu ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-4-11 01:16:33
julius725 发表于 2010-4-11 01:16
请教如何如何用SAS生成二维随机数?假设生成两个变量,每个变量的边缘分布为标准正态分布,且两个变量之间不独立,现在知道它们的联合分布.怎样产生这样的一组二维随机数?
For 2-dimesional matrix, it can be done in a data step with rotations. For 3-dimesional matrix, you can use call vnormal in SAS/IML package. Here is an example.

%let rho=0.8;
%let size=1000;

data binormal;
  rho=ρ
  a1=sqrt((1+rho)/2);
  a2=sqrt((1-rho)/2);
  do i=1 to &size;
    rd1=rannor(12390);
    rd2=rannor(12390);
    e1=a1*rd1+a2*rd2;
    e2=a1*rd1-a2*rd2;
    output;
  end;
  keep e1 e2;
run;

proc corr data=binormal;
var e1 e2;
run;

proc iml;
n=1000;
et=repeat(0,n,3);
mu   = { 0, 0,0 };
sigma= { 1  0.9  0.5,
                0.9 1 0.09,
               0.5 0.09 1};

  call vnormal(et, mu, sigma, n, -10000999);
  create a from et ;
  append from et;
quit;

proc corr data=a;
var col1 col2 col3;
run;

********************************************
                                           The SAS System         13:26 Saturday, April 10, 2010   4

                                         The CORR Procedure

                                  2  Variables:    e1       e2


                                         Simple Statistics

     Variable           N          Mean       Std Dev           Sum       Minimum       Maximum

     e1              1000       0.00313       0.98948       3.13394      -3.27817       3.08376
     e2              1000      -0.01186       0.98782     -11.85985      -3.16120       3.04577


                             Pearson Correlation Coefficients, N = 1000
                                     Prob > |r| under H0: Rho=0

                                                 e1            e2

                                   e1       1.00000       0.79983
                                                           <.0001

                                   e2       0.79983       1.00000
                                             <.0001

                                           The SAS System         13:26 Saturday, April 10, 2010   5

                                         The CORR Procedure

                             3  Variables:    COL1     COL2     COL3


                                         Simple Statistics

     Variable           N          Mean       Std Dev           Sum       Minimum       Maximum

     COL1            1000       0.02277       1.02535      22.77183      -3.27829       3.01796
     COL2            1000       0.01116       1.03329      11.16397      -3.70324       3.42491
     COL3            1000       0.02746       1.02100      27.46006      -3.76657       3.39092


                            Pearson Correlation Coefficients, N = 1000
                                     Prob > |r| under H0: Rho=0

                                         COL1          COL2          COL3

                           COL1       1.00000       0.90128       0.48264
                                                     <.0001        <.0001

                           COL2       0.90128       1.00000       0.07220
                                       <.0001                      0.0224

                           COL3       0.48264       0.07220       1.00000
                                       <.0001        0.0224
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群