楼主: qianping522
6156 3

[原创博文] 怎样产生100元标准正态分布随机数的样本数据 [推广有奖]

  • 0关注
  • 0粉丝

小学生

28%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
46 点
帖子
4
精华
0
在线时间
4 小时
注册时间
2010-8-5
最后登录
2019-5-4

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
想产生n元标准正态分布随机数的样本数据(这里n=100),n元正态分布相关矩阵的所有元素相同(设ρ=0.2),请问用SAS怎么做,现在最大的疑惑是怎么用SAS生成这个100×100的相关系数矩阵。如果n=3,这个问题很好解决,看下。如果n=100,怎么操作,相关矩阵不用手动输入,而用SAS自动生成?
DATA A (TYPE=CORR);
_TYPE_='CORR';

INPUT X1-X3;
CARDS;
1.00
.
.


.20 1.00
.


.20
.20 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;


READ ALL VAR _NUM_ INTO F;

F=F`;

DATA=RANNOR(J(10000,3,0));

DATA=DATA`;

Z = F*DATA;

Z = Z`;


X1=Z[,1];


X2=Z[,2];

X3=Z[,3];
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;
二维码

扫码加我 拉你入群

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

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

关键词:标准正态分布 样本数据 正态分布 随机数 样本数 正态分布 最大的 样本 元素

回帖推荐

bobguy 发表于2楼  查看完整内容

You need a couple help. 1) programs 2) math The programs are easy(see below). A correlation matrix needs to be positive definite. %let n=10; %let rho=0.2; DATA A (TYPE=CORR); _TYPE_='CORR'; array x(&n); do i = 1 to &n; do j=1 to i; if j

本帖被以下文库推荐

沙发
bobguy 发表于 2010-8-7 10:10:14 |只看作者 |坛友微信交流群
qianping522 发表于 2010-8-6 15:35
想产生n元标准正态分布随机数的样本数据(这里n=100),n元正态分布相关矩阵的所有元素相同(设ρ=0.2),请问用SAS怎么做,现在最大的疑惑是怎么用SAS生成这个100×100的相关系数矩阵。如果n=3,这个问题很好解决,看下。如果n=100,怎么操作,相关矩阵不用手动输入,而用SAS自动生成?
DATA A (TYPE=CORR);
_TYPE_='CORR';

INPUT X1-X3;
CARDS;
1.00
.
.


.20 1.00
.


.20
.20 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;


READ ALL VAR _NUM_ INTO F;

F=F`;

DATA=RANNOR(J(10000,3,0));

DATA=DATA`;

Z = F*DATA;

Z = Z`;


X1=Z[,1];


X2=Z[,2];

X3=Z[,3];
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;
You need a couple help.
1) programs
2) math

The programs are easy(see below).

A correlation matrix needs to be positive definite.

%let n=10;
%let rho=0.2;
DATA A (TYPE=CORR);
_TYPE_='CORR';
array x(&n);
do i = 1 to &n;
   do j=1 to i;
       if j<i then x(j)= &rho;
       else x(i)=1;
    end;
    output;
end;
keep x:;
;


proc print; run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

使用道具

藤椅
qy1987 发表于 2010-8-8 11:30:59 |只看作者 |坛友微信交流群
直接用matlab:
randn(100,1)

使用道具

板凳
qianping522 发表于 2010-8-8 22:16:34 |只看作者 |坛友微信交流群
谢谢各位的支持

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-11 23:56