如何用spss产生随机数

2024-05-05 16:51

1. 如何用spss产生随机数

分类:  电脑/网络 >> 电脑常识 
   解析: 
  
 在SPSS中,菜单Compute 根据不同的分布要求,可以选择以RV开头的函数进行计算,产生随机数字,注意待存放数据的数据格Cell必须是已被激活或者说已填入空值的格子!
 
 1. 在SPSS中,产生一系列随机数方法是调用Transform 菜单下的Compute次级菜单,在其中调用Functions列表中的以RV开头的函数来计算产生。其中VR开头的函数有若干,表示其各自所产生的随机数符合不同的分布,如常态分布,t分布,F分布等。按照cunguo的称述,应该是想要生成平均分布的随机数,那就选择RV.UNIFORM函数来计算了。随机种子嘛,就不用去管它了,系统自己会解决的。
 
 2.建议使用MS Excel来解决你的问题,这样也许更简单一些。EXCEL菜单:工具>加载宏>选择“分析工具库”和“分析工具库--VBA函数”。然后在工具菜单的最下边你将看到多了一个工具“数据分析”。就是这个了选择其中的随机数发生器,剩下的选择该自己会揣摩吧,记住分布类型仍然需要选择的。如果你在菜单中找不到那两个宏,说明没有安装,OFFICE的典型安装是不装的,重新运行OFFICE的SETUP,自定义装上就可以了!
 
 只需要在稍微补充一点:SPSS *** 提供了真随机数和伪随机数两种,RV系列均为真随机数,在编程上其随机种子一般都是取自流逝的时间,所以结果不可重复。而NORMAL(stddev)等是伪随机数,只要预先设置好随机种子,其结果均可重现。
 
  
 
 以下介绍几个简单SPSS小程序
 
 1 随机数字产生程序
 
 input program. 
 
 loop #I=1 to 20.
 
 pute x=uniform(1).
 
 pute Y=trunc(x*1000).
 
 end case.
 
 End loop.
 
 End file. 
 
 End input program. 
 
 execute.
 
 2 随机分组程序
 
 input program. 
 
 loop #I=1 to 20.
 
 pute x=uniform(1).
 
 end case.
 
 End loop.
 
 End file. 
 
 End input program. 
 
 execute.
 
 rank variables=x(a)/rank/print=yes/ties=mean.
 
 do if (rx>10).
 
 recode rx(11thru 20=2) into group.
 
 end if .
 
 execute.
 
 do if (rx<11).
 
 recode rx(1thru 10=1) into group.
 
 end if .
 
 execute.
 
 或
 
 input program. 
 
 loop #I=1 to 20.
 
 pute x=uniform(1).
 
 end case.
 
 End loop.
 
 End file. 
 
 End input program. 
 
 execute.
 
 rank variables=x(a)/rank/print=yes/ties=mean.
 
 recode rx(11thru 20=2) into group.
 
 recode rx(1thru 10=1) into group.
 
 execute.
 
 分四组
 
 input program. 
 
 loop #I=1 to 20.
 
 pute x=uniform(1).
 
 end case.
 
 End loop.
 
 End file. 
 
 End input program. 
 
 execute.
 
 rank variables=x(a)/rank/print=yes/ties=mean.
 
 recode rx(16thru 20=4) into group.
 
 recode rx(11thru 15=3) into group.
 
 recode rx(6thru 10=2) into group.
 
 recode rx(1thru 5=1) into group.
 
 execute.
 
 3 随机区组设计
 
 input program. 
 
 loop #I=0 to 29.
 
 pute x=rnd(#I/5+0.5).
 
 end case.
 
 End loop.
 
 End file. 
 
 End input program. 
 
 execute.
 
 pute ii=uniform(1).
 
 rank variables=II by x.
 
 execute.
 
 4 分层随机区组设计程序
 
 input program.
 
 Loop #i=0 to 143.
 
 Compute x=rnd(#i/24+0.5).
 
 Compute xx=rnd((#i-(x-1)*24)/4+0.5).
 
 end case.
 
 End loop.
 
 End file. 
 
 End input program.
 
 execute.
 
 pute ii=uniform(1).
 
 rank variables=II by x xx.
 
 execute.
 
 Recode rii (1=1) (2=2) (3=1) (4=2) into group.
 
 Execute.
 
 STRING 组别 (A8) .
 
 RECODE group (1=\'treat\') (2=\'contro\') INTO 组别 .
 
 EXECUTE .
 
 5 分层随机区组设计程序2
 
 pute yy=rnd(#i/1+0.5).
 
 Compute x=rnd(#i/24+0.5).
 
 Compute xx=rnd((#i-(x-1)*24)/4+0.5).
 
 end case.
 
 End loop.
 
 End file. 
 
 End input program.
 
 execute.
 
 pute ii=uniform(1).
 
 rank variables=II by x xx.
 
 execute.
 
 Recode rii (1=1) (2=2) (3=1) (4=2) into group.
 
 Execute.
 
 STRING 组别 (A8) .
 
 RECODE group (1=\'treat\') (2=\'contro\') INTO 组别 .
 
 EXECUTE.

如何用spss产生随机数