经管之家App
让优质教育人人可得
立即打开
全部版块
我的主页
›
论坛
›
数据科学与人工智能
›
数据分析与数据科学
›
SAS专版
怎么产生符合对数正态分布的随机数?
楼主
pfwx
15018
9
收藏
2011-03-07
悬赏
5
个论坛币
已解决
如题?谢谢各位了,本人菜鸟。如果已知对数正态分布LN(m,n^2)(m和n分别为参数),请问如何产生符合对数正态分布的随机数?
1.要是先产生相应正态分布随机数的话,该正态分布的参数该如何设置啊?代码怎么写啊?
2.要是直接从
产生的话,代码怎么写啊?
最佳答案
zhangweibeckham
查看完整内容
你的问题本身就已经给出答案了啊,你就先生成一个均值为MU,方差为SIGMA2的正态分布, DATA NORMAL; SEED=12345; DO I=1 TO 10; XNORMAL=MU+SQRT(SIGMA2)*RANNOR(SEED); OUTPUT; END; X=EXP(XNORMAL);/*X LOGNORMALLY DISTRIBUTED*/ RUN; 这里的X就是符合你公式的分布密度函数了。 其中MU就是你公式中的符号U,SQRT(SIGMA2)就是那个倒Q差不多的符号。 其实,如果你根据密度函数的转换公式计算一下,你马上就明白了 ...
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
全部回复
沙发
zhangweibeckham
2011-3-7 23:27:18
你的问题本身就已经给出答案了啊,你就先生成一个均值为MU,方差为SIGMA2的正态分布,
DATA NORMAL;
SEED=12345;
DO I=1 TO 10;
XNORMAL=MU+SQRT(SIGMA2)*RANNOR(SEED);
OUTPUT;
END;
X=EXP(XNORMAL);/*X LOGNORMALLY DISTRIBUTED*/
RUN;
这里的X就是符合你公式的分布密度函数了。
其中MU就是你公式中的符号U,SQRT(SIGMA2)就是那个倒Q差不多的符号。
其实,如果你根据密度函数的转换公式计算一下,你马上就明白了。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
藤椅
hssnow
2011-3-7 23:36:40
用 rannor() 或 normal() 函数可以产生正态分布随机数
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
板凳
ntsean
2011-3-8 08:49:47
先产生normal 分布的数,然后做 exponential
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
报纸
novice505
2011-3-8 09:20:56
SAS帮助:
A normal variate X with mean MU and variance S2 can be generated with this code:
x=MU+sqrt(S2)*rannor(seed);
A lognormal variate X with mean exp(MU + S2/2) and variance exp(2*MU + 2*S2) -exp(2*MU + S2) can be generated with this code:
x=exp(MU+sqrt(S2)*rannor(seed));
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
地板
zhangweibeckham
2011-3-8 13:08:19
产生对数正态分布随机数的方法有几种:
第一、利用DATA 步,
data lognormal;
seed=12345;/*define the seed*/
call streaminit(seed);
do i=1 to 10;
x=rand('lognormal');/*the lognormal random numbers' generating function*/
output;
end;
keep x;
run;
proc print data=lognormal;
run;
第二:在PROC IML模块中,也可以生成
proc iml;
seed=12345;
call streaminit(seed);
x=rand('lognormal',j(10,1));
print x;
quit;
第三、还是在PROC IML模块中,不过函数变了
proc iml;
seed=12345;
x=j(1,10,.);
call randseed(seed);
call rangen(x,'lognormal');
print x;
quit;
以上方法都是生成标准对数正态分布的函数,即均值为EXP(1/2),方差为EXP(2)-EXP(1)。
实际上,如果你想生成一个均值为mean ,方差为variance的对数正态分布,那么你就要先去计算对数正态的两个参数的值(1,MU 2,SIGMA2),因为对数正态分布的均值表达式为:
mean=EXP(MU+0.5*SIGMA2), variance=EXP(2*MU+SIGMA2)*[EXP(SIGMA2)-1],
所以你要先根据你自己要的均值和方差去算出MU和SIGMA2,再来生成随机数。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
点击查看更多内容…
7楼
pfwx
2011-3-8 18:08:00
5#
zhangweibeckham
非常感谢啊。是不是说,如果产生非标准的对数正态分布,只能像四楼的那样,或者说那一种方法?
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
8楼
pfwx
2011-3-8 18:12:14
5#
zhangweibeckham
如果已知了MU,和SIGEMA的话,而且不是0,1的话,只能用四楼说的哪一样,去产生随机数?谢谢啊。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
9楼
zhangweibeckham
2011-3-8 19:04:36
4楼的方法是可以的,对数正态分布的意思就是:对于变量X,有LN(X)~N(MU,SIGMA2),即对数正态分布变量的取对数后是服从正态分布的,所以你可以先生成正态分布序列(用:rannor()函数,其它的像NORMAL(),RAND(),RANDGEN()也都可以),再EXP()就可以了,这时候的序列的均值和方差就是4楼的公式里写的。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
10楼
pfwx
2011-3-8 22:27:10
8#
zhangweibeckham
再次请教下:如下图:
该如何先生成符合正态分布的随机数,再转化成对数正态分布的随机数啊?谢谢啊。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
相关推荐
股票价格运动对数正态分布的问题
spss中如何做对数正态分布的K-S检验?
SAS如何产生对数正态分布随机数?
一个分位点的问题
数据拟合对数正态分布,求详细过程
如何将0-1均匀分布转化为对数正态分布
股票的价格是对数正态分布,股票的复利是正态分布,如何数学解释?
如何生成这样的对数正态分布随机数?
对数正态分布抽样
300币求2列数据的对数正态分布拟合方程
栏目导航
SAS专版
Stata专版
经管文库(原现金交易版)
新手入门区
经管大学堂
SPSS论坛
热门文章
CDA 数据分析师:线性回归实战指南 —— 从 ...
世界上最简单的会计书(高清pdf版)
【推荐】上市公司投资者信心指数计算Stata代 ...
AI应用新范式:从工具革命到“超级OS”的演 ...
R语言实战 机器学习与数据分
R语言预测实战
20XX年扶贫办雨露计划工作方案
同心动力携手山西金控,共筑金融企业“以人 ...
如盈财女:10.31黄金短线偏强,上方还有上涨 ...
国学小名士观后感范文2
推荐文章
AI狂潮席卷学术圈,不会编程也能打造专属智 ...
10月重磅来袭|《打造Coze/Dify专属学术智能 ...
最快1年拿证,学费不足5W!热门美国人工智能 ...
关于如何利用文献的若干建议
关于学术研究和论文发表的一些建议
关于科研中如何学习基础知识的一些建议 (一 ...
一个自编的经济学建模小案例 --写给授课本科 ...
AI智能体赋能教学改革: 全国AI教育教学应用 ...
2025中国AIoT产业全景图谱报告-406页
关于文献求助的一些建议
说点什么
分享
微信
QQ空间
QQ
微博
扫码加好友,拉您进群
各岗位、行业、专业交流群