Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAthanase Benard Modifié depuis plus de 9 années
1
Bootstrap pour l’ELNEJ
2
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.
3
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.
4
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.
5
L’Idée de Base du Bootstrap A) 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.
6
L’Idée de Base du Bootstrap - suite Supposons 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.
7
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: Moyenne Coefficients de Régression
8
Utiliser le Bootstrap Deux instruments: Une base de données avec des variances pour proportions - calculées par bootstrapbase de données avec des variances pour proportions Les macros bootstrapmacros bootstrap
9
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.
10
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
11
Comprendre le tableau Exemple 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 ?
12
Cliquer sur la flèche à droite de “Province” pour sélectionner la province intro/sauter
13
Sélectionner Terre-Neuve
14
Cliquer pour sélectionner C3 Age = 3
15
Puisque la proportion de filles devrait être d’environ 50%, cliquer sur Prop. Cible et sélectionner 50%.
16
Les lignes qui restent visibles contiennent les résultats que nous cherchons...
17
Maintenant on peut voir que le c.v. pour ce domaine au cycle 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
18
Comprendre le Tableau Exemple 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%
19
Cliquer et sélectionner Prop. cible de 15%
20
Cliquer et sélectionner Custom pour bs_cv
21
Sélectionner “is greater than” au premier champ
22
Finalement, taper 33.33 au deuxième champ et cliquer sur OK
23
Maintenant on peut voir les premières lignes des domaines pour lesquels on ne peut pas publier une estimation de 15% selon les normes de qualité géneralement acceptées.
24
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
25
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.
26
Macros - Détails Préparer les données. Spécifier des options et exécuter les macros. Sauvegarder et interpréter les résultats.
27
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.
28
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.
29
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 Rapports Régression Logistique Régression Linéaire
30
Exemples avec les Macros SAS a) Estimer la variance d’un total par régionla variance d’un total par région b) Estimer la variance d’une moyennela variance d’une moyenne c) Estimer la variance des coefficients de régressionla variance des coefficients de régression
31
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.
32
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.*/
33
Estimer la variance d’un total par région - suite /* %partition(domains=); *pas de partition si on ne spécifie rien;
34
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.*/
35
Estimer la variance d’un total par région - suite %total(dataset=,variable=,nb_weights=); RÉCUPÉRER LES RÉSULTATS DU FICHIER: totals
36
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";
37
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;
38
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;
39
back
41
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.
42
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.*/
43
Estimer la variance d’une moyenne - suite %ratio(dataset=,numerator=,denominator=,nb_weights=); RÉCUPÉRER LES RÉSULTATS DU FICHIER: ratios - en pourcentage
44
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";
45
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;
46
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;
47
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]
48
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 …
49
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 retour /intro/sauterintrosauter
50
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.
51
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 */
52
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
53
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";
54
Estimer la variance des coefficients de régression - suite proc 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;
55
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;
56
Estimer la variance des coefficients de régression - résultats
57
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;
58
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: Les résultats sont trés differents. Dans ce cas, il vaut mieux se fier aux résultats obtenus par bootstrap. retourretour/introintro
59
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.
60
Temps d’Exécution - Mesurer Deux 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.
61
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
62
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.
63
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.
64
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.
65
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.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.