#delimit ; log using bepprobsamp.out, replace text ; set more off; set linesize 79; set mem 2000000; set matsize 800; set obs 1000000 ; set seed 773914648 ; gen id = _n ; corr2data X1 X2 X3 X4, n(1000000) means(2 3 4 5) corr(1 .2 1 .45 -.2 1 .55 .6 .65 1) cstorage(lower) ; summarize X1 X2 X3 X4 ; corr X1 X2 X3 X4 ; sort X4 ; egen X5=fill (0 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4) ; egen X6=fill (0 1 1 1 1 1 2 2 2 3 3 3 3 3 4 4 4 1 1 1 2 2 2 2 2 3 3 3 4 4 4 4 4) ; egen X7=fill (0 0 0 0 1 1 1 2 2 2 2 3 3 3 3 3 4 4 4 4 4 4 1 1 1 2 2 2 2 3 3 3 3 3 4 4 4 4 4 4) ; gen X8=(X4*X5*X6*X7) ; summarize X1 X2 X3 X4 X5 X6 X7 X8 ; corr X1 X2 X3 X4 X5 X6 X7 X8 ; sort X8 ; gen X8order = _n ; corr id X8order X8 X4 ; gen peers=(X4*X5*X6*X7) ; save qel005.dta, replace ; discard ; summarize ; program define sampchka, rclass ; tempname corX1tX4 ; tempfile results ; postfile `corX1tX4' d12 d13 d14 d23 d24 d34 using results, replace ; quietly { ; forvalues i = 1/1 { ; drop _all ; use qel005.dta ; bsample 40 ; corr X1 X2 X3 X4 ; matrix accum R = X1 X2 X3 X4, nocons dev ; matrix R = corr(R) ; return scalar d12=R[1,2] ; return scalar d13=R[1,3] ; return scalar d14=R[1,4] ; return scalar d23=R[2,3] ; return scalar d24=R[2,4] ; return scalar d34=R[3,4] ; post `corX1tX4' (r(d12)) (r(d13)) (r(d14)) (r(d23)) (r(d24)) (r(d34)) ; } ; } ; postclose `corX1tX4' ; end ; set seed 8675309 ; simulate "sampchka" X1X2=(r(d12)) X1X3=(r(d13)) X1X4=(r(d14)) X2X3=(r(d23)) X2X4=(r(d24)) X3X4=(r(d34)), reps(10) ; summarize ; gen rep=_n ; saveold qelsimu005.dta, replace ; summarize ; list rep X1X2 X1X3 X1X4 X2X3 X2X4 X3X4, table ; list rep X1X2 X1X3 X1X4 X2X3 X2X4 X3X4, clean ; clear ; exit ;