2013-03-05 31 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