Bootstrap pour l’ELNEJ

65
Bootstrap pour l’ELNEJ

description

Bootstrap pour l’ELNEJ. Aujourd’hui on vous présente. B O O T S T R A P. On dicutera des principes de base On va examiner le tableau de variances pour proportions (qui est basé sur les poids bootstrap). Exemples avec les macros bootstrap Revoir quelques détails techniques. Generalités. - PowerPoint PPT Presentation

Transcript of Bootstrap pour l’ELNEJ

Page 1: Bootstrap pour l’ELNEJ

Bootstrap pour l’ELNEJ

Page 2: Bootstrap pour l’ELNEJ

Aujourd’hui on vous présente

B O O T S T R A P• On dicutera des

principes de base• On va examiner le

tableau de variances pour proportions (qui est

basé sur les poids bootstrap)

• Exemples avec les macros bootstrap

• Revoir quelques détails techniques.

Page 3: Bootstrap pour l’ELNEJ

Generalités

L’Enquête Nationale sur les Enfants et les Jeunes mesure une grande varieté de caractéristiques des enfants et des jeunes.

On peut faire beaucoup d’inférence statistique

De plus, les opportunités sont multipliées en raison du caractère longitudinal de l’enquête

Un problème fondamental de l’inférence statistique est de trouver la variance de l’estimateur.

Page 4: Bootstrap pour l’ELNEJ

La Solution Bootstrap

• N’a pas besoin de formules exactes.• Fait usage des particularités du plan de sondage.• On peut l’adapter pour obtenir la précision désirée.• Demande beaucoup de ressources informatiques.

Page 5: Bootstrap pour l’ELNEJ

L’Idée de Base du BootstrapA) On prend un sous-échantillon de l’échantillon initial, en

essayant de reproduire le processus de sélection initiale.

B) Pour ce sous-échantillon on calcule les poids comme pour l’échantillon original.

Répéter A) et B) plusieurs fois - à chaque itération on obtient un nouveau poids bootstrap.

Remarquez que A) et B) utilisent les particularités du plan de sondage.

Page 6: Bootstrap pour l’ELNEJ

L’Idée de Base du Bootstrap - suiteSupposons maintenant que on veut connaître la variance d’un

estimateur:

- Calculer l’estimateur pour chacun des poids bootstrap

- Calculer la variance de l’ensemble des valeurs qu’on a obtenues.

Remarque: Ce sont ces deux étapes que l’on doit implanter dans tout logiciel qui utilise le bootstrap.

Page 7: Bootstrap pour l’ELNEJ

Pourquoi on Doit Utiliser les Particularités du Plan de Sondage

En utilisant les poids originaux on obtient un estimateur correct, mais ...

Par contre, la variance produite par des logiciels comme SAS ou SPSS n’est pas correcte - le plus souvent ces logiciels sous-estiment la vraie variance.

Voici deux exemples pour faire la comparaison:MoyenneCoefficients de Régression

Page 8: Bootstrap pour l’ELNEJ

Utiliser le Bootstrap

Deux instruments:

•Une base de données avec des variances pour proportions - calculées par bootstrap

•Les macros bootstrap

Page 9: Bootstrap pour l’ELNEJ

Des Résultats pour Proportions

Pour la variabilité des estimateurs des proportions on peut utiliser un tableau Excel avec des résultats obtenus par bootstrap.

Ce tableau est similaire aux tableaux de variances conventionnelles.

On peut choisir le domaine en utilisant l’âge et la province.

Page 10: Bootstrap pour l’ELNEJ

Des Résultats pour Proportions - suite

Puisque l’on utilise des hypothèses génerales seulement, on peut estimer la variabilité des proportions dans les cycles de l’enquête à venir.

Dans la plupart des situations, quand on a seulement besoin de proportions, ce tableau peut être suffisant.

Voici des exemples sur l’utilisation du tableau.

sauter

Page 11: Bootstrap pour l’ELNEJ

Comprendre le tableauExemple 1

Question: Quelle est la qualité (c.v) de l’estimation pour la proportion de filles agée de 3 ans à Terre-Neuve au troisième cycle?

Combien restera-t-il de filles au cycle 5 à Terre-Neuve?

Est ce que la qualité sera diminuée de façon importante au cycle 5 en raison de la réduction de l’échantillon ?

Page 12: Bootstrap pour l’ELNEJ

Cliquer sur la flèche à droite de “Province” pour sélectionner la province

intro/sauter

Page 13: Bootstrap pour l’ELNEJ

Sélectionner Terre-Neuve

Page 14: Bootstrap pour l’ELNEJ

Cliquer pour sélectionner C3 Age = 3

Page 15: Bootstrap pour l’ELNEJ

Puisque la proportion de filles devraitêtre d’environ 50%, cliquer sur Prop. Cible

et sélectionner 50%.

Page 16: Bootstrap pour l’ELNEJ

Les lignes qui restent visibles contiennent les résultats que nous cherchons ...

Page 17: Bootstrap pour l’ELNEJ

Maintenant on peut voir que le c.v. pour ce domaine aucycle 3 est 17.5% et on a 44 enfants dans l’échantillon.

Au cycle 5, nous aurons environ 35 enfants dans l’échantillon(supposant un taux de réponse de 90% pour les cycles 4 et 5),et le c.v. augmentera à 19.6%.

intro/sauter

Page 18: Bootstrap pour l’ELNEJ

Comprendre le TableauExemple 2

Question: Quels sont les domaines pour lesquels on ne peut pas publier avec une proportion de 15%?

On cherche les domaines avec un c.v. plus grand que 33.33%

Page 19: Bootstrap pour l’ELNEJ

Cliquer et sélectionner Prop. cible de 15%

Page 20: Bootstrap pour l’ELNEJ

Cliquer et sélectionner Custom pour bs_cv

Page 21: Bootstrap pour l’ELNEJ

Sélectionner “is greater than” au premier champ

Page 22: Bootstrap pour l’ELNEJ

Finalement, taper 33.33 au deuxièmechamp et cliquer sur OK

Page 23: Bootstrap pour l’ELNEJ

Maintenant on peut voir les premières lignes desdomaines pour lesquels on ne peut pas publier une

estimation de 15% selon les normes de qualité géneralement acceptées.

Page 24: Bootstrap pour l’ELNEJ

Résultats pour Proportions - Résumé

Le tableau contient des variances calculées par bootstrap en utilisant des hypothèses générales.

Il vaut mieux l’utiliser uniquement pour une analyse exploratoire, pour obtenir une réponse rapidement.

Quand on a besoin de connaître la variance plus précisément, on devrait utiliser la méthode générale du bootstrap.

intro

Page 25: Bootstrap pour l’ELNEJ

Macros - En bref

• Des poids bootstrap sont calculés par Méthodologie et sont mis à la disposition des utilisateurs.

• L’utilisateur exécute les macros.

Page 26: Bootstrap pour l’ELNEJ

Macros - Détails

• Préparer les données.

• Spécifier des options et exécuter les macros.

• Sauvegarder et interpréter les résultats.

Page 27: Bootstrap pour l’ELNEJ

Préparer les données

• On a besoin de deux fichiers:

– Le fichier des poids bootstrap

– Un fichier qui contient les variables pour l’analyse

• On doit apparier les deux - habituellement on utilise l’identificateur CHILDID.

Page 28: Bootstrap pour l’ELNEJ

Spécifier les options

On doit spécifier les options suivantes:

(i) L’estimateur.

(ii) Si on fait l’analyse globalement ou par domaines.

(iii) Des répertoires SAS.

(iv) Les noms des variables à analyser.

(v) Le nombre de poids bootstrap à utiliser.

Page 29: Bootstrap pour l’ELNEJ

Spécifier les options - suite(i) Les estimateurs intégrés dans les macros sont:

Pour d’autres estimateurs, on pourrait avoir à modifier le code.

(ii) Si on veut faire l’analyse par domaines, on doit avoir une variable qui identifie les domaines d’intérêt.

Totaux

Rapports

Différence de RapportsRégression Logistique

Régression Linéaire

Page 30: Bootstrap pour l’ELNEJ

Exemples avec les Macros SAS

a) Estimer la variance d’un total par région

b) Estimer la variance d’une moyenne

c) Estimer la variance des coefficients de régression

Page 31: Bootstrap pour l’ELNEJ

Estimer la variance d’un total par région

Problème:

Trouver la variance du nombre total de chambres à coucher

dans les maisons où l’on trouve des adolescents - tel qu’estimé avec l’échantillon.

Page 32: Bootstrap pour l’ELNEJ

Estimer la variance d’un total par région - suite/*

%partition(domains=); *pas de partition si on donne rien;

%total(dataset=,variable=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: totals

%ratio(dataset=,numerator=,denominator=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: ratios - en pourcentage -

%ratio_difference(dataset=,numerator1=,denominator1=,

numerator2=,denominator2=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: diffrat - en pourcentage -

%régression (dataset=,dependent=,independent=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: bs_reg

%logistic_reg (dataset=,dependent=,independent=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: bs_reglg

REMARQUE: tous les résultats seront sauvegardés dans le même fichier de sortie si on exécute la même macro plusieurs fois.*/

Page 33: Bootstrap pour l’ELNEJ

Estimer la variance d’un total par région - suite

/*

%partition(domains=); *pas de partition si on ne spécifie rien;

Page 34: Bootstrap pour l’ELNEJ

Estimer la variance d’un total par région - suite/*

%partition(domains=); *pas de partition si on donne rien;

%total(dataset=,variable=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: totals

%ratio(dataset=,numerator=,denominator=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: ratios - en pourcentage -

%ratio_difference(dataset=,numerator1=,denominator1=,

numerator2=,denominator2=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: diffrat - en pourcentage -

%régression (dataset=,dependent=,independent=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: bs_reg

%logistic_reg (dataset=,dependent=,independent=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: bs_reglg

REMARQUE: tous les résultats seront sauvegardés dans le même fichier de sortie si on exécute la même macro plusieurs fois.*/

Page 35: Bootstrap pour l’ELNEJ

Estimer la variance d’un total par région - suite

%total(dataset=,variable=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: totals

Page 36: Bootstrap pour l’ELNEJ

Estimer la variance d’un total par région - suite%include

"C:\users\dochcat\bootstrap\NLSCY_VES.sas";

%let weight_path = C:\users\dochcat\bootstrap\Bs_Weights;

%let weights = bvar;

libname wt_lib "&weight_path";

%let data_path = C:\users\dochcat\Data;

%let data = basic_set;

libname dt_lib "&data_path";

%let save_path = C:\users\dochcat\bootstrap\Results;

%let output = table01;

libname sv_lib "&save_path";

Page 37: Bootstrap pour l’ELNEJ

Estimer la variance d’un total par région - suite

proc sort data=wt_lib.&weights out=weights;

by childid; run;

proc sort data=dt_lib.&data (where=(cmmcq01>12))

/*garder seulement les adolescents*/ out=dataset; by childid; run;

data data_and_weights;

merge dataset(in=a) weights(in=b);

by childid;

if a;

*garder seulement les observations nécessaires;

run;

Page 38: Bootstrap pour l’ELNEJ

Estimer la variance d’un total par région - suite

/* initialiser totals */

proc datasets library=work; delete totals; run;

%partition(domains=cgehd03);

%total(dataset=data_and_weights,

variable=nb_bedrooms,

nb_weights=1000);

/*sauvegarder les résultats*/

data sv_lib.&output; set totals; run;

proc print data=sv_lib.table01; run;

Page 39: Bootstrap pour l’ELNEJ

back

Page 40: Bootstrap pour l’ELNEJ

back

Page 41: Bootstrap pour l’ELNEJ

Estimer la variance d’une moyenne

Problème:

Pour les enfants agés de 6 ans, trouver la moyenne du

nombre d’années de scolarité de la Personne la Mieux

Renseignée sur l’enfant.

Note:

Même si on n’a pas mentionné la moyenne auparavant, on

peut adapter la macro pour proportions afin de calculer une

moyenne.

Page 42: Bootstrap pour l’ELNEJ

Estimer la variance d’une moyenne - suite/*

%partition(domains=); *pas de partition si on donne rien;

%total(dataset=,variable=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: totals

%ratio(dataset=,numerator=,denominator=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: ratios - en pourcentage -

%ratio_difference(dataset=,numerator1=,denominator1=,

numerator2=,denominator2=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: diffrat - en pourcentage -

%régression (dataset=,dependent=,independent=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: bs_reg

%logistic_reg (dataset=,dependent=,independent=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: bs_reglg

REMARQUE: tous les résultats seront sauvegardés dans le même fichier de sortie si on exécute la même macro plusieurs fois.*/

Page 43: Bootstrap pour l’ELNEJ

Estimer la variance d’une moyenne - suite

%ratio(dataset=,numerator=,denominator=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER: ratios - en pourcentage

Page 44: Bootstrap pour l’ELNEJ

Estimer la variance d’une moyenne - suite

%include

"C:\users\dochcat\bootstrap\NLSCY_VES.sas";

%let weight_path = C:\users\dochcat\bootstrap\Bs_Weights;

%let weights = bvar;

libname wt_lib "&weight_path";

%let data_path = C:\users\dochcat\Data;

%let data = basic_set;

libname dt_lib "&data_path";

%let save_path = C:\users\dochcat\bootstrap\Results;

%let output = table02;

libname sv_lib "&save_path";

Page 45: Bootstrap pour l’ELNEJ

Estimer la variance d’une moyenne - suite

proc sort data=wt_lib.&weights out=weights;

by childid; run;

proc sort data=dt_lib.&data

(where=(cmmcq01=6 and cedpd04<96))

/*garder seulement les enfants agés de 6 ans

ayant des valeurs valides pour l’analyse*/

out=dataset; by childid; run;

data data_and_weights; merge dataset(in=a) weights(in=b); by childid; if a;*garde seulement les observations nécessaires; count=1; *on en a besoin pour la moyenne;run;

Page 46: Bootstrap pour l’ELNEJ

Estimer la variance d’une moyenne - suite

/* initialiser ratios */

proc datasets library=work; delete ratios; run;

%partition(domains=); *pas de partition;

%ratio(dataset=data_and_weights,

numerator=cedpd04,

denominator=count,

nb_weights=1000);

/* sauvegarder les résultats */

data sv_lib.&output; set ratios; run;

proc print data=sv_lib.table02; run;

Page 47: Bootstrap pour l’ELNEJ

Estimer la variance d’une moyenne - résultats

Remarquez que le résultat est obtenu en pourcentage. Donc on a besoin de diviser l’estimateur, les bornes de l’intervalle de confiance et l’écart-type par 100, et la variance par 100*100. Le coefficient de variation ne change pas.

Les résultats sont: Moyenne=12.8446, avec un intervalle de confiance de 95% [12.6544 , 13.0348]

Page 48: Bootstrap pour l’ELNEJ

Estimer la variance d’une moyenne - commentaires

Nous allons comparer les intervalles de confiance obtenus par bootstrap et par le logiciel SAS - si on n’utilise pas les particularités du plan de sondage.

Le code SAS suivant produira le second intervalle de confiance:

proc means mean lclm uclm data=data_and_weights;

var cedpd04;

weight w_final;

run;

Qui est …

Page 49: Bootstrap pour l’ELNEJ

Estimer la variance d’une moyenne - commentaires

… tandis que par bootstrap on obtient cet intervalle:

[12.6544 , 13.0348]

Par comparaisson on obtient ceci:

Bootstrap

Classique

On voit une augmentation d’environ 1.7 - pour cette variable.

retour /intro/sauter

Page 50: Bootstrap pour l’ELNEJ

Estimer la variance des coefficients de régression

Probléme:

Estimer la variance des coefficients de régression du score PPVT. Les variables indépendantes sont: le nombre d’années de scolarité du PMR et l’interaction positive des parents.

Page 51: Bootstrap pour l’ELNEJ

Estimer la variance des coefficients de régression - suite/*

%partition(domains=); *no partition if no variable name provided;

%total(dataset=,variable=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER : totals

%ratio(dataset=,numerator=,denominator=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER : ratios - en pourcentage -

%ratio_difference(dataset=,numerator1=,denominator1=,

numerator2=,denominator2=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER : diffrat - en pourcentage -

%régression (dataset=,dependent=,independent=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER : bs_reg

%logistic_reg (dataset=,dependent=,independent=,nb_weights=);

RÉCUPÉRER LES RÉSULTATS DU FICHIER : bs_reglg

REMARQUE: si on n’efface pas le fichier contenant les résultats,

le fichier va contenir les résultats des macros précédemment roulés */

Page 52: Bootstrap pour l’ELNEJ

Estimer la variance des coefficients de régression - suite

%régression (dataset=,dependent=,independent=, nb_weights=);

RÉCUPÉRER LES DONNÉES DU FICHIER: bs_reg

Page 53: Bootstrap pour l’ELNEJ

Estimer la variance des coefficients de régression - suite

%include

"C:\users\dochcat\bootstrap\NLSCY_VES.sas";

%let weight_path = C:\users\dochcat\bootstrap\Bs_Weights;

%let weights = bvar;

libname wt_lib "&weight_path";

%let data_path = C:\users\dochcat\Data;

%let data = basic_set;

libname dt_lib "&data_path";

%let save_path = C:\users\dochcat\bootstrap\Results;

%let output = table03;

libname sv_lib "&save_path";

Page 54: Bootstrap pour l’ELNEJ

Estimer la variance des coefficients de régression - suiteproc sort data=wt_lib.&weights out=weights;

by childid; run;

proc sort data=dt_lib.&data

(where=(cedpd04<96 and cprcs03<96

and cppcs01<888 and cmmcq01 in (6))) out=dataset;

/*toujours enlever les enregistrements avec des codes de non-réponse*/

by childid; run;

data data_and_weights; merge dataset(in=a) weights; by childid; if a; *garde seulement les enregistrements nécessaires;run;

Page 55: Bootstrap pour l’ELNEJ

Estimer la variance des coefficients de régression - suite

%start_chronometer;

/* initialise bs_reg */

proc datasets library=work; delete bs_reg; run;

%partition(domains=);

%régression( dataset=data_and_weights,

dependent=cppcs01,

independent=cprcs03 cedpd04,

nb_weights=100);

/* sauvegarde des résultats */

data sv_lib.&output; set bs_reg; run;

%stop_chronometer;

Page 56: Bootstrap pour l’ELNEJ

Estimer la variance des coefficients de régression - résultats

Page 57: Bootstrap pour l’ELNEJ

Estimer la variance des coefficients de régression - commentaires

Comparons les coefficients de variation bootstrap des paramètres de régression avec ceux produits avec la procédure REG de SAS.

proc reg data=data_and_weights;model cppcs01 = cprcs03 cedpd04;weight an_weight;

run;quit;

Page 58: Bootstrap pour l’ELNEJ

Estimer la variance des coefficients de régression - commentaires

Voici les

résultats

de SAS :

On calcule le C.V. en utilisant l’estimation et l’écart-type:SAS Bootstrap

Intercept 5.33% 8.75%CPRCS03 27.55% 46.42%CEDPD04 13.08% 21.61%

Les résultats sont trés differents. Dans ce cas, il vaut mieux se fier aux résultats obtenus par bootstrap.

retour/intro

Page 59: Bootstrap pour l’ELNEJ

Temps d’Exécution• Géneralement, le temps d’exécution est égal au produit du

nombre de poids bootstrap utilisés par le temps requis pour exécuter une estimation. Par exemple, les macros pour des régressions prennent plus de temps, comparativement aux autres macros présentées.

• À titre d’exemple, cosidérer un Pentium II 350 Mhz avec 128MB de mémoire. Sur cet ordinateur, on a exécuté des bootstrap pour la variance des coefficients de régression avec 1,000 poids. Le temps requis a eté de 45 à 60 minutes

• Puisque l’on utilise de gros fichiers, la vitesse peut augmenter de façon importante si on accroit la mémoire de l’ordinateur.

Page 60: Bootstrap pour l’ELNEJ

Temps d’Exécution - MesurerDeux macros simples sont fournies dans le but de mesurer le

temps d’exécution. Voici comment les utiliser:…….

%start_chronometer;

%partition(domains=cgehd03);

%total(dataset=data_and_weights,variable=nb_bedrooms,

nb_weights=1000);

%stop_chronometer;

…….

Après l’appel de la macro %stop_chronometer le nombre de secondes écoulées est inscrit dans le journal (log) de SAS.

Page 61: Bootstrap pour l’ELNEJ

Notes

• Les moyennes sont en fait des rapports. L’utilisateur doit inclure les variable auxiliaires pour cette situation - voir le deuxième exemple.

• Géneralement, les utilisateurs peuvent trouver des astuces utiles pour leurs programmes dans le fichier NLSCY_VES.sas. Il ne faut cependant pas modifier le fichier lui-même si l’on veut profiter de l’expérience des autres utilisateurs.

sauter

Page 62: Bootstrap pour l’ELNEJ

Notes

• Tous les résultats seront sauvegardés dans le même fichier de sortie si on exécute la même macro plusiers fois. Lorsque le fichier est effacé, on perd les résultats de l’exécution antérieure.

• Les macros utilisent des fichiers temporaires. Des problèmes sont possibles si l’utilisateur emploie les mêmes noms par accident. Si vous soupçonnez que c’est le cas, vouz pouvez vérifier le journal (log) de SAS et trouvez les noms utilisés.

Page 63: Bootstrap pour l’ELNEJ

Notes• Les estimations sont fournies avec les variances. Pour les

estimations, on utilise les poids originaux, et seulement leurs variances sont calculées en utilisant les poids bootstrap. Inclure les estimations permet aux utilisateurs de vérifier leur travail.

Page 64: Bootstrap pour l’ELNEJ

Notes

• Lorsque l’on expérimente, on peut gagner du temps si l’on exécute seulement les étapes nécessaires. Par exemple si le “data_and_weights” sont dans l’espace de travail, on peut exécuter les macros seulement. De plus, en utilisant un petit nombre de poids, on réduit le temps d’exécution considérablement.

• Parfois les macros produisent beaucoup de texte dans la fenêtre du journal (log). Si vous exécutez les macros sans supervision, il est préférable de sauvegarder le contenu du journal (log) dans un fichier.

Page 65: Bootstrap pour l’ELNEJ

Conclusions

• Les macros qu’on a présentées ici permettent d’utiliser les poids bootstrap facilement. Dans la plupart des cas, l’utilisateur a besoin de programmer seulement les détails concernant l’analyse et non pas le bootstrap lui-même.

• Quand on a besoin d’estimateurs plus complexes, les macros présentées peuvent servir de point de départ pour développer d’autres macros.