全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4504 8
2010-04-13
想模拟生成三个服从正态的随机变量,并且两两之间的相关性为0.5,该怎么做?怎么设定相关系数?
二维码

扫码加我 拉你入群

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

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

全部回复
2010-4-13 21:19:25
我只知道可以用matlab做,但是详细步骤忘了,
你可以找个熟悉matlab的朋友帮帮你。
希望以上信息对你有用
二维码

扫码加我 拉你入群

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

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

2010-4-13 21:30:05
2# zhangtao 谢谢你了,我想用sas来做,怎么弄呢?据说要用IML语言,我也觉得应该用到矩阵语言,期待高手帮助!!
二维码

扫码加我 拉你入群

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

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

2010-4-13 22:09:43
生成指定相关性的多个正态分布的变量的样本数据:
DATA A (TYPE=CORR);  _TYPE_='CORR';
INPUT X1-X3;
CARDS;
1.00  . .
.5 1.00  .
.5  .5 1.00
;
run;

PROC FACTOR N=3 OUTSTAT=FACOUT;
run;

DATA PATTERN; SET FACOUT;
  IF _TYPE_='PATTERN';
  DROP _TYPE_ _NAME_;
RUN;

PROC IML;                        
   USE PATTERN;                                  *USE语句:打开入SAS数据集;
   READ ALL VAR _NUM_ INTO F;     *READ:将打开的SAS数据集中的数据读入IML并形成矩阵,每个变量读入后形成一个列向量,列向量名为原先的变量名;
  F=F`;                           *转置;
DATA=RANNOR(J(10000,3,0));    *** J函数:R=J(M,N,'元素'),m是矩阵的行数,n是矩阵的列数,元素是矩阵中的元素。注意用J函数生成的矩阵的每一个元素都取同一个值。;
DATA=DATA`;                   *** 转置;
Z = F*DATA;                   *** *  矩阵相乘,得到相关性矩阵 ;
Z = Z`;                       *** 转置;

X1=Z[,1]*15 + 100;            *** 线性转换,得到指定的均值和方差;
X2=Z[,2]*10 + 50;
X3=Z[,3];
  ***结果输出到数据集A中;
Z=X1||X2||X3;
CREATE A FROM Z [COLNAME={X1 X2 X3}];
APPEND FROM Z;
      *** 查看均值标准差偏度峰度;
PROC MEANS DATA=A N MEAN STD SKEWNESS KURTOSIS;
  VAR X1 X2 X3;
     *** 查看变量间的相关性;
PROC CORR DATA=A NOSIMPLE;
  VAR X1 X2 X3;
RUN;
二维码

扫码加我 拉你入群

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

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

2010-4-13 22:11:39
被我找见了,呵呵,结果还比较满意,具体过程还有待研究!
二维码

扫码加我 拉你入群

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

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

2010-5-30 14:51:43
Which software do you use? I am the outdoor man, need your help
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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