SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1804|回复: 15
打印 上一主题 下一主题

请教:随机数函数normal

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-10-26 16:13:06 | 只看该作者

请教:随机数函数normal

请教:
如何用随机数函数normal(seed)产生均值为100,方差为30的正态随机数1000个?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-10-27 01:36:12 | 只看该作者

Re: 请教:随机数函数normal

use [i:ibc5xlui]100+30*normal(seed)[/i:ibc5xlui] for 1000 times.
or [i:ibc5xlui]x=repeat(0,1000,1); call randgen(x, 'normal', 100, 30);[/i:ibc5xlui] in PROC IML
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-10-27 11:27:43 | 只看该作者

Re: 请教:随机数函数normal

谢谢您的回复.您给的答案是一个比一个专业的吧.
能提供一个call randgen的完整的语句吗?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-10-27 23:59:49 | 只看该作者

Re: 请教:随机数函数normal

maybe something like this,
[code:1oe65j9r]
proc iml;
x=repeat(0,1000,1);
call randgen(x, 'normal', 100, 30);
create mydataset from x;
append from x;
quit;
[/code:1oe65j9r]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-10-28 11:38:09 | 只看该作者

Re: 请教:随机数函数normal

like this
data a;
             drop i
        do i=1 to 1000;
                x=100+30*normal(seed);
                output;
        end;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2008-10-28 16:16:56 | 只看该作者

Re: 请教:随机数函数normal

urchin and qing12bo, thanks  <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2008-10-28 17:55:28 | 只看该作者

Re: 请教:随机数函数normal

I think you should change the 30 as sqrt(30), the parameters for the function above is the STD , instead of variance
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2008-10-28 21:09:39 | 只看该作者

Re: 请教:随机数函数normal

to horse1:
'the parameters for the function above is the STD , instead of variance'
------------------------------------------------------------------------
Are both STD and variance distribution shape paremeters?
How to pick one for the function when both of them are?  

&quot;CALL RANDGEN( result, distname&lt;, parm1&gt;&lt;, parm2&gt;&lt;, parm3&gt;);
result is a preallocated matrix that is to be filled with random samples from the specified distribution.
distname is the name of the distribution that is to be sampled.
parm1 -3 is a distribution shape parameter. &quot;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2008-10-29 10:21:39 | 只看该作者

Re: 请教:随机数函数normal

No, I means that if you use &quot;100+30*normal(seed)&quot; or &quot;call randgen(x,'normal',100,30)&quot;;  the result you obtain is a set of data with mean=100 and variance=900.

you want to get a dataset with the variance=30, right?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2008-10-29 10:31:03 | 只看该作者

Re: 请教:随机数函数normal

Yes, that's right. I want to get a dataset with the variance=30.
And maybe I should put my question in another way: how do you know &quot;100+30*normal(seed)&quot; or &quot;call randgen(x,'normal',100,30)&quot; results in a set of data with mean=100 and variance=900.

Well, I may just test it  <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 03:06 , Processed in 0.069100 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表