tag 标签: 生成器经管大学堂:名校名师名课

相关帖子

版块 作者 回复/查看 最后发表
spss15.0以及amos7.0注册机序列号生成器及补丁 attachment LISREL、AMOS等结构方程模型分析软件 bumin 2007-11-26 59 30884 赵安豆 2024-9-30 08:32:17
周度时间序列生成器(免费软件) attachment R语言论坛 aresblq 2010-1-14 11 12890 qsftr 2023-8-6 09:51:17
我用论文生成器写了一篇论文投稿304家SCI期刊,其中157家接受! 学术道德监督 saintsophia 2013-10-4 31 17997 ewref2324 2020-6-30 06:22:36
Stata10正式版下载及注册码生成器(附使用说明) attachment Stata专版 gaoshang70800 2014-10-10 8 4312 秋风细雨307 2018-5-18 15:31:18
中国人寿保险业生命表换算表生成器 金融类 qewyx 2008-12-9 11 9631 duantianxu 2017-7-23 12:18:07
crystal ball pro5.22 注册版 带注册生成器器 attachment EViews专版 crazyhe009 2010-3-16 5 2251 szdengxc 2016-7-28 06:51:22
[下载]证件照生成器 attachment 休闲灌水 职业xx 2008-11-12 9 9024 凸鄙哥 2015-3-16 12:33:50
PDF生成器(超级汉化版,装好就用) attachment 休闲灌水 LUWUJIN2 2008-1-1 35 5871 heyva 2015-2-4 00:02:38
JMP独家录制 网络培训——探索性数据分析(8.12)视频出炉(快来观看~) JMP论坛 JMPer 2014-8-14 4 1541 对面的火车站 2015-1-11 12:37:03
可视化数据分析软件JMP图形生成器妙用_案例演示 attachment JMP论坛 颜羽瑶 2014-10-29 1 5626 282kKKK172 2014-11-19 23:50:41
JMP11新功能速览(一) JMP论坛 JMPer 2014-7-31 0 2743 JMPer 2014-7-31 17:56:02
真随机数生成器 MATLAB等数学软件专版 凡星有梦 2014-3-11 4 2658 凡星有梦 2014-3-12 09:00:51
浪漫软件生成器 attachment 休闲灌水 1204434240 2013-9-19 0 777 1204434240 2013-9-19 20:26:27
最方便使用的照片生成器 attachment 会计与财务管理 zb2611 2011-11-10 0 1444 zb2611 2011-11-10 15:11:25
让PPT更生动的水晶按钮图片生成器 attachment 休闲灌水 bambooxy 2010-6-10 14 5744 bai_ck 2011-8-4 10:20:18
卡巴斯基key生成器 attachment 数据分析与数据挖掘 dpooo123 2010-5-21 3 1934 agri521 2010-5-24 20:16:19
音乐图片生成器 attachment 休闲灌水 lixiaos 2009-8-28 0 1354 lixiaos 2009-8-28 10:52:46
[举报]spss15.0序列号生成器和暴力解码(有病毒) SPSS论坛 lll_sjz 2009-4-29 1 2377 Kaini 2009-4-30 07:56:00

相关日志

分享 RANUNI:随机均匀分布数据的生成器及均匀性随机性检验
linggol 2015-3-8 11:50
RANUNI:随机均匀分布数据的生成器及均匀性随机性检验 运用SAS进行Monte Carlo蒙特卡罗模拟(第三弹): RANUNI:随机均匀分布数据的生成器及其均匀性和随机性检验 1 RANUNI:随机均匀分布数据的生成器 蒙特卡罗模拟的核心是随机数据的生成器,而各种随机数据的生成器的核心是随机均匀分布数据的生成器,因为各种特定分布的随机数据都可以通过随机均匀分布数据得到。产生随机数,可以通过物理方法取得,但当今最为普遍的乃是在计算机上利用数学方法产生随机数。这种随机数根据特定的迭代公式计算出来,初值确定后,序列就可以预测出来,所以不能算是真正的随机数(就成为“伪随机数”)。 RANUNI生成的随机均匀分布数据有着广泛的应用,它主要是通过以下递归公式来产生随机数据,R(i+1)=(a*R(i)+c) (mod m) i=0,1,2…,这里R(i)为第i个随机数,a为乘子,c为增量,(mod m)是指将(a*R(i)+c)得到的数据取模运算,使得得到的数据都在(0,m)这个区间内。这个公式用SAS语句表示为:R=MOD(A*R+C,M); 要产生的随机数序列R(i)从第一个随机数R(0)开始和决定,然后得到在(0,m)这个区间的均匀分布的随机数,SAS会通过除以m得到(0,1)区间的随机数。在SAS系统中,常数a=397,204,094,m = 2^31-1=2,147,483,647(是一个素数),c=0,种子R(0)必须是一个整数并且其值介于1到m-1之间。这里c=0的数据生成器被称为multiplicative congruential generator,被广泛地应用。 我们可以通过下面这段程序测试一下SAS系统中,常数m的值: DATA _NULL_; R0=RANUNI( 123 ); ***产生一个seed; DO I= 2 TO 2 ** 31 - 1 ; ***除了这个Seed外,查看在接下来的第2个到 2 ** 31 - 1( 即 m) 个 R(i) 中,能否得到与 R0 相同的值 ; IF RANUNI( 123 )=R0 ***如果得到与R0相同的值,则输出这个值的序号i,否则输出 2 ** 31 - 1 的值,即表明 2 ** 31 - 2 个数据里面没有与 Seed 相同的值 ; THEN DO; PUT 'End of period at element #' i; STOP; END; END; RUN ; 结果: 对于产生的伪随机数列我们必须通过一系列统计检验,然后可以把它们当成“真”随机数来使用。常用的统计检验方法有Chi-Square,KS值等等。RANUNI必须满足两个要求:均匀性和随机性。 2 均匀性检验:EQUIDST宏 均匀性是指随机数据均匀地分布在每个单位区间里,我们可以方便地用频数等方法来检验随机数据的均匀性。下面我们介绍一个宏EQUIDST,其目的就是用来测试产生的随机数据的均匀性。其原理是:将(0,1)这个区间分别划分成等距的2,3,…,n个子区间,然后标记这些子区间的频数,并进行适合度检测,即如果随机数均匀分布到(0,1)区间的话,每个子区间都应该有着相同的随机数个数,这样,我们就可以通过计算chi-square的值来判别随机数是否符合均匀分布。 SAS宏的运行参数如下:% EQUIDST (NRANNUM= 1000000 ,HNSINT= 100 ,SEED= 123 );这里,NRANNUM是要产生的随机数的个数,即1000000个,HNSINT是将(0,1)区间划分成多少个子区间,这里HNSINT= 100 ,即划分成 100 个子区间, SEED=123 即为种子。 EQUIDST宏程序如下: %MACRO EQUIDST(NRANNUM=,HNSINT=,SEED= 0 ); DATA WORK(KEEP=SINTERV X); LENGTH SINTERV X 3 ; DO I= 1 TO NRANNUM; ***生成NRANNUM(本例是1000000)个随机数; R=RANUNI(SEED); ***用RANUNI函数生成均匀分布的随机数; DO SINTERV= 2 TO HNSINT; X= 1 +INT(SINTERV*R); ***将得到的随机数分配到相应的子区间中; OUTPUT; END; END; RUN; PROC FREQ DATA=WORK; ***查看各子区间随机数频数分布情况; TABLE SINTERV*X/LIST OUT=WORK(KEEP=SINTERV COUNT) NOPRINT; RUN; DATA WORK(KEEP=PVALUE); SET WORK; BY SINTERV; RETAIN EXPFREQ CHISQ; IF FIRST.SINTERV THEN DO; ***开始计算一个子区间的chi-square; EXPFREQ=NRANNUM/SINTERV; CHISQ= 0 ; ***子区间的chi-square赋初值为零; END; CHISQ=CHISQ+(COUNT-EXPFREQ)** 2 /EXPFREQ; ***累加chi-square; IF LAST.SINTERV THEN DO; ***结束计算这子区间的chi-square; PVALUE= 1 -PROBCHI(CHISQ,SINTERV- 1 ); ***计算该子区间的P值; OUTPUT; ***将该子区间的P值输出出到work数据集中; END; PROC FORMAT; ***设置所有子区间的P值分布情况; VALUE SIGNIF 0.0000 - 0.0001 ='P0.0001' 0.0001 - 0.001 ='P0.001' 0.001 - 0.01 ='P0.01' 0.01 - 0.05 ='P0.05' 0.05 - 0.10 ='P0.10' 0.10 - 0.15 ='P0.15' 0.15 - 1 ='P0.15'; PROC FREQ DATA=WORK; ***查看所有子区间的P值分布情况; TABLE PVALUE; FORMAT PVALUE SIGNIF.; TITLE1 "Results of the Uniformity Test"; TITLE2 "------------------------------"; TITLE3 "# of Random Numbers: NRANNUM"; TITLE4 "Subintervals Tested: 2 to HNSINT"; RUN; %MEND ; *********************************************************; % EQUIDST (NRANNUM= 1000000 ,HNSINT= 100 ,SEED= 123 ); 结果: 从结果中我们可以看出,P值小于0.01的区间一个也没有,P值在0.01到0.05的区间有9个,而绝大多数的P值大于0.15,说明了RANUNI产生的随机数是均匀分布的。 3 随机性检验:CORRTEST 随机性检验是一个很宽泛的概念,包含了很多方面的特征,单个测试很难对随机性进行检验,因此,在进行随机性检验时,我们要尽可能多地检验随机性的各个方面。 在本例中,我们介绍SAS宏CORRTEST来对随机性的一个重要特征:相关性进行检验,即检验第i个随机数和第i+j个随机数之间的相关性。我们首先用函数生成随机数集,然后用CORRTEST计算其相关性: DATA SAMPLE(KEEP=X); DO I=1 TO 1000000; X=RANUNI(123); OUTPUT; END; RUN; %CORRTEST(DATA=SAMPLE,HLAG=100,VAR=X); 这里HLAG是SAS函数lag标识,例如对于一个数列1,2,3,4,5,6,对于数据6,其lag(1)=5,lag(2)=4,依次类推,这里我们考察的是随机数与其前面的100个数据的相关性。 SAS宏CORRTEST程序如下: %MACRO CORRTEST(DATA=,HLAG=,VAR=); DATA WORK(KEEP=LAG0-LAGHLAG); SET DATA NOBS=NOBS END=END; ARRAY LAGARRAY(*) LAG0-LAGHLAG; ***计录随机数i之前HLAG个随机数; RETAIN LAG0-LAGHLAG; IF _N_=HLAG THEN LAGARRAY(_N_+ 1 )=VAR; ***当_N_小于HLAG时,会有缺失值,故要单独处理,详见lag函数相关文档; ELSE DO; DO I= 1 TO HLAG; LAGARRAY(I)=LAGARRAY(I+ 1 ); END; LAGARRAY(HLAG+ 1 )=VAR; OUTPUT; END; IF END THEN DO; CALL SYMPUT('N', COMPRESS(PUT(NOBS,BEST10.))); DO J= 0 TO HLAG- 2 ; DO I= 1 TO HLAG-J; LAGARRAY(I)=LAGARRAY(I+ 1 ); END; LAGARRAY(HLAG-J+ 1 )= . ; OUTPUT; END; END; RUN; PROC CORR DATA=WORK OUTP=WORK(WHERE=(_TYPE_='CORR')) NOPRINT; VAR LAG0; WITH LAG1-LAGHLAG; DATA WORK(KEEP=PVALUE); SET WORK; RETAIN N N; CORR=LAG0; N=N- 1 ; ***自由度; IF ABS(CORR)= 1 THEN PVALUE= 0 ; ELSE PVALUE= 2 *( 1 -PROBT(ABS(CORR/ SQRT( 1 -(CORR*CORR))*SQRT(N- 2 )),N- 2 )); OUTPUT; RUN; PROC FORMAT; VALUE SIGNIF 0.0000 - 0.0001 ='P0.0001' 0.0001 - 0.001 ='P0.001' 0.001 - 0.01 ='P0.01' 0.01 - 0.05 ='P0.05' 0.05 - 0.10 ='P0.10' 0.10 - 0.15 ='P0.15' 0.15 - 1 ='P0.15'; PROC FREQ DATA=WORK; TABLE PVALUE; FORMAT PVALUE SIGNIF.; TITLE1 "Results of the Correlation Test"; TITLE2 "-------------------------------"; TITLE3 "# of Random Numbers: N"; TITLE4 "Lags Tested: 1 to HORDER"; RUN; %MEND ; 结果: 这里只有一个P值小于0.01,9个P值介于0.01到0.05之间,绝大多数的P值大于0.15,可以说明RANUNI产生的随机数自相关不显著。 当然,与上一篇文章一样,我们可以轻松地应用SAS的作图过程画出P值的分布情况,程序如下: DATA SAMPLE(KEEP=X); DO I= 1 TO 500000 ; X=RANNOR( 123 ); OUTPUT; END; RUN ; % CORRTEST (DATA=SAMPLE,HLAG= 1000 ,VAR=X) PROC CHART DATA=WORK; VBAR PVALUE / LEVELS= 10 ; LABEL PVALUE="p-values of the Correlation Test"; RUN ; 结果: 参考资料 Xitao Fan, etc..Monte Carlo Studies: A Guide for Quantitative Researchers. SAS Institute Inc.,2002 本文章只用于学习,请不要用于商业目的,否则后果自负。
18 次阅读|0 个评论
GMT+8, 2025-12-24 20:27