2013-03-05 62 views
0

我将以下宏组合在一起以获得各种大小的随机样本,然后计算给定次数的平均值。我也想在MEAN旁边计算STDEV。我曾尝试对脚本进行各种修改,但是我正在努力应用我认为正确的语法。谢谢你的帮助。在此宏中包含STDEV并致电

问候

安迪

DEFINE !sample(myvar !TOKENS(1) 
/nbsampl !TOKENS(1) 
/size !CMDEND). 

myvar = the variable of interest (here we want the mean of salary) 
nbsampl = number of samples. 
size = the size of each samples. 


!LET !first='1' 
!DO !ss !IN (!size) 
!DO !count = 1 !TO !nbsampl. 

GET FILE='E:\Monte carlo testing\s1.sav'. 
COMPUTE draw=uniform(1). 
SORT CASES BY draw. 
N OF CASES !ss. 

COMPUTE samplenb=!count. 
COMPUTE ss=!ss. 

AGGREGATE 
/OUTFILE=* 
/BREAK=samplenb 
/!myvar = MEAN(!myvar) /ss=FIRST(ss). 

!IF (!first !NE '1') !THEN 
ADD FILES /FILE=* /FILE='E:Monte carlo testing\sample.sav'. 
!IFEND 
SAVE OUTFILE='E:\Monte carlo testing\sample.sav'. 
!LET !first='0' 

!DOEND. 
!DOEND. 

VARIABLE LABEL ss 'Sample size'. 
EXAMINE 
VARIABLES=salary BY ss /PLOT=BOXPLOT/STATISTICS=NONE/NOTOTAL 
/MISSING=REPORT. 

!ENDDEFINE. 


!sample myvar=VAR00001 nbsampl=200 size= 1 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100 

回答

0

这是否帮助?

AGGREGATE 
/OUTFILE=* 
/BREAK=samplenb 
/!myvar = MEAN(!myvar) 
/sd = STDEV(!myvar) 
/ss=FIRST(ss). 
+0

非常感谢。我会相应地修改并继续。 – 2013-03-06 13:28:24