楼主: appleqiuqiu
3441 6

[问答] 请教使用rantbl的一个问题 [推广有奖]

  • 0关注
  • 1粉丝

已卖:773份资源

副教授

41%

还不是VIP/贵宾

-

威望
0
论坛币
3666 个
通用积分
2.9200
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
4191 点
帖子
133
精华
0
在线时间
1514 小时
注册时间
2010-4-27
最后登录
2022-6-22

楼主
appleqiuqiu 发表于 2013-7-13 09:49:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

rantbl(seed,prob,....)这个格式能够用类似rantbl(seed,p)的形式替换么?(这里p是一个向量,元素是这个离散分布的概率)

我试验了我写的那个格式好像不能

那么怎么能把向量p放到rantbl里使用呢?

比如在matlab里就可以用N=mnrnd(n,p)的形式直接生成多项分布,N代表的是属于某一概率的个数,这里的p就是一个向量,在SAS里能有类似的实现吗?

多谢了!


二维码

扫码加我 拉你入群

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

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

关键词:rantbl Ant RAN MATLAB atlab matlab 元素

沙发
appleqiuqiu 发表于 2013-7-13 09:57:34
这个问题我在统计之都上看到过有人问,2年前问的,至今木有人回答,SAS专版的大虾们求帮助啊!

藤椅
appleqiuqiu 发表于 2013-7-13 10:16:59
自己再次顶一下。。。

板凳
ziyenano 发表于 2013-7-13 10:31:27
a=rantbl(0,{0.2,0.3,0.5})如果以这种形式写出来,会返回三个值,
系统会这么处理,以0.2为例,1的概率是0.2,2的概率是0.8,
0.3,0.5也是类似,所以返回的三个值都是1或者2,这显然与本意不符合。
a=rantbl(0,0.2,0.3,0.5),这种形式只返回一个值,返回1的概率是0.2,
返回2的概率是0.3,返回3的概率是0.5

报纸
ziyenano 发表于 2013-7-13 10:37:33
不过上面那个函数并非生成多项分布,
iml有多项分布函数 a=RANDMULTINOMIAL(10,5,{0.5 0.2 0.3});
10表示生成10行结果,
以这样的概率:1为0.5,2为0.2,3为0.3,实验5次,
分别出现多少次1,2,3

地板
appleqiuqiu 发表于 2013-7-13 10:52:25
ziyenano 发表于 2013-7-13 10:37
不过上面那个函数并非生成多项分布,
iml有多项分布函数 a=RANDMULTINOMIAL(10,5,{0.5 0.2 0.3});
10表示 ...
哎呀,太感谢你了!我要用的就是这个函数!!!之前一直没找到啊,但是我这里有个问题,就是后面的那个概率{0.5,0.2,0.3}可不可以用已有步骤中的一个向量表示?如下面:
  1. proc iml;
  2. seed=j(10,1,123);
  3. PI1=uniform(seed);/*这是一个10*1的随机数向量,假设他们相加等于1,以这个概率做参数,能否写成下面的形式?*/
  4. a=randmultinomial(10,100,PI)
复制代码

7
ziyenano 发表于 2013-7-13 10:53:58
appleqiuqiu 发表于 2013-7-13 10:52
哎呀,太感谢你了!我要用的就是这个函数!!!之前一直没找到啊,但是我这里有个问题,就是后面的那个概 ...
可以的,p={0.5 0.2 0.3};
a=RANDMULTINOMIAL(10,5,p);
print a;



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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 14:27