*======================================================* METHODES QUALITATIVES Séance d'exercices n°3 : La régression log-linéaire *=======================================================; /* ----------------------------------------------------------------------------------------------------------------------------- Etape 0 : Sélectionner les variables que l'on va étudier grâce aux modèles de régression log-linéaire (chapitre 2). On repart du dernier dataset créé lors de la séance n°1 : "datalabel" stocké dans la librairie "out" - Commencez par assigner les librairies - OUT : chemin vers sous-dossier DATA - LIBRARY : chemin vers sous-dossier FORMATS - Créer un nouveau dataset appelé "loglin" stocké dans la librairie out à partir du dataset "datalabel" - Conservez uniquement les variables suivantes : - EVALDEMO2 EVALDEMO4(la variable d'intérêt peut être aussi bien binaire que polytomiale dans le modèle log-linéaire) - polintr2 et blgetmg (variables explicatives à 2 niveaux) - reg3 (variable explicative à 3 niveaux) ----------------------------------------------------------------------------------------------------------------------------- */ LIBNAME LIBRARY 'C:\Users\gemarchand\Desktop\QUALI-TP\FORMATS'; LIBNAME OUT 'C:\Users\gemarchand\Desktop\QUALI-TP\DATA'; data out.loglin; set out.datalabel; keep evaldemo2 evaldemo4 polintr2 blgetmg reg3 ; run; *Vérifiez que le dataset a bien été créé via le log : NOTE : The data set OUT.LOGLIN has 1869 observations and 5 variables; /* -------------------------------------------------------------------------------------------------------------------------------- Modèle 1 : TABLE 2x2 - Variables : X = EVALDEMO2, Y = blgetmg - Réaliser un rapport (loglin_2x2 à stocker dans le sous-dossier RESULTS) en format pdf ayant pour titre général : 'Modèle log-linéaire : Table 2x2 : Y = EVALDEMO2, X = blgetmg' - Ce rapport doit être composé de trois parties : - La première aura pour titre "Table de contingence" Vous y présenterez la table des fréquences de la variable evaldemo2 croisée avec blgetmg. Utilisez l'option "out = " afin de stocker le résultat de la proc freq dans un dataset temporaire "ex1" qui vous servira à construire le modèle log-linéaire. A partir de cette table, calculez les fréquences attendues en cas d'indépendance (avec une calculatrice). Sont-elles fortement éloignées des fréquences observées? - La deuxième partie aura pour titre : "Modèle d'indépendance" - La troisième aura pour titre : "Modèle saturé" Présentez-y les sorties de la proc genmod (adaptez les paramètres au type de modèle construit) NB : Catégories de référence pour evaldemo2 : "High" pour blgetmg : "No" - Interprétez les sorties et répondez aux questions suivantes : 1. L'hypothèse d'indépendance est-elle plausible? Si oui, quelles sont les valeurs plausibles pour les 3 paramètres du modèle? 2. Si non, quelles sont les valeurs plausibles pour le rapport de cotes d'intérêt (qui quantifie le lien entre X et Y)? 3. Pourquoi les valeurs de la statistique de Khi-2 sont-elles différentes entre les sorties de type 1 et de type 3? - Exercice : utilisez les estimations du modèle d'indépendance pour retrouver les fréquences attendues que vous avez calculées supra à partir de la table de contingence. Utilisez celles du modèle saturé pour retrouver les fréquences observées. /* --------------------------------------------------------------------------------------------------------------------------------*/ ods pdf file = 'C:\Users\gemarchand\Desktop\QUALI-TP\RESULTS\loglin_2x2.pdf'; option nodate; title1 'Modèle log-linéaire : Table 2x2 : Y = EVALDEMO2, X = blgetmg'; title2 "Table de contingence"; proc freq data = out.loglin; tables blgetmg*evaldemo2/ nocol norow nopercent out = ex1; run; title2 "Modèle d'indépendance"; proc genmod data = ex1; class evaldemo2 blgetmg /param = ref ref = first; model count = evaldemo2 blgetmg/dist=poisson link = log; run; title2 "Modèle saturé"; proc genmod data = ex1; class evaldemo2 blgetmg /param = ref ref = first; model count = evaldemo2 blgetmg evaldemo2*blgetmg/dist=poisson link = log type1 type3; run; title; ods pdf close; /* -------------------------------------------------------------------------------------------------------------------------------- Modèle 2 : TABLE 2x3 - Variables : Y = EVALDEMO2, X = reg3 - Réaliser un rapport (loglin_2x3 à stocker dans le sous-dossier RESULTS) en format pdf ayant pour titre général : 'Modèle log-linéaire : Table 2x3 : Y = EVALDEMO2, X = reg3' - Ce rapport doit être composé de trois parties : 1. Table de contingence 2. Modèle d'indépendance 3. Troisième partie : "Modèle saturé Catégories de référence pour evaldemo2 : "High" pour reg3 : faites tourner une première fois le modèle avec "Wal" comme référence puis une deuxième fois avec "Fl" afin d'estimer les paramètres pour tous les contrastes. - Interprétez les sorties et répondez aux questions suivantes : 1. L'hypothèse d'indépendance est-elle plausible? Si oui, quelles sont les valeurs plausibles pour les 3 paramètres du modèle? 2. Si non, quelles sont les régions qui diffèrent significativement? 3. Quelles sont les valeurs plausibles pour les 3 rapports des cotes d'évaluation (Bxl Vs Wal, Wal Vs Fl, Bxl Vs Fl). Peut-on en conclure que la probabilité d'évaluer positivement la démocratie en Belgique est plus élevée à Bruxelles qu'en Flandre et en Wallonie? /* --------------------------------------------------------------------------------------------------------------------------------*/ ods pdf file = 'C:\Users\gemarchand\Desktop\QUALI-TP\RESULTS\loglin_2x3.pdf'; title1 'Modèle log-linéaire : Table 2x3 : Y = EVALDEMO2, X = reg3'; title2 "Table de contingence"; proc freq data = out.loglin; tables reg3*evaldemo2/nocol norow nopercent out = ex2; run; title2 "Modèle d'indépendance"; proc genmod data = ex2 descending; class evaldemo2 reg3 (ref = "Wal")/param = ref ref = first; model count = evaldemo2 reg3/dist=poisson link = log; run; title2 "Modèle saturé - région de référence = Wallonie"; proc genmod data = ex2; class evaldemo2 reg3 (ref = "Wal") /param = ref ref = first; model count = evaldemo2 reg3 evaldemo2*reg3/dist=poisson link = log type1 type3; run; title2 "Modèle saturé - région de référence = Flandre"; proc genmod data = ex2; class evaldemo2 reg3 (ref = "Fl") /param = ref ref = first; model count = evaldemo2 reg3 evaldemo2*reg3/dist=poisson link = log type1 type3; run; title; ods pdf close; /* -------------------------------------------------------------------------------------------------------------------------------- Modèle 3a : TABLE 2x2x3 - Variables : X = EVALDEMO2, Y = blgetmg, Z = reg3 - Réaliser un rapport (loglin_2x2x3a à stocker dans le sous-dossier RESULTS) en format pdf ayant pour titre général : 'Modèle log-linéaire : Table 2x2x3 : X = EVALDEMO2, Y = blgetmg, Z = reg3' - Présentez-y : - la table de contingence - les différentes étapes de sélection du modèle - les estimations des paramètres pour le modèle final. NB : Catégories de référence pour evaldemo2 : "High", pour blgetmg : "No", pour reg3 : "Wal" Prenez ensuite comme référence "Fl" (modèle final uniquement) afin d'estimer les paramètres pour tous les contrastes. - Interprétez les sorties : - Quelle est la structure de dépendance entre les variables qui se dégage du modèle final? - Procédez à l'examen des coefficients relatifs aux RC significatifs pour comprendre la nature de ces liens. - Quelles informations supplémentaires/différentes apparaissent dans ce modèle 3a (blgetmg et reg3 inclues simultanément) par rapport aux modèles 1 et 2 qui envisageaient les relations entre evaldemo2 et ces deux variables séparément? --------------------------------------------------------------------------------------------------------------------------------*/ ods pdf file = 'C:\Users\gemarchand\Desktop\QUALI-TP\RESULTS\loglin_2x2x3a.pdf'; title1 'Modèle log-linéaire : Table 2x2x3 : X = EVALDEMO2, Y = blgetmg, Z = reg3'; title2 "Table de contingence"; proc freq data = out.loglin; tables blgetmg*reg3*evaldemo2/nocol norow nopercent out = ex3a; run; title2 "Modèle saturé"; proc genmod data = ex3a; class evaldemo2 blgetmg reg3 (ref='Wal')/param = ref ref = first; model count = evaldemo2 blgetmg reg3 blgetmg*reg3 evaldemo2*blgetmg evaldemo2*reg3 evaldemo2*blgetmg*reg3 /dist=poisson link = log type1 type3; run; *- Sur base des sorties de type 1 et de type 3, on peut déjà conclure que le retrait de XYZ est une hypothèse plausible. - Sur base de la sortie de type 1, on peut aussi conclure que l'indépendance entre evaldemo2 et reg3 conditionnellement à blgetmg n'est pas une hypothèse plausible; title2 "Modèle sans l'interaction du 3ème ordre"; proc genmod data = ex3a; class evaldemo2 blgetmg reg3 (ref='Wal')/param = ref ref = first; model count = evaldemo2 blgetmg reg3 blgetmg*reg3 evaldemo2*blgetmg evaldemo2*reg3 /dist=poisson link = log type1 type3; run; *- Sur base de la sortie de type 3, on peut conclure que l'indépendance entre evaldemo2 et blgetmg conditionnellement à reg3 est une hypothèse plausible - Si on veut pouvoir tirer la même conclusion sur base de la sortie de type 1, il suffit d'inverser l'ordre de X*Y et X*Z dans l'écriture de l'équation ; proc genmod data = ex3a; class evaldemo2 blgetmg reg3 (ref='Wal')/param = ref ref = first; model count = evaldemo2 blgetmg reg3 blgetmg*reg3 evaldemo2*reg3 evaldemo2*blgetmg/dist=poisson link = log type1 type3; run; *- Sur base de cette dernière sortie de type 1, on peut enfin conclure que conclure l'indépendance entre X et les 2 autres variables n'est une hypothèse plausible (autrement dit, il n'est plus possible de simplifier le modèle après le retrait de XY|Z) --> Conclusion : on retient le modèle d'indépendance de evaldemo2 et blgetmg conditionnelle à reg3; title2 "Modèle final : Indépendance de evaldemo2 et blgetmg conditionnelle à reg3"; title3 "Région de référence : Wallonie"; proc genmod data = ex3a; class evaldemo2 blgetmg reg3 (ref='Wal')/param = ref ref = first; model count = evaldemo2 blgetmg reg3 blgetmg*reg3 evaldemo2*reg3 /dist=poisson link = log type1 type3; run; title3 "Région de référence : Flandre"; proc genmod data = ex3a; class evaldemo2 blgetmg reg3 (ref='Fl')/param = ref ref = first; model count = evaldemo2 blgetmg reg3 blgetmg*reg3 evaldemo2*reg3 /dist=poisson link = log type1 type3; run; title; ods pdf close; /* -------------------------------------------------------------------------------------------------------------------------------- Modèle 3b : TABLE 2x2x3 - Variables : X = EVALDEMO2, Y = polintr2, Z = reg3 - Réaliser un rapport (loglin_2x2x3b à stocker dans le sous-dossier RESULTS) en format pdf ayant pour titre général : 'Modèle log-linéaire : Table 2x2x3 : X = EVALDEMO2, Y = polintr2, Z = reg3' - Présentez-y : - la table de contingence - les différentes étapes de sélection du modèle - les estimations des paramètres pour le modèle final. NB : Catégories de référence pour evaldemo2 : "High", pour polintr2 : "Interested", pour reg3 : "Wal" Prenez ensuite comme référence "Fl" (modèle final uniquement) afin d'estimer les paramètres pour tous les contrastes. - Interprétez les sorties : - Quelle est la structure de dépendance entre les variables qui se dégage du modèle final? - Procédez à l'examen des coefficients relatifs aux RC significatifs pour comprendre la nature de ces liens. --------------------------------------------------------------------------------------------------------------------------------*/ ods pdf file = 'C:\Users\gemarchand\Desktop\QUALI-TP\RESULTS\loglin_2x2x3b.pdf'; title1 'Modèle log-linéaire : Table 2x2x3 : X = EVALDEMO2, Y = polintr2, Z = reg3'; title2 "Table de contingence"; proc freq data = out.loglin; tables polintr2*reg3*evaldemo2/nocol norow nopercent out = ex3b; run; title2 "Modèle saturé"; proc genmod data = ex3b; class evaldemo2 polintr2 reg3 (ref='Wal')/param = ref ref = first; model count = evaldemo2 polintr2|reg3 evaldemo2*polintr2 evaldemo2*reg3 evaldemo2*polintr2*reg3 /dist=poisson link = log type1 type3; run; *- Sur base des sorties de type 1 et de type 3, on peut déjà conclure que le retrait de XYZ est une hypothèse plausible. - Sur base de la sortie de type 1, on peut aussi conclure que l'indépendance entre evaldemo2 et reg3 conditionnellement à polintr2 n'est pas une hypothèse plausible --> Il faut maintenant tester si l'indépendance entre evaldemo2 et polintr2 conditionnellement à reg3 est une hypothèse plausible Pour ce faire, on inverse l'ordre de X*Y et X*Z dans l'équation du modèle; title2 "Modèle sans l'interaction du 3ème ordre"; title3 "Région de référence : Wallonie"; proc genmod data = ex3b; class evaldemo2 polintr2 reg3 (ref='Wal')/param = ref ref = first; model count = evaldemo2 polintr2|reg3 evaldemo2*reg3 evaldemo2*polintr2 /dist=poisson link = log type1 type3; run; *Sur base des sorties de type 1 et de type 3, on conclut que le retrait de XY|Z n'est pas une hypothèse plausible. L'interaction entre l'intérêt pour la politique et l'évaluation de la démocratie demeure significative quand on contrôle la région; title3 "Région de référence : Flandre"; proc genmod data = ex3b; class evaldemo2 polintr2 reg3 (ref='Fl')/param = ref ref = first; model count = evaldemo2 polintr2|reg3 evaldemo2*reg3 evaldemo2*polintr2 /dist=poisson link = log type1 type3; run; title; ods pdf close; /* -------------------------------------------------------------------------------------------------------------------------------- Modèle 4 : TABLE 4x2x3 - Variables : X = EVALDEMO4, Y = polintr2, Z = reg3 - Réaliser un rapport (loglin_4x2x3 à stocker dans le sous-dossier RESULTS) en format pdf ayant pour titre général : 'Modèle log-linéaire : Table 4x2x3 : X = EVALDEMO4, Y = polintr2, Z = reg3' - Présentez-y : - la table de contingence - les différentes étapes de sélection du modèle - les estimations des paramètres pour le modèle final. NB : Modifiez les catégories de références pour X et Z jusqu'à obtenir les estimations de tous les contrastes possibles. - Interprétez les sorties : - Quelle est la structure de dépendance entre les variables qui se dégage du modèle final? Est-elle similaire à celle du modèle précédent (avec réponse binaire)? - Procédez à l'examen des coefficients relatifs aux RC significatifs pour comprendre la nature de ces liens. - Présentez l'information pertinente de la manière la plus résumée possible. Tirez-en des conclusions claires et concises. - Quels sont les avantages/désavantages de ce modèle à réponse polytomiale par rapport au précédent (3b - réponse binaire)? /* --------------------------------------------------------------------------------------------------------------------------------*/ ods pdf file = 'C:\Users\gemarchand\Desktop\QUALI-TP\RESULTS\loglin_4x2x3.pdf'; title1 'Modèle log-linéaire : Table 4x2x3 : X = EVALDEMO4, Y = polintr2, Z = reg3'; title2 "Table de contingence"; proc freq data = out.loglin; tables polintr2*reg3*evaldemo4/nocol norow nopercent out = ex4; run; /* Sélection du modèle */ title2 "Modèle saturé"; proc genmod data = ex4; class evaldemo4 (ref = 'Very democratic') polintr2 (ref = 'Interested') reg3 (ref='Wal')/param = ref; model count = evaldemo4 polintr2|reg3 evaldemo4*polintr2 evaldemo4*reg3 evaldemo4*polintr2*reg3 /dist=poisson link = log type1 type3; run; *- Sur base des sorties de type 1 et de type 3, on peut conclure que le retrait de XYZ est une hypothèse plausible. - Sur base de la sortie de type 1, on peut aussi conclure que l'indépendance entre evaldemo4 et reg3 conditionnellement à polintr2 n'est pas une hypothèse plausible --> Il faut maintenant tester si l'indépendance entre evaldemo4 et polintr2 conditionnellement à reg3 est une hypothèse plausible Pour ce faire, on inverse l'ordre de X*Y et X*Z dans l'équation du modèle; title2 "Modèle sans l'interaction du 3ème ordre"; proc genmod data = ex4; class evaldemo4 (ref = 'Very democratic') polintr2 (ref = 'Interested') reg3 (ref='Wal')/param = ref; model count = evaldemo4 polintr2|reg3 evaldemo4*reg3 evaldemo4*polintr2/dist=poisson link = log type1 type3; run; *Sur base des sorties de type 1 et de type 3, on conclut que le retrait de XY|Z n'est pas une hypothèse plausible. L'interaction entre l'intérêt pour la politique et l'évaluation de la démocratie (4niveaux) demeure significative quand on contrôle la région; /* Modèle final retenu = sans interaction du 3ème ordre --> Estimation des paramètres pour les différents niveaux de référence */ proc genmod data = ex4; class evaldemo4 (ref = 'Very democratic') polintr2 (ref = 'Interested') reg3 (ref='Wal')/param = ref; model count = evaldemo4 polintr2|reg3 evaldemo4*reg3 evaldemo4*polintr2/dist=poisson link = log type1 type3; run; proc genmod data = ex4; class evaldemo4 (ref = 'Quite democratic') polintr2 (ref = 'Interested') reg3 (ref='Wal')/param = ref; model count = evaldemo4 polintr2|reg3 evaldemo4*reg3 evaldemo4*polintr2/dist=poisson link = log type1 type3; run; proc genmod data = ex4; class evaldemo4 (ref = 'Hardly democratic') polintr2 (ref = 'Interested') reg3 (ref='Wal')/param = ref; model count = evaldemo4 polintr2|reg3 evaldemo4*reg3 evaldemo4*polintr2/dist=poisson link = log type1 type3; run; proc genmod data = ex4; class evaldemo4 (ref = 'Not democratic') polintr2 (ref = 'Interested') reg3 (ref='Wal')/param = ref; model count = evaldemo4 polintr2|reg3 evaldemo4*reg3 evaldemo4*polintr2/dist=poisson link = log type1 type3; run; /* Idem mais avec Bxl plutôt que Wal comme référence pour la région */ proc genmod data = ex4; class evaldemo4 (ref = 'Very democratic') polintr2 (ref = 'Interested') reg3 (ref='Bxl')/param = ref; model count = evaldemo4 polintr2|reg3 evaldemo4*reg3 evaldemo4*polintr2/dist=poisson link = log type1 type3; run; proc genmod data = ex4; class evaldemo4 (ref = 'Quite democratic') polintr2 (ref = 'Interested') reg3 (ref='Bxl')/param = ref; model count = evaldemo4 polintr2|reg3 evaldemo4*reg3 evaldemo4*polintr2/dist=poisson link = log type1 type3; run; proc genmod data = ex4; class evaldemo4 (ref = 'Hardly democratic') polintr2 (ref = 'Interested') reg3 (ref='Bxl')/param = ref; model count = evaldemo4 polintr2|reg3 evaldemo4*reg3 evaldemo4*polintr2/dist=poisson link = log type1 type3; run; proc genmod data = ex4; class evaldemo4 (ref = 'Not democratic') polintr2 (ref = 'Interested') reg3 (ref='Bxl')/param = ref; model count = evaldemo4 polintr2|reg3 evaldemo4*reg3 evaldemo4*polintr2/dist=poisson link = log type1 type3; run; title; ods pdf close;