Advertisement
Guest User

TP0

a guest
Aug 14th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SAS 12.75 KB | None | 0 0
  1. /* -----------------------------------------------------------------------------------------------------------------------------
  2.    Etape 0 : S?lectionner les variables que l'on va ?tudier gr?ce aux mod?les de r?gression log-lin?aire (chapitre 2).
  3.    On repart du dernier dataset cr?? lors de la s?ance n?1 : "datalabel" stock? dans la librairie "out"
  4.    - Commencez par assigner les librairies
  5.         - OUT : chemin vers sous-dossier DATA
  6.         - LIBRARY : chemin vers sous-dossier FORMATS
  7.    - Cr?er un nouveau dataset appel? "loglin" stock? dans la librairie out ? partir du dataset "datalabel"
  8.    - Conservez uniquement les variables suivantes :
  9.         - EVALDEMO2 EVALDEMO4(la variable d'int?r?t peut ?tre aussi bien binaire que polytomiale dans le mod?le log-lin?aire)
  10.         - polintr2 et blgetmg (variables explicatives ? 2 niveaux)
  11.         - reg3 (variable explicative ? 3 niveaux)  
  12.    ----------------------------------------------------------------------------------------------------------------------------- */
  13.  
  14. LIBNAME LIBRARY 'D:\Users\AdelinouxX\Desktop\Travail_SAS\FORMAT';
  15. LIBNAME OUT 'D:\Users\AdelinouxX\Desktop\Travail_SAS\DATA';
  16.  
  17. data out.loglin;
  18.     set out.datalabel;
  19.     keep happy3 health3 sclact2 lknemny3 sblwcoa3 hincfel2 sclmeet2 ;
  20. run;
  21.  
  22. *V?rifiez que le dataset a bien ?t? cr?? via le log :
  23.     NOTE :  The data set OUT.LOGLIN has 1869 observations and 5 variables;
  24. /* --------------------------------------------------------------------------------------------------------------------------------
  25.    Mod?le 1 : TABLE 2x2
  26.    - Variables : X = EVALDEMO2, Y =  blgetmg
  27.    - R?aliser un rapport (loglin_2x2 ? stocker dans le sous-dossier RESULTS) en format pdf ayant pour titre g?n?ral :
  28.      'Mod?le log-lin?aire : Table 2x2 : Y = EVALDEMO2, X = blgetmg'
  29.    - Ce rapport doit ?tre compos? de trois parties :
  30.         - La premi?re aura pour titre "Table de contingence"
  31.           Vous y pr?senterez la table des fr?quences de la variable evaldemo2 crois?e avec blgetmg.
  32.           Utilisez l'option "out = " afin de stocker le r?sultat de la proc freq dans un dataset temporaire "ex1" qui
  33.           vous servira ? construire le mod?le log-lin?aire.  
  34.           A partir de cette table, calculez les fr?quences attendues en cas d'ind?pendance (avec une calculatrice).
  35.           Sont-elles fortement ?loign?es des fr?quences observ?es?
  36.         - La deuxi?me partie aura pour titre : "Mod?le d'ind?pendance"
  37.         - La troisi?me aura pour titre : "Mod?le satur?"
  38.           Pr?sentez-y les sorties de la proc genmod (adaptez les param?tres au type de mod?le construit)
  39.           NB : Cat?gories de r?f?rence pour evaldemo2 : "High" pour blgetmg : "No"
  40.     - Interpr?tez les sorties et r?pondez aux questions suivantes :
  41.     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?
  42.     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)?
  43.     3. Pourquoi les valeurs de la statistique de Khi-2 sont-elles diff?rentes entre les sorties de type 1 et de type 3?
  44.     - Exercice : utilisez les estimations du mod?le d'ind?pendance pour retrouver les fr?quences attendues que vous avez calcul?es
  45.       supra ? partir de la table de contingence.  Utilisez celles du mod?le satur? pour retrouver les fr?quences observ?es.
  46. /* --------------------------------------------------------------------------------------------------------------------------------*/
  47.  
  48. ods pdf file = 'D:\Users\AdelinouxX\Desktop\Travail_SAS\RESULTS\loglin_2x2.pdf';
  49. option nodate;
  50. title1 'Mod?le log-lin?aire : Table 2x2 : Y = happy3, X = sclact2';
  51.  
  52. title2 "Table de contingence";
  53. proc freq data = out.loglin;
  54.     tables sclact2*happy3/ nocol norow  
  55.                               out = ex1;
  56. run;
  57.  
  58. title2 "Mod?le d'ind?pendance";
  59. proc genmod data = ex1;
  60.     class happy3 sclact2 /param = ref ref = first;
  61.     model count = happy3 sclact2/dist=poisson link = log;
  62. run;
  63.  
  64. title2 "Mod?le satur?";
  65. proc genmod data = ex1;
  66.     class happy3 sclact2 /param = ref ref = first;
  67.     model count = happy3 sclact2 happy3*sclact2/dist=poisson link = log type1 type3;
  68. run;
  69.  
  70. title;
  71.  
  72. title1 'Mod?le log-lin?aire : Table 2x2 : Y = happy3, X = hincfel2';
  73.  
  74. title2 "Table de contingence";
  75. proc freq data = out.loglin;
  76.     tables hincfel2*happy3/ nocol norow  
  77.                               out = ex1;
  78. run;
  79.  
  80. title2 "Mod?le d'ind?pendance";
  81. proc genmod data = ex1;
  82.     class happy3 hincfel2 /param = ref ref = first;
  83.     model count = happy3 hincfel2/dist=poisson link = log;
  84. run;
  85.  
  86. title2 "Mod?le satur?";
  87. proc genmod data = ex1;
  88.     class happy3 hincfel2 /param = ref ref = first;
  89.     model count = happy3 hincfel2 happy3*hincfel2/dist=poisson link = log type1 type3;
  90. run;
  91.  
  92. title1 'Mod?le log-lin?aire : Table 2x2 : Y = happy3, X = sclmeet2';
  93.  
  94. title2 "Table de contingence";
  95. proc freq data = out.loglin;
  96.     tables sclmeet2*happy3/ nocol norow
  97.                               out = ex1;
  98. run;
  99.  
  100. title2 "Mod?le d'ind?pendance";
  101. proc genmod data = ex1;
  102.     class happy3 sclmeet2 /param = ref ref = first;
  103.     model count = happy3 sclmeet2/dist=poisson link = log;
  104. run;
  105.  
  106. title2 "Mod?le satur?";
  107. proc genmod data = ex1;
  108.     class happy3 sclmeet2 /param = ref ref = first;
  109.     model count = happy3 sclmeet2 happy3*sclmeet2/dist=poisson link = log type1 type3;
  110. run;
  111.  
  112. title;
  113.  
  114. ods pdf close;
  115.  
  116. /* Loglin 2x3 */
  117.  
  118. ods pdf file = 'D:\Users\AdelinouxX\Desktop\Travail_SAS\RESULTS\loglin_2x3.pdf';
  119. title1 'Mod?le log-lin?aire : Table 2x3 : Y = happy3, X = health3';
  120.  
  121. title2 "Table de contingence";
  122. proc freq data = out.loglin;
  123.     tables health3*happy3/nocol norow  
  124.                           out = ex2;
  125. run;
  126.  
  127. title2 "Mod?le d'ind?pendance";
  128. proc genmod data = ex2 descending;
  129.     class happy3 health3 (ref = "C) Mauvaise santé")/param = ref ref = first;
  130.     model count = happy3 health3/dist=poisson link = log;
  131. run;
  132.  
  133. title2 "Mod?le satur? - santé r?f?rence = neutre";
  134. proc genmod data = ex2;
  135.     class happy3 health3 (ref = "B) Neutre") /param = ref ref = first;
  136.     model count = happy3 health3 happy3*health3/dist=poisson link = log type1 type3;
  137. run;
  138.  
  139. title2 "Mod?le satur? - santé r?f?rence = Bonne santé";
  140. proc genmod data = ex2;
  141.     class happy3 health3 (ref = "A) Bonne santé") /param = ref ref = first;
  142.     model count = happy3 health3 happy3*health3/dist=poisson link = log type1 type3;
  143. run;
  144.  
  145.  
  146.  
  147. /*sblwcoa3*/
  148.  
  149. title2 "Table de contingence sblwcoa3";
  150. proc freq data = out.loglin;
  151.     tables sblwcoa3*happy3/nocol norow  
  152.                           out = ex2;
  153. run;
  154.  
  155. title2 "Mod?le d'ind?pendance sblwcoa3";
  156. proc genmod data = ex2 descending;
  157.     class happy3 sblwcoa3 (ref = "B) Neutre")/param = ref ref = first;
  158.     model count = happy3 sblwcoa3/dist=poisson link = log;
  159. run;
  160.  
  161. title2 "Mod?le satur? - sblwcoa3 r?f?rence = oui";
  162. proc genmod data = ex2;
  163.     class happy3 sblwcoa3 (ref = "A) Oui") /param = ref ref = first;
  164.     model count = happy3 sblwcoa3 happy3*sblwcoa3/dist=poisson link = log type1 type3;
  165. run;
  166.  
  167. title2 "Mod?le satur? - sblwcoa3 r?f?rence = non";
  168. proc genmod data = ex2;
  169.     class happy3 sblwcoa3 (ref = "C) Non") /param = ref ref = first;
  170.     model count = happy3 sblwcoa3 happy3*sblwcoa3/dist=poisson link = log type1 type3;
  171. run;
  172.  
  173. title;
  174. ods pdf close;
  175.  
  176. /* 2x2x3
  177.  
  178. health3*sblwcoa3 4 16.66 0.0023
  179. hincfel2*sblwcoa3 2 8.90 0.0117
  180. health3*lknemny3 4 10.78 0.0292 */
  181.  
  182.  
  183. ods pdf file = 'D:\Users\AdelinouxX\Desktop\Travail_SAS\RESULTS\loglin_2x2x3b.pdf';
  184. title1 'Mod?le log-lin?aire : Table 3x3x3 : X = happy3, Y = health3, Z = sblwcoa3';
  185.  
  186. title2 "Table de contingence";
  187. proc freq data = out.loglin;
  188.     tables health3*sblwcoa3*happy3/nocol norow  
  189.                                    out = ex3b;
  190. run;
  191.  
  192. title2 "Mod?le satur?";  
  193. proc genmod data = ex3b;
  194.     class happy3 sblwcoa3 health3 (ref='A) Bonne santé')/param = ref ref = first;
  195.     model count = happy3 sblwcoa3|health3
  196.                   happy3*sblwcoa3 happy3*health3
  197.                   happy3*sblwcoa3*health3   /dist=poisson link = log type1 type3;
  198. run;
  199.  
  200. *- 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.
  201.  - Sur base de la sortie de type 1, on peut aussi conclure que l'ind?pendance entre evaldemo2 et reg3 conditionnellement ? polintr2
  202.    n'est pas une hypoth?se plausible
  203.  --> Il faut maintenant tester si l'ind?pendance entre evaldemo2 et polintr2 conditionnellement ? reg3 est une hypoth?se plausible
  204.      Pour ce faire, on inverse l'ordre de X*Y et X*Z dans l'?quation du mod?le;
  205.  
  206. title2 "Mod?le sans l'interaction du 3?me ordre";
  207. title3 "health3 r?f?rence : Bonne santé";
  208. proc genmod data = ex3b;
  209.     class happy3 sblwcoa3 health3 (ref='A) Bonne santé')/param = ref ref = first;
  210.     model count = happy3 sblwcoa3|health3
  211.                   happy3*health3  happy3*sblwcoa3 /dist=poisson link = log type1 type3;
  212. run;
  213.  
  214. *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.
  215. 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;
  216.  
  217. title3 "health3 de r?f?rence : Neutre";  
  218. proc genmod data = ex3b;
  219.     class happy3 sblwcoa3 health3 (ref='B) Neutre')/param = ref ref = first;
  220.     model count = happy3 sblwcoa3|health3
  221.                   happy3*health3  happy3*sblwcoa3 /dist=poisson link = log type1 type3;
  222. run;
  223.  
  224. /* Table 2 */
  225.  
  226. title2 "Table de contingence2";
  227. proc freq data = out.loglin;
  228.     tables hincfel2*sblwcoa3*happy3/nocol norow  
  229.                                    out = ex3b;
  230. run;
  231.  
  232. title2 "Mod?le satur?";  
  233. proc genmod data = ex3b;
  234.     class happy3 sblwcoa3 hincfel2 (ref='A) Confortable')/param = ref ref = first;
  235.     model count = happy3 sblwcoa3|hincfel2
  236.                   happy3*sblwcoa3 happy3*hincfel2
  237.                   happy3*sblwcoa3*hincfel2  /dist=poisson link = log type1 type3;
  238. run;
  239.  
  240. *- 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.
  241.  - Sur base de la sortie de type 1, on peut aussi conclure que l'ind?pendance entre evaldemo2 et reg3 conditionnellement ? polintr2
  242.    n'est pas une hypoth?se plausible
  243.  --> Il faut maintenant tester si l'ind?pendance entre evaldemo2 et polintr2 conditionnellement ? reg3 est une hypoth?se plausible
  244.      Pour ce faire, on inverse l'ordre de X*Y et X*Z dans l'?quation du mod?le;
  245.  
  246. title2 "Mod?le sans l'interaction du 3?me ordre";
  247. title3 "health3 r?f?rence : Bonne santé";
  248. proc genmod data = ex3b;
  249.     class happy3 sblwcoa3 hincfel2 (ref='A) Confortable')/param = ref ref = first;
  250.     model count = happy3 sblwcoa3|hincfel2
  251.                   happy3*hincfel2  happy3*sblwcoa3 /dist=poisson link = log type1 type3;
  252. run;
  253.  
  254. *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.
  255. 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;
  256.  
  257. title3 "health3 de r?f?rence : Neutre";  
  258. proc genmod data = ex3b;
  259.     class happy3 sblwcoa3 hincfel2 (ref='B) Difficile')/param = ref ref = first;
  260.     model count = happy3 sblwcoa3|hincfel2
  261.                   happy3*hincfel2  happy3*sblwcoa3 /dist=poisson link = log type1 type3;
  262. run;
  263.  
  264. /* table 3 */
  265.  
  266.  
  267. title2 "Table de contingence3";
  268. proc freq data = out.loglin;
  269.     tables health3*lknemny3*happy3/nocol norow  
  270.                                    out = ex3b;
  271. run;
  272.  
  273. title2 "Mod?le satur?";  
  274. proc genmod data = ex3b;
  275.     class happy3 health3 lknemny3 (ref='B) Plutôt pas')/param = ref ref = first;
  276.     model count = happy3 health3|lknemny3
  277.                   happy3*health3 happy3*lknemny3
  278.                   happy3*health3*lknemny3   /dist=poisson link = log type1 type3;
  279. run;
  280.  
  281. *- 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.
  282.  - Sur base de la sortie de type 1, on peut aussi conclure que l'ind?pendance entre evaldemo2 et reg3 conditionnellement ? polintr2
  283.    n'est pas une hypoth?se plausible
  284.  --> Il faut maintenant tester si l'ind?pendance entre evaldemo2 et polintr2 conditionnellement ? reg3 est une hypoth?se plausible
  285.      Pour ce faire, on inverse l'ordre de X*Y et X*Z dans l'?quation du mod?le;
  286.  
  287. title2 "Mod?le sans l'interaction du 3?me ordre";
  288. title3 "health3 r?f?rence : Bonne santé";
  289. proc genmod data = ex3b;
  290.     class happy3 health3 lknemny3 (ref='B) Plutôt pas')/param = ref ref = first;
  291.     model count = happy3 health3|lknemny3
  292.                   happy3*lknemny3  happy3*health3 /dist=poisson link = log type1 type3;
  293. run;
  294.  
  295. *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.
  296. 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;
  297.  
  298. title3 "health3 de r?f?rence : Neutre";  
  299. proc genmod data = ex3b;
  300.     class happy3 health3 lknemny3 (ref='C) Assez')/param = ref ref = first;
  301.     model count = happy3 lknemny3|health3
  302.                   happy3*health3  happy3*lknemny3 /dist=poisson link = log type1 type3;
  303. run;
  304.  
  305. title;
  306. ods pdf close;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement