%MACRO bootstrap_t (table, nbBoucles=100, alpha=0.05, Log=non) ; %IF &log = non %THEN %DO ; OPTION NOMPRINT NOMLOGIC NOSYMBOLGEN NONOTES ; %END ; DATA work._travail ; SET &table ; _index_ = _N_ ; RUN ; %GLOBAL vrai ; %calcul (work._travail, outMV = vrai, poids =) ; %DO i = 1 %TO &nbBoucles ; PROC SURVEYSELECT DATA = work._travail OUT = work._samp METHOD = URS SAMPRATE = 1 SEED = &i NOPRINT ; RUN ; %calcul (work._samp, outTab = work._sampRes, poids = numberHits) ; %IF &i = 1 %THEN %DO ; DATA work._histo ; SET work._sampRes ; RUN ; %END ; %ELSE %DO ; PROC APPEND BASE = work._histo DATA = work._sampRes ; RUN ; %END ; %END ; %IF &log = non %THEN %DO ; OPTION NOTES ; %END ; DM "odsresults ; clear ; pgm off" wpgm ; PROC UNIVARIATE DATA = work._histo NOPRINT ; VAR &varCalc ; QQPLOT &varCalc / NORMAL (MU=EST SIGMA=EST) ; OUTPUT OUT = work._bootstrap_t MEAN = est_boot STD = erreur_type N = NbLoops ; RUN ; DATA work._bootstrap_t ; SET work._bootstrap_t ; borne_inf = est_boot - erreur_type * PROBIT ( &alpha/2) ; borne_sup = est_boot - erreur_type * PROBIT (1-&alpha/2) ; RUN ; TITLE1 "Intervalle de confiance à %SYSFUNC(COMPRESS(%SYSEVALF(&alpha*100))) %" ; TITLE2 "&nbBoucles boucles bootstrap" ; PROC PRINT DATA = work._bootstrap_t NOOBS ; VAR borne_: ; RUN ; TITLE ; %MEND bootstrap_t ;