首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Weibull分布的SAS Randgen调用

Weibull分布的SAS Randgen调用
EN

Stack Overflow用户
提问于 2014-08-26 14:26:35
回答 2查看 328关注 0票数 2

我试图在proc中调用随机元来创建10个随机数,这些随机数遵循Weibull分布,并具有一定的参数。下面是我使用的代码(显然不止一个循环,但我现在只是在测试):

代码语言:javascript
复制
do i = 1 to 1;
    Call randgen(Rands[i,1:Ntimes], 'Weibull', alpha[i], beta[i]);
    print (rands[1,1:Ntimes]);
    print (alpha[i]) (beta[i]);
end;

对于本例,Ntimes = 10,alphai = 4.5985111,betai = 131.79508。我的问题是,10个迭代/随机数中的每一个都返回为1。我在R中使用了rweibull函数,得到了有意义的结果,所以我认为它与SAS或我的代码有关,而不是与参数有关。我正确地使用了Randgen电话吗?有人知道为什么结果会是这样吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-26 15:15:48

这样做是可行的:

代码语言:javascript
复制
proc iml;
 alpha=j(10);
 beta=j(10);
 alpha[1]=4.59;
 beta[1] = 131.8;
 Ntimes=10;
 rands = j(1,10);
 print (rands);
 do i = 1 to 1;
    Call randgen(Rands, 'WEIB', alpha[1],beta[1]);
    print (rands);
 end;
quit;

我不认为你可以那样使用Rands[1:Ntimes]。我想你应该把它分配给一个临时矩阵,然后把这个矩阵的结果分配给一个更大的矩阵。

IE:

代码语言:javascript
复制
allRands=j(10,10);
do i = 1 to 10;
    Call randgen(Rands, 'WEIB', alpha[1],beta[1]);
    print (rands);
    allRands[i,1:10]=Rands;
end;
print(allRands);
票数 0
EN

Stack Overflow用户

发布于 2014-08-27 12:33:09

实际上,除非您使用的是一个古老版本的SAS/IML,否则您不需要任何循环。自SAS/IML 12.3,RANDGEN子例程接受参数向量。.在您的例子中,为alpha和beta参数定义一个向量。假设有“Nparam”参数。然后分配一个N矩阵来保存结果。通过对RANDGEN的单个调用,您可以填充矩阵,以便i_th列是来自威布尔(alphai,betai)的大小为N的示例,如下面的示例所示:

代码语言:javascript
复制
 proc iml;
 Nparam = 8; N = 1000;

 alpha= 1:Nparam;  /* assign parameter values */
 beta = 10 + (Nparam:1);
 rands = j(N,Nparam);
 call randgen(rands, 'WEIB', alpha,beta);  /* SAS/IML 12.1 */

 /* DONE. The i_th column is a sample from Weibul(alpha[i], beta[i]) 
    TEST IT: Compute the mean of each sample: */
 mean = mean(rands); std = std(rands);
 print (alpha//beta//mean//std)[r={"alpha" "beta" "mean" "std"}];
 /* TEST IT: Plot the distribution of each sample (SAS/IML 12.3) */  
 title "First param"; call histogram(rands[,1]);
 title "Last param";  call histogram(rands[,Nparam]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25508323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档