```
/***************************************************************************************/
/*PROJET : MDR SCORE DATAMINING */
/*NOMPGM : calcul_score_2018.sas */
/*DATECRE : 10/2018 */
/*OBJET : Requête pour calcul score datamining DE : modèle 2018 */
/* MODIF : 01/2019 : correction sur partie g : gestion des années à récupérer A-1 ou A-2
+ affectation à SCORGLOB de la valeur de SCOREMAX */
/***************************************************************************************/
/**************************************************************************************************/
/***** Requête de scoring ***********/
/***** du modèle Datamining Données Entrantes 2018 ***********/
/***** ***********/
/***** Création : Octobre 2018 ***********/
/***** ***********/
/**************************************************************************************************/
/* Les variables utilisées dans le modèle ont été remplacées par &variable_modèle_i, i étant un numéro d'ordre */
/* Une variable du modèle a été laissée en clair à titre d'exemple illustratif */
/* Les variables intermédiaires permettant de construire les variables utilisées dans le modèle
ont été remplacées par &variable_intermédiaire_j, j étant un numéro d'ordre */
/* Les variables de sortie permettant de déduire les variables utilisées dans le modèle
ont été remplacées par &variable_sortie_l, l étant un numéro d'ordre */
/* Certains noms de tables ont été remplacés par &table_intermédiaire_k, k étant un numéro d'ordre */
libname etudes "&baseprog/scorbdon" ;
/*Emplacement de la table des variables locales externes (INSEE)*/
%let mv_table_varlocales=etudes.dmde2018_varlocales_scoring;
%let mv_parametres=etudes.DMDE2018_param;
%let mv_bareme=etudes.DMDE2018_bareme;
/*affectation des macro-variables concernant les barèmes.*/
data _null_; set &mv_bareme.;
call symputx("bmaf",BMAF);
call symputx("smic",SMIC);
run;
/*****/
%let limit_test = (matricul ne .);
option obs=max compress = no ;
options nomprint nosymbolgen ;
%global m1 mvDTREFFRE /* m1 = dernier mois traité*/ ;
/* INITIALISATION DES DIX-HUIT MOIS A TRAITER */
%macro mp_18mmaa ;
/* ATTENTION LES MOIS VONT DU PLUS RECENT AU PLUS ANCIEN */
data _null_ ;
set basenat.xdref (where = (NOMTAB = 'FR1_MMAA')) ;
/******************* POUR FORCER LE MOIS DE REFERENCE ********************/
/*DFREF = MDY(8,1,2018) ;*/
/**************************************************************************/
Call symputx("mvDTFREMM", DFREF) ;
run ;
data _null_ ;
%do i = 1 %to 19 ;
nbMOIS = &i. ;
DDREF&i = INTnx ("MONTH", &mvDTFREMM., - nbMois +1 , "beginning") ;
mmaa&i. = compress(put(month(DDREF&i.),z2.)!!SUBSTR(put(year(DDREF&i.),z4.),3,2)) ;
mvmois&i.=compress(put(month(DDREF&i.),3.));
mvannee&i.=compress(put(year(DDREF&i.),z4.));
%global m&i. mois&i. annee&i. dtref&i.;
call symputx( "m&i.", mmaa&i. ) ;
call symputx("mois&i.",mvmois&i.);
call symputx("annee&i.",mvannee&i.);
call symputx("dtref&i.",DDREF&i);
%end ;
run ;
%mend ;
%mp_18mmaa ;
/************************************************************************/
/* Sommaire du programme */
/************************************************************************/
/*
Partie 1 : Constitution de la base d information DMDE
a) Création de la table initiale
b) Données ALLSTAT : Fr1_mmaa
c) Le nom de cette table source est remplacé par table_source_partie_c
d) Le nom de cette table source est remplacé par table_source_partie_d
e) Le nom de cette table source est remplacé par table_source_partie_e
f) Le nom de cette table source est remplacé par table_source_partie_f
g) Données locales (BCA et INSEE)
Partie 2 : Création et recodages de variables
Partie 3 : Calcul du score
*/
/**********************************************************************************************************************/
/**********************************************************************************************************************/
/********** Partie 1: Constitution de la base d'informations DMDE **************************************/
/**********************************************************************************************************************/
/**********************************************************************************************************************/
/**********************************************************************************************************************/
/* a)Création de la table initiale
/**********************************************************************************************************************/
%macro mpINITAB ;
data work.final ;
set Allstat.fr1_&m1.(in=b keep = matricul numcaf mtpfvers catben sitdos dtreffre
where = ( mtpfvers>0 and sitdos ne 'R' and catben ne "99" and &limit_test));
Call symputx("mvDTREFFRE", dtreffre) ;
run ;
%mend ;
%mpINITAB ;
data final; set final (keep=matricul numcaf);
run;
/********************************************************************/
/* b) Données ALLSTAT : Fr1_mmaa */
/********************************************************************/
%macro mp_Fre ();
%do i=1 %to 19 ;
data _null_ ; /* contrôle existence des tables */
if (exist("Allstat.fr1_&&m&i.",'data') or exist("Allstat.fr1_&&m&i.",'view'))
then call symput ("topexist", "O") ;
else call symput ("topexist", "N") ;
run ;
%if &topexist.=O %then %do ;
data fr&i;
merge
work.final (in=a)
allstat.fr1_&&m&i. (keep = numcaf matricul
/*Variable m1 remplacées par &liste_variables_m1 */ %if &i.=1 %then %do;
&liste_variables_m1
/* ajout pour allextr &liste_variables_allextr : */
&liste_variables_allextr
%end;
/*Variables m1à18 remplacées par &liste_variables_m1à18*/
&liste_variables_m1à18
where = (catben ne "99"));
by numcaf matricul;
if a=1;
array TABmois[12] moinen1-moinen12;
array TABannee[12] annnen1-annnen12;
array TABCAT[12] $ catenf1-catenf12;
%if &i.=1 %then %do;
array T&variable_intermédiaire_14[12] &variable_intermédiaire_141-&variable_intermédiaire_1412;
&variable_intermédiaire_13=0; &variable_intermédiaire_15=0; nb12a17=0;
%end;
nb20a24=0;
do j=1 to 12;
datenai=.;
if (TABannee[j] in (0,.) or TABmois[j] in (0,.)) then datenai=.;
else datenai=mdy(TABmois[j],1,TABannee[j]);
if datenai>. then do; /*ajout boucle pour dtnai non vide*/
age=intck("year",datenai,dtreffre);
if (TABCAT[j] ne "A" and age >= 20 and age <= 24) then nb20a24=nb20a24+1;
%if &i.=1 %then %do;
if (TABCAT[j] ne "A" and age >= 12 and age <= 17) then nb12a17 = nb12a17 + 1 ;
if (T&variable_intermédiaire_14[j] eq "5") then &variable_intermédiaire_13=&variable_intermédiaire_13+1;
if (T&variable_intermédiaire_14[j] eq "9") then &variable_intermédiaire_15=&variable_intermédiaire_15+1;
%end;
end;
end;
/* Dans la ligne ci-après, le nom de la variable est remplacé par */
/* &variable_intermédiaire_1 et les trois variables sources par
&variable_intermédiaire_source_1, &variable_intermédiaire_source_2
et &variable_intermédiaire_source_3*/
&variable_intermédiaire_1=sum(&variable_intermédiaire_source_1,&variable_intermédiaire_source_2,&variable_intermédiaire_source_3);
/* Dans les lignes ci-après, jusqu'au mot "run;" les noms de variables sont
remplacés par &variable_intermédiaire_2 & à &variable_intermédiaire_13 */
Rename &variable_intermédiaire_2=&variable_intermédiaire_2_m&i.
&variable_intermédiaire_3=&variable_intermédiaire_3_m&i.
&variable_intermédiaire_4=&variable_intermédiaire_4_m&i.
&variable_intermédiaire_5=&variable_intermédiaire_5_m&i.
&variable_intermédiaire_6=&variable_intermédiaire_6_m&i.
&variable_intermédiaire_1=&variable_intermédiaire_1_m&i.
&variable_intermédiaire_7=&variable_intermédiaire_7_m&i.
&variable_intermédiaire_8=&variable_intermédiaire_8_m&i.
&variable_intermédiaire_9=&variable_intermédiaire_9_m&i.
nb20a24=nb20a24_m&i.
catben=catben_m&i.
&variable_intermédiaire_10=&variable_intermédiaire_10_m&i.
&variable_intermédiaire_11=&variable_intermédiaire_11_m&i. ;
run;
data work.final ;
merge work.final ( in = a )
work.fr&i ;
by numcaf matricul ;
if a = 1 ;
run ;
%end; /*end boucle top exist*/
/*Nettoyage de la work après jointure*/
proc datasets lib=work nolist; delete fr&i ; quit; run;
%end ; /*end boucle i=1 to 18*/
data work.final (DROP= annnen1-annnen12 Catenf1-Catenf12 moinen1-moinen12 &variable_intermédiaire_141-&variable_intermédiaire_1412 &variable_intermédiaire_45_1-&variable_intermédiaire_45_3
&variable_intermédiaire_2_m: &variable_intermédiaire_3_m: &variable_intermédiaire_4_m: &variable_intermédiaire_5_m: &variable_intermédiaire_7_m: &variable_intermédiaire_6_m: &variable_intermédiaire_11_m:
&variable_intermédiaire_7_m: &variable_intermédiaire_8_m: nb20a24_m: &variable_intermédiaire_9_m: &variable_intermédiaire_10_m: &variable_intermédiaire_1_m:
catben_m: dtreffre j datenai age
seq1 seq2 seq3 seq4 cpt seqstd1 seqstd2 seqstd3 seqstd4 seqactstdmoy &variable3_construction_variable_modèle_9 &variable_construction_variable_modèle_9 &variable2_construction_variable_modèle_9 seqactstd );
set work.final;
Attrib NBCHGT_nb20a24_18m length=3 label="Nombre de changement du nombre d'enfant âgé de 20 à 24 ans sur 18 mois";
Attrib &variable_modèle_1 length=3 ;
Attrib &variable_modèle_2 length=3 ;
Attrib &variable_modèle_3 length=3 ;
Attrib &variable_modèle_5 length=3 ;
Attrib &variable_modèle_4 length=3 ;
Attrib &variable_modèle_9 length=$7. ;
Attrib &variable_modèle_6 length=3 ;
Attrib &variable_modèle_7 length=3 ;
array T_nb20a24 %do i = 1 %to 19; nb20a24_m&i. %end ; ;
array T_&variable_intermédiaire_2 %do i = 1 %to 19; &variable_intermédiaire_2_m&i. %end ; ;
array T_&variable_intermédiaire_3 %do i = 1 %to 19; &variable_intermédiaire_3 _m&i. %end ; ;
array T_&variable_intermédiaire_4 %do i = 1 %to 19; &variable_intermédiaire_4_m&i. %end ; ;
array T_&variable_intermédiaire_5 %do i = 1 %to 19; &variable_intermédiaire_5_m&i. %end ; ;
array T_&variable_intermédiaire_7 %do i = 1 %to 19; &variable_intermédiaire_7_m&i. %end ; ;
array T_&variable_intermédiaire_6 %do i = 1 %to 19; &variable_intermédiaire_6_m&i. %end ; ;
array T_&variable_intermédiaire_8 %do i = 1 %to 19; &variable_intermédiaire_8_m&i. %end ; ;
array T_&variable_intermédiaire_9 %do i = 1 %to 19; &variable_intermédiaire_9_m&i. %end ; ;
array T_catben %do i = 1 %to 19; catben_m&i. %end ; ;
array T_&variable_intermédiaire_10 %do i = 1 %to 19; &variable_intermédiaire_10_m&i. %end ; ;
array T_&variable_intermédiaire_11 %do i = 1 %to 18; &variable_intermédiaire_11_m&i. %end ; ;
array &vvariable_intermédiaire_1_m&i. %do i = 1 %to 18; &variable_intermédiaire_1_m&i. %end ; ;
/*Code de création des indicateurs*/
NBCHGT_nb20a24_18m=0;
do j=1 to 18;
if (t_catben[j] ne "" and t_catben[j+1] ne "") and T_nb20a24[j+1] ne T_nb20a24[j] then NBCHGT_nb20a24_18m=NBCHGT_nb20a24_18m+1;
end;
&variable_modèle_1=0;
do j=1 to 18;
if (t_catben[j] ne "" and t_catben[j+1] ne "") and T_&variable_intermédiaire_2[j+1] ne T_&variable_intermédiaire_2[j] then &variable_modèle_1=&variable_modèle_1+1;
end;
&variable_modèle_6=0;
do j=1 to 6;
if (t_catben[j] ne "" and t_catben[j+1] ne "") and T_&variable_intermédiaire_8 [j+1] ne T_&variable_intermédiaire_8 [j] then &variable_modèle_6=1;
end;
&variable_modèle_2=0;
do i=1 to 18;
if (T_&variable_intermédiaire_3 [i] ne 0 OR T_&variable_intermédiaire_4 [i] ne 0) then do; &variable_modèle_2=i; i=18; end;
end;
&variable_modèle_3=0;
do j=1 to 6;
&variable_modèle_3=sum(&variable_modèle_3, T_&variable_intermédiaire_5[j]);
end;
&construction_variable_modèle_7=0;&variable_modèle_7=0;
do j=1 to 18;
&construction_variable_modèle_7=sum(&construction_variable_modèle_7, T_&variable_intermédiaire_9[j]);
end;
&variable_modèle_7=(&construction_variable_modèle_7>0);
&variable_modèle_5=0;
&variable_modèle_4=0;
&variable_modèle_8=0;
do i=1 to 18;
if T_&variable_intermédiaire_7[i]='1' then &variable_modèle_5=&variable_modèle_5+1;
if T_&variable_intermédiaire_6[i] in ("1" "2") then &variable_modèle_4=&variable_modèle_4+1;
if T_&variable_intermédiaire_10[i] not in ("" "0") then &variable_modèle_8=1;
end;
do i= 1 to 18;
if T_&variable_intermédiaire_11[i] not in (&liste_modalités_variable_intermédiaire_11) and T_&variable_intermédiaire_7[i] ne '1'
then &vvariable_intermédiaire_1_m&i.[i]=. ;
end;
drop i;
if &vvariable_intermédiaire_1_m&i.(1)^=. then SEQ1=int(&vvariable_intermédiaire_1_m&i.(1));else SEQ1=.;
SEQ2=.;SEQ3=.;SEQ4=.;
cpt=1;
do i=2 to 18;
cpt=i+1;
if &vvariable_intermédiaire_1_m&i.[i]^=. then do;
if int(&vvariable_intermédiaire_1_m&i.[i]) ne SEQ1 then do; SEQ2=int(&vvariable_intermédiaire_1_m&i.[i]); i=18;end;
end;
else do;
if &vvariable_intermédiaire_1_m&i.[i] ne SEQ1 then do; SEQ2=&vvariable_intermédiaire_1_m&i.[i]; i=18;end;
end;
end;
if cpt<=18 then do i=cpt to 18;
cpt=i+1;
if &vvariable_intermédiaire_1_m&i.[i]^=. then do;
if int(&vvariable_intermédiaire_1_m&i.[i]) ne SEQ2 then do; SEQ3=int(&vvariable_intermédiaire_1_m&i.[i]); i=18;end;
end;
else do;
if &vvariable_intermédiaire_1_m&i.[i] ne SEQ2 then do; SEQ3=&vvariable_intermédiaire_1_m&i.[i]; i=18;end;
end;
end;
if cpt<=18 then do i=cpt to 18;
cpt=i+1;
if &vvariable_intermédiaire_1_m&i.[i]^=. then do;
if int(&vvariable_intermédiaire_1_m&i.[i]) ne SEQ3 then do; SEQ4=int(&vvariable_intermédiaire_1_m&i.[i]);end;
end;
ELSE DO;
if &vvariable_intermédiaire_1_m&i.[i] ne SEQ3 then do; SEQ4=&vvariable_intermédiaire_1_m&i.[i];end;
end;
end;
/*Ecart type des séquences hors 99999*/
if seq1>=99999 then seqstd1=seq2; else seqstd1=seq1;
if seq2>=99999 then seqstd2=seq1;else seqstd2=seq2;
if seq3>=99999 then seqstd3=seq2;else seqstd3=seq3;
if seq4>=99999 then seqstd4=seq3;else seqstd4=seq4;
if seqstd1=. and seqstd2=. and seqstd3=. and seqstd4=. then seqactstd=.;
else if seqstd1=. and seqstd2=. and seqstd3=. then seqactstd=.;
else if seqstd1=. and seqstd2=. and seqstd4=. then seqactstd=.;
else if seqstd1=. and seqstd3=. and seqstd4=. then seqactstd=.;
else if seqstd2=. and seqstd3=. and seqstd4=. then seqactstd=.;
else if seqstd1^=. and seqstd2^=. and seqstd3=. and seqstd4=. then seqactstd=std(seqstd1,seqstd2);
else if seqstd1^=. and seqstd2=. and seqstd3^=. and seqstd4=. then seqactstd=std(seqstd1,seqstd3);
else if seqstd1^=. and seqstd2=. and seqstd3=. and seqstd4^=. then seqactstd=std(seqstd1,seqstd4);
else if seqstd1=. and seqstd2^=. and seqstd3^=. and seqstd4=. then seqactstd=std(seqstd2,seqstd3);
else if seqstd1=. and seqstd2^=. and seqstd3=. and seqstd4^=. then seqactstd=std(seqstd2,seqstd4);
else if seqstd1=. and seqstd2=. and seqstd3^=. and seqstd4^=. then seqactstd=std(seqstd3,seqstd4);
else if seqstd1^=. and seqstd2^=. and seqstd3^=. and seqstd4=. then seqactstd=std(seqstd1,seqstd2,seqstd3);
else if seqstd1^=. and seqstd2^=. and seqstd3=. and seqstd4^=. then seqactstd=std(seqstd1,seqstd2,seqstd4);
else if seqstd1^=. and seqstd2=. and seqstd3^=. and seqstd4^=. then seqactstd=std(seqstd1,seqstd3,seqstd4);
else if seqstd1=. and seqstd2^=. and seqstd3^=. and seqstd4^=. then seqactstd=std(seqstd2,seqstd3,seqstd4);
else seqactstd=std(seqstd1,seqstd2,seqstd3,seqstd4);
if ((seqstd1^=.)+(seqstd2^=.)+(seqstd3^=.)+(seqstd4^=.))=0 then seqactstdmoy=.;
else if sum(0,seqstd1,seqstd2,seqstd3,seqstd4)/((seqstd1^=.)+(seqstd2^=.)+(seqstd3^=.)+(seqstd4^=.))>0 THEN seqactstdmoy=seqactstd/(sum(0,seqstd1,seqstd2,seqstd3,seqstd4)/((seqstd1^=.)+(seqstd2^=.)+(seqstd3^=.)+(seqstd4^=.)));
else seqactstdmoy=.;
/*Indicateur de séquence &variable_modèle_9*/
array seqact2 seq1-seq4;
&variable3_construction_variable_modèle_9=0;&variable_construction_variable_modèle_9=0;&variable2_construction_variable_modèle_9=0;
do i=1 to 4;
if 0<seqact2[i]<99999 then &variable_construction_variable_modèle_9=&variable_construction_variable_modèle_9+1;
if seqact2[i]=0 then &variable3_construction_variable_modèle_9=&variable3_construction_variable_modèle_9+1;
if seqact2[i]=. then &variable2_construction_variable_modèle_9=&variable2_construction_variable_modèle_9+1;
end;
if &variable3_construction_variable_modèle_9>0 and &variable_construction_variable_modèle_9=0 then &variable_modèle_9="0_0";
else if &variable3_construction_variable_modèle_9=0 and &variable_construction_variable_modèle_9>0 and seqactstdmoy in (. 0) then &variable_modèle_9="act_cst";
else if &variable3_construction_variable_modèle_9=0 and &variable_construction_variable_modèle_9>0 and 0<seqactstdmoy<=0.2 then &variable_modèle_9="act_v1";
else if &variable3_construction_variable_modèle_9=0 and &variable_construction_variable_modèle_9>0 and seqactstdmoy>0.2 then &variable_modèle_9="act_v2";
else if &variable3_construction_variable_modèle_9>0 and &variable_construction_variable_modèle_9>=1 then &variable_modèle_9="act_0";
else &variable_modèle_9="XX";
rename &variable_intermédiaire_11_m1=&variable_intermédiaire_11;
run;
%mend mp_Fre;
%mp_fre;
/********************************************************************/
/* c) &table_source_partie_c */
/********************************************************************/
%macro mp_histo_partie_c ;
%do i= 1 %to 18 ;
data _null_ ; /* contrôle existence des tables */
if exist("allstat.&table_source_partie_c&&m&i.",'data') or exist("allstat.&table_source_partie_c&&m&i.",'view')
then call symput ("topexist", "O") ;
else call symput ("topexist", "N") ;
run ;
%if &topexist. = O %then %do ;
Data work.&table_source_partie_c&&m&i. ;
merge work.final (in = a keep = numcaf MATRICUL )
ALLSTAT.&table_source_partie_c&&m&i. (in = b keep = numcaf MATRICUL &variable_intermédiaire_30 &variable_intermédiaire_31 &variable_intermédiaire_32 &variable_intermédiaire_33 &variable_intermédiaire_34
where= (&variable_intermédiaire_32 in ("01" "03") AND &variable_intermédiaire_33 eq "05"
AND month(&variable_intermédiaire_30)=&&mois&i. AND year(&variable_intermédiaire_30)=&&annee&i. ));
by numcaf MATRICUL ;
if a = 1 and b = 1 ;
&table_intermédiaire_1&&m&i. = 1 ;
if &variable_intermédiaire_31 = variable_intermédiaire_31_modalité_2 then &table_intermédiaire_2 &&m&i = 1 ;
if &variable_intermédiaire_31 = variable_intermédiaire_31_modalité_3 then &table_intermédiaire_3&&m&i = 1 ;
if &variable_intermédiaire_31 in (liste_variable_intermédiaire_31_modalités_4) then &table_intermédiaire_4&&m&i = 1 ;
if &variable_intermédiaire_31 in (liste_variable_intermédiaire_31_modalités_5) then &table_intermédiaire_5&&m&i = 1 ;
if &variable_intermédiaire_31 = variable_intermédiaire_31_modalité_6 then &table_intermédiaire_6&&m&i = 1 ;
if &variable_intermédiaire_31 = variable_intermédiaire_31_modalité_7 then &table_intermédiaire_7&&m&i = 1 ;
if &variable_intermédiaire_31 = variable_intermédiaire_31_modalité_8 then &table_intermédiaire_8&&m&i = 1 ;
if variable_intermédiaire_31 = variable_intermédiaire_31_modalité_9 then &table_intermédiaire_9&&m&i = 1 ;
if &variable_intermédiaire_31 = variable_intermédiaire_31_modalité_10 then &table_intermédiaire_10&&m&i = 1 ;
if &variable_intermédiaire_31 = variable_intermédiaire_31_modalité_11 then &table_intermédiaire_11&&m&i = 1 ;
if &variable_intermédiaire_34 in (variable_intermédiaire_34_modalité) then &table_intermédiaire_12&&m&i. = 1 ;
Run ;
proc means data =work.&table_source_partie_c&&m&i. noprint nway ;
var &table_intermédiaire_1&&m&i. &table_intermédiaire_2 &&m&i. &table_intermédiaire_3&&m&i. &table_intermédiaire_4&&m&i. &table_intermédiaire_5&&m&i. &table_intermédiaire_6&&m&i.
&table_intermédiaire_7&&m&i. &table_intermédiaire_8&&m&i. &table_intermédiaire_9&&m&i. &table_intermédiaire_10&&m&i. &table_intermédiaire_11&&m&i &table_intermédiaire_12&&m&i.;
class MATRICUL ;
output out = work.&table_intermédiaire_13&&m&i. (drop = _type_ _freq_ ) sum = ;
run ;
/* mise à jour de la table final avec données existantes */
data work.final ;
merge work.final ( in = a )
work.&table_intermédiaire_13&&m&i. ;
by matricul ;
if a = 1 ;
run ;
/*Nettoyage de la work après jointure*/
proc datasets lib=work nolist; delete &table_intermédiaire_13&&m&i. ; quit; run;
proc datasets lib=work nolist; delete &table_source_partie_c&&m&i. temp; quit; run;
%end ;
%end ;
/*Création des variables explicatives */
data work.final (drop= i FORI: FG:);
set work.final;
/*Vecteur des données historiques*/
array &T_vecteur_données_historiques_1 %do i = 1 %to 18; &données_historiques_1&&m&i. %end ; ;
array &T_vecteur_données_historiques_2 %do i = 1 %to 18; &données_historiques_2&&m&i. %end ; ;
array &T_vecteur_données_historiques_3 %do i = 1 %to 18; &données_historiques_3&&m&i. %end ; ;
array &T_vecteur_données_historiques_4 %do i = 1 %to 18; &données_historiques_4&&m&i. %end ; ;
array &T_vecteur_données_historiques_5 %do i = 1 %to 18; &données_historiques_5&&m&i. %end ; ;
array &T_vecteur_données_historiques_6 %do i = 1 %to 18; &données_historiques_6&&m&i. %end ; ;
array &T_vecteur_données_historiques_7 %do i = 1 %to 18; &données_historiques_7&&m&i. %end ; ;
array &T_vecteur_données_historiques_8 %do i = 1 %to 18; &données_historiques_8&&m&i. %end ; ;
array &T_vecteur_données_historiques_9 %do i = 1 %to 18; &données_historiques_9&&m&i. %end ; ;
array &T_vecteur_données_historiques_10 %do i = 1 %to 18; &données_historiques_10&&m&i. %end ; ;
array &T_vecteur_données_historiques_11 %do i = 1 %to 18; &données_historiques_11&&m&i. %end ; ;
array &T_vecteur_données_historiques_12 %do i = 1 %to 18; &données_historiques_12&&m&i. %end ; ;
/*Initialisation des indicateurs*/
attrib &variable_construction_variable_modèle_30 length=3. ;
attrib &variable_intermédiaire_46 length=3. ;
attrib &variable_modèle_15 length=3. ;
attrib &variable_modèle_16 length=3. ;
attrib &variable_intermédiaire_25 length=3. ;
attrib &variable_modèle_17 length=3. ;
attrib &variable_intermédiaire_24 length=3. ;
attrib &variable_intermédiaire_26 length=3. ;
attrib &variable_intermédiaire_27 length=3. ;
attrib &variable_intermédiaire_60 length=3. ;
attrib &variable_intermédiaire_61 length=3. ;
attrib &variable_intermédiaire_62 length=3. ;
&variable_construction_variable_modèle_30=0; do i=1 to 18; if (&T_vecteur_données_historiques_1(i) ne . and &T_vecteur_données_historiques_1(i)>0) then do;
&variable_construction_variable_modèle_30=&variable_construction_variable_modèle_30+&variable_construction_variable_modèle_30(i);
end;end;
&variable_intermédiaire_46=0; do i=1 to 18; if (&T_vecteur_données_historiques_2(i) ne . and &T_vecteur_données_historiques_2(i)>0) then do;
&variable_intermédiaire_46=&variable_intermédiaire_46+&T_vecteur_données_historiques_2(i);
end;end;
&variable_intermédiaire_47=0; do i=1 to 6; if (&T_vecteur_données_historiques_3(i) ne . and &T_vecteur_données_historiques_3(i)>0) then do;
&variable_intermédiaire_47=&variable_intermédiaire_47+&T_vecteur_données_historiques_3(i);
end;end;
&variable_modèle_15=(&variable_intermédiaire_47>0);
&variable_intermédiaire_48=0; do i=1 to 12; if (&T_vecteur_données_historiques_4(i) ne . and &T_vecteur_données_historiques_4(i)>0) then do;
&variable_intermédiaire_48=&variable_intermédiaire_48+&T_vecteur_données_historiques_4(i);
end;end;
&variable_modèle_16=(&variable_intermédiaire_48>0);
&variable_intermédiaire_49=0; do i=1 to 18; if (&T_vecteur_données_historiques_5(i) ne . and &T_vecteur_données_historiques_5(i)>0) then do;
&variable_intermédiaire_49=&variable_intermédiaire_49+&T_vecteur_données_historiques_5(i);
end;end;
&variable_intermédiaire_50=0; do i=1 to 3; if (&T_vecteur_données_historiques_6(i) ne . and &T_vecteur_données_historiques_6(i)>0) then do;
&variable_intermédiaire_50=&variable_intermédiaire_50+&T_vecteur_données_historiques_6(i);
end;end;
&variable_modèle_17=(&variable_intermédiaire_50>0);
&variable_intermédiaire_24=0; do i=1 to 18; if (&T_vecteur_données_historiques_7(i) ne . and &T_vecteur_données_historiques_7(i)>0) then do;
&variable_intermédiaire_24=&variable_intermédiaire_24+&T_vecteur_données_historiques_7(i);
end;end;
&variable_intermédiaire_26=0; do i=1 to 18; if (&T_vecteur_données_historiques_8(i) ne . and &T_vecteur_données_historiques_8(i)>0) then do;
&variable_intermédiaire_26=&variable_intermédiaire_26+&T_vecteur_données_historiques_8(i);
end;end;
&variable_intermédiaire_27=0; do i=1 to 18; if (&T_vecteur_données_historiques_9(i) ne . and &T_vecteur_données_historiques_9(i)>0) then do;
&variable_intermédiaire_27=&variable_intermédiaire_27+&T_vecteur_données_historiques_9(i);
end;end;
&variable_intermédiaire_51=0; do i=1 to 18; if (&T_vecteur_données_historiques_11(i) ne . and &T_vecteur_données_historiques_11(i)>0) then do;
&variable_intermédiaire_51=i; i=18;
end;end;
&variable_intermédiaire_52=0; do i=1 to 18; if (&T_vecteur_données_historiques_12(i) ne . and &T_vecteur_données_historiques_12(i)>0) then do;
&variable_intermédiaire_52=i; i=18;
end;end;
&variable_intermédiaire_53=0; do i=1 to 18; if (&T_vecteur_données_historiques_10(i) ne . and &T_vecteur_données_historiques_10(i)>0) then do;
&variable_intermédiaire_53=1;
end;end;
run;
%mend ;
%mp_histo_partie_c ;
/**********************************************************************************************************************/
/* d)table_source_partie_d */
/**********************************************************************************************************************/
%macro mp_histo_partie_d ;
%do i= 1 %to 18 ;
data _null_ ; /* contrôle existence des tables */
if exist("allstat.&table_source_partie_d&&m&i.",'data') or exist("allstat.&table_source_partie_d&&m&i.",'view')
then call symput ("topexist", "O") ;
else call symput ("topexist", "N") ;
run ;
%if &topexist. = O %then %do ;
proc sql;
create table &table_source_partie_d&&m&i. as select matricul,
sum(&variable_intermédiaire_35 in ('001','003','004','005','017','019','022','023','23J','030','031','032',
'033','33B','035','372','937','938','939','940')
and &variable_intermédiaire_36=''
and &variable_intermédiaire_37=0) as &variable_intermédiaire_40&i.
from ( select a.matricul,
b.&variable_intermédiaire_54,
b.&variable_intermédiaire_35,
abs(sum(-b.&variable_intermédiaire_38,b.&variable_intermédiaire_39)) as &variable_intermédiaire_37,
case when b.&variable_intermédiaire_39>b.&variable_intermédiaire_38 then 'R'
when b.&variable_intermédiaire_39<b.&variable_intermédiaire_38 then 'I'
else ''
end as &variable_intermédiaire_36
from final as a left join
allstat.&table_source_partie_d&&m&i.
as b
on a.matricul=b.matricul)
group by matricul;
quit;
data final ;
merge final( in = a )
&table_source_partie_d&&m&i. ;
by matricul;
if a = 1 ;
run ;
proc datasets nolist;
delete &table_source_partie_d&&m&i.;
run;
%end ;
%end;
data final (drop= i variable_intermédiaire_40:); set final ;
array variable_intermédiaire_40 (18) %do i = 1 %to 18; &variable_intermédiaire_40&i. %end ; ;
attrib &variable_intermédiaire_12 length=3. ;
&variable_intermédiaire_12=0;
do i=1 to 18;
if (variable_intermédiaire_40(i) ne . and variable_intermédiaire_40(i)>0) then do;
&variable_intermédiaire_12=&variable_intermédiaire_12+variable_intermédiaire_40(i);
end;
end;
run;
%mend;
%mp_histo_partie_d ;
/**********************************************************************************************************************/
/* e) table_source_partie_e */
/**********************************************************************************************************************/
%macro temp_partie_e;
/*Extraction table &table_intermédiaire_14*/
proc sql;
create table &table_intermédiaire_15 as select a.matricul,
b.&variable_intermédiaire_41 ,
b.&variable_intermédiaire_42 ,
b.&variable_intermédiaire_43 ,
b.&variable_intermédiaire_55,
b.&variable_intermédiaire_57
from final as a left join gra.&table_intermédiaire_14 as b on a.matricul=b.matricul
where b.&variable_intermédiaire_42 in ("3" "5" "8" "6")
and &dtref18.<=b.&variable_intermédiaire_41<=&dtref1. ;
quit;
%mend;
%temp_partie_e;
%macro ext_partie_e;
%do i=1 %to 18 ;
proc sql;
create table &table_intermédiaire_16&i. as select matricul,
sum(&variable_intermédiaire_42='6') as &variable_intermédiaire_56&i.,
sum(&variable_intermédiaire_43 in &modalités_variable_intermédiaire_43) as &variable_intermédiaire_58&i.,
sum(&variable_intermédiaire_43=&modalité_variable_intermédiaire_43_bis) as &variable_intermédiaire_18&i.,
sum(&variable_intermédiaire_57='N') as &variable_intermédiaire_59&i.
from &table_intermédiaire_15
where compress(put(month(&variable_intermédiaire_41),z2.)!!SUBSTR(put(year(&variable_intermédiaire_41),z4.),3,2))="&&m&i."
group by matricul;
quit;
data final; merge final(in=a) &table_intermédiaire_16&i.;
by matricul;
if a;
if &variable_intermédiaire_56&i.=. then &variable_intermédiaire_56&i.=0;
if &variable_intermédiaire_58&i.=. then &variable_intermédiaire_58&i.=0;
if &variable_intermédiaire_18&i.=. then &variable_intermédiaire_18&i.=0;
if &variable_intermédiaire_59&i.=. then &variable_intermédiaire_59&i.=0;
run;
proc datasets nolist;
delete &table_intermédiaire_16&i.;
run;
%end;
data final
(drop= i &variable_intermédiaire_56: &variable_intermédiaire_58: &variable_intermédiaire_18: &variable_intermédiaire_59:); set final;
array &variable_intermédiaire_73 (18) %do i = 1 %to 18; &variable_intermédiaire_56&&m&i. %end ; ;
array &variable_intermédiaire_72 (18) %do i = 1 %to 18; &variable_intermédiaire_58&i. %end ; ;
array &variable_intermédiaire_17 (18) %do i = 1 %to 18; &variable_intermédiaire_18&i. %end ; ;
array &variable_intermédiaire_65 (18) %do i = 1 %to 18; &variable_intermédiaire_59&i. %end ; ;
attrib &variable_intermédiaire_74 length=3. ;
attrib &variable_intermédiaire_75 length=3. ;
attrib &variable_intermédiaire_76 length=3. ;
&variable_intermédiaire_74=0;
do i=1 to 12;
if (&variable_intermédiaire_72(i) ne . and &variable_intermédiaire_72(i)>0) then do;
&variable_intermédiaire_74=&variable_intermédiaire_74+&variable_intermédiaire_72(i);
end;
end;
&variable_intermédiaire_75=0;
do i=1 to 18;
if (&variable_intermédiaire_65(i) ne . and &variable_intermédiaire_65(i)>0) then do;
&variable_intermédiaire_75=&variable_intermédiaire_75+&variable_intermédiaire_65(i);
end;
end;
&variable_intermédiaire_76=0;
do i=1 to 18;
if (&variable_intermédiaire_73(i) ne . and &variable_intermédiaire_73(i)>0) then do;
&variable_intermédiaire_76=&variable_intermédiaire_76+&variable_intermédiaire_73(i);
end;
end;
attrib &variable_intermédiaire_16 length=3. ;
&variable_intermédiaire_16=0;
do i=1 to 18;
if (&variable_intermédiaire_17(i) ne . and &variable_intermédiaire_17(i)>0) then do;
&variable_intermédiaire_16=i;
i=18;
end;
end;
run;
%mend;
%ext_partie_e;
proc datasets nolist;
delete &table_intermédiaire_15;
run;
/**********************************************************************************************************************/
/* f) table_source_partie_f */
/**********************************************************************************************************************/
proc sql;
create table &table_intermédiaire_17
as select a.matricul,
b.&variable_intermédiaire_78,
b.&variable_intermédiaire_79
from final as a left join librairie_table_intermédiaire_17.&table_intermédiaire_17 as b on a.matricul=b.matricul
where &dtref12.<=b.&variable_intermédiaire_79<=&dtref1. ;
quit;
%macro partie_f;
%do i=1 %to 12;
proc sql;
create table &variable_intermédiaire_77&i. as select matricul,
sum(&variable_intermédiaire_78^='') as &variable_intermédiaire_80&i.
from &table_intermédiaire_17
where compress(put(month(&variable_intermédiaire_79),z2.)!!SUBSTR(put(year(&variable_intermédiaire_79),z4.),3,2))="&&m&i."
group by matricul;
quit;
data final; merge final (in=a) &variable_intermédiaire_77&i.;
by matricul;
if a;
if &variable_intermédiaire_80&i.=. then &variable_intermédiaire_80i.=0;
run;
proc datasets nolist;
delete &variable_intermédiaire_77&i.;
run;
%end;
data final (drop= i &variable_intermédiaire_80: ); set final;
array &variable_intermédiaire_81 (12) %do i = 1 %to 12; &variable_intermédiaire_80&i. %end ; ;
attrib &variable_intermédiaire_82 length=3. ;
&variable_intermédiaire_82=0;
do i=1 to 12;
if (&variable_intermédiaire_81(i) ne . and &variable_intermédiaire_81(i)>0) then do;
&variable_intermédiaire_82=&variable_intermédiaire_82+&variable_intermédiaire_81(i);
end;
end;
run;
%mend;
%partie_f;
proc datasets nolist;
delete &table_intermédiaire_17;
run;
/**********************************************************************************************************************/
/* g)DONNEES LOCALES : INSEE et BCA */
/**********************************************************************************************************************/
%let an_bca= %eval(%sysfunc(year(%sysfunc(date())))-1);
%let an_bca_1=%eval(&an_bca.-1);
%let annee2=%eval(&an_bca.-2000);
%let annee2_1=%eval(&annee2-1);
/*Test existance table basestat.cteredcomAA */
data _NULL_;
if exist("basestat.cteredcom&annee2.",'data')=1 OR exist("basestat.cteredcom&annee2.",'view')=1 then do;
call symputx("mv_table_evocom","basestat.cteredcom&annee2.");
end;
else do;
call symputx("mv_table_evocom","basestat.cteredcom&annee2_1.");
end;
if exist("basestat.ctecomm12&annee2.",'data')=1 OR exist("basestat.ctecomm12&annee2.",'view')=1 then do;
call symputx("mv_table_comepci","basestat.ctecomm12&annee2.");
end;
else do;
call symputx("mv_table_comepci","basestat.ctecomm12&annee2_1.");
end;
if exist("basestat.bca_12&annee2.",'data')=1 OR exist("basestat.bca_12&annee2.",'view')=1 then do;
call symputx("mv_table_bca","basestat.bca_12&annee2.");end;
else do;
call symputx("mv_table_bca","basestat.bca_12&annee2_1.");
end;
run;
proc sort data=final; by numcomdo; run;
proc sort data=&mv_table_comepci out=com_epci (keep= numcom numepci); by numcom;run;
data final; merge final (in=a) com_epci (rename=(numcom=numcomdo));
by numcomdo;
if a;
run;
proc sql;
create table vl_insee_com
as select varloc.numcomdo, varloc.dep, cteredcom.ncomapre, varloc.&variable_intermédiaire_83, varloc.variable_intermédiaire_84
from &mv_table_varlocales. as varloc
left join &mv_table_evocom. as cteredcom on cteredcom.ncomavre=varloc.numcomdo;
quit;
data vl_insee_com;
set vl_insee_com;
if ncomapre ne "" then numcomdo=ncomapre;
run;
proc sql;
create table vl_insee_com1
as select max(vl_insee_com.dep) as dep, vl_insee_com.numcomdo,
sum(vl_insee_com.&variable_intermédiaire_83) as &variable_intermédiaire_83, sum(vl_insee_com.&variable_intermédiaire_84) as variable_intermédiaire_84
from vl_insee_com
group by numcomdo;
run;
quit;
/*Récupération des données INSEE à l'échelle Dep */
proc sql;
create table vl_insee_dep
as select dep,
sum(&variable_intermédiaire_83) as &variable_intermédiaire_83_dep,
sum(&variable_intermédiaire_84) as &variable_intermédiaire_84_dep
from vl_insee_com1
group by dep;
quit;
data final;
set final;
length depcaf $3.;
if numcaf="201" then depcaf="2A";
else if numcaf="202" then depcaf="2B";
else if (substr(numcomdo,1,2) not in ("97" "99")) then depcaf=substr(numcomdo,1,2);
else if (substr(numcomdo,1,2)="97" and substr(numcaf,1,2)="97") then depcaf=numcaf;
else depcaf=substr(numcaf,1,2);
run;
/*Récupération des données BCA */
data vl_BCA_com (keep= nivgeo &variable_intermédiaire_85 allchamp);
set &mv_table_bca. (where=(natnivge="1") keep=natnivge nivgeo &variable_intermédiaire_85 allchamp );
run;
data vl_BCA_epci (keep= nivgeo &variable_intermédiaire_85 allchamp);
set &mv_table_bca. (where=(natnivge="E") keep=natnivge nivgeo &variable_intermédiaire_85 allchamp );
run;
data vl_BCA_dep (keep= nivgeo &variable_intermédiaire_85 allchamp);
set &mv_table_bca. (where=(natnivge in ("4")) keep=natnivge nivgeo &variable_intermédiaire_85 allchamp);
if nivgeo="9A" then nivgeo="971";
if nivgeo="9B" then nivgeo="972";
if nivgeo="9C" then nivgeo="973";
if nivgeo="9D" then nivgeo="974";
if nivgeo="9E" then nivgeo="971";
if nivgeo="9F" then nivgeo="971";
if nivgeo="9G" then nivgeo="976";
run;
/* Fusion des données BCA */
proc sql;
create table varloc
as select final.numcaf, final.matricul, final.numcomdo, final.depcaf,
vl_insee_com.&variable_intermédiaire_83, vl_insee_com.&variable_intermédiaire_84,
vl_insee_dep.&variable_intermédiaire_83_dep, vl_insee_dep.&variable_intermédiaire_84_dep,
vl_BCA_com.&variable_intermédiaire_85 as &variable_intermédiaire_85_com, vl_BCA_com.allchamp as allchamp_com, vl_BCA_com.nivgeo as com_bca,
vl_BCA_epci.&variable_intermédiaire_85 as &variable_intermédiaire_85_epci, vl_BCA_epci.allchamp as allchamp_epci, vl_BCA_epci.nivgeo as epci_bca,
vl_BCA_dep.&variable_intermédiaire_85 as &variable_intermédiaire_85_dep, vl_BCA_dep.allchamp as allchamp_dep, vl_BCA_dep.nivgeo as dep_bca
from final
left join vl_insee_com1 as vl_insee_com on vl_insee_com.numcomdo=final.numcomdo
left join vl_insee_dep on vl_insee_dep.dep=final.depcaf
left join vl_BCA_com on vl_BCA_com.nivgeo=final.numcomdo
left join vl_BCA_epci on vl_BCA_epci.nivgeo=final.numepci
left join vl_BCA_dep on vl_BCA_dep.nivgeo=final.depcaf;
quit;
data varloc;
set varloc;
length &variable_intermédiaire_87 8. ;
if allchamp_com>=30 then &variable_intermédiaire_87 = &variable_intermédiaire_85_com / allchamp_com;
else if allchamp_epci>=30 then &variable_intermédiaire_87 = &variable_intermédiaire_85_epci / allchamp_epci;
else if allchamp_dep>0 then &variable_intermédiaire_87 = &variable_intermédiaire_85_dep / allchamp_dep;
length &variable_intermédiaire_86 8. ;
if variable_intermédiaire_84>0 then &variable_intermédiaire_86 = &variable_intermédiaire_83 / variable_intermédiaire_84;
else if &variable_intermédiaire_84_dep>0 then &variable_intermédiaire_86 = &variable_intermédiaire_83_dep / variable_intermédiaire_84_dep;
run;
proc sort data=final; by matricul; run;
proc sort data=varloc; by matricul; run;
data final; merge final (in=a) varloc (keep=matricul depcaf &variable_intermédiaire_87 &variable_intermédiaire_86);
by matricul;
if a;
run;
proc datasets nolist;
delete varloc vl_BCA_com vl_BCA_epci vl_BCA_dep vl_insee_com vl_insee_com1 vl_insee_dep com_epci;
run;
/**********************************************************************************************************************/
/**********************************************************************************************************************/
/********** Partie 2: Recodages et créations de nouvelles variables **************************************/
/**********************************************************************************************************************/
/**********************************************************************************************************************/
data final (keep=numcaf matricul NORDALLC MOIPIE_RIB_R &variable_modèle_34 NBPIE_PAP18_r NBPIE_TELEP18_r
&variable_modèle_11 &variable_modèle_12 occlog_r &variable_modèle_19 nb12a17_r NBCHGT_nb20a24_18m_r
&variable_modèle_1_r &variable_modèle_26 &variable_modèle_27 &variable_modèle_28 &variable_modèle_29 &variable_modèle_30
&variable_modèle_2_r &variable_modèle_31 &variable_modèle_32 NBMCHADR_r &variable_modèle_3_r &variable_modèle_5_r
&variable_modèle_4_r sitfam_r &variable_modèle_10 &variable_modèle_6 &variable_modèle_13 &variable_modèle_14 &variable_modèle_15
&variable_modèle_16 &variable_modèle_18 &variable_intermédiaire_60 &variable_modèle_7 MTPFVERS2_r MTREVACT2_r &variable_modèle_21
&variable_modèle_24 &variable_modèle_9 &variable_modèle_8 &variable_modèle_40 &variable_modèle_39 );
set final;
attrib MOIPIE_RIB_R length=$4. label="Nombre de mois depuis arrivée du pièce RIB sur le dossier";
if MOIPIE_RIB=0 then MOIPIE_RIB_R='0';
if 1<=MOIPIE_RIB<=5 then MOIPIE_RIB_R='1a5';
else if 6<=MOIPIE_RIB<=14 then MOIPIE_RIB_R='6a14';
else if MOIPIE_RIB>=15 then MOIPIE_RIB_R='15p';
attrib &variable_modèle_34 length=$4. ;
if &variable_intermédiaire_74=0 then &variable_modèle_34='0';
else if &variable_intermédiaire_74=1 then &variable_modèle_34='1';
else if &variable_intermédiaire_74>=2 then &variable_modèle_34='2p';
attrib NBPIE_PAP18_r length=$5. label="Nombre de pièces arrivées par le système d'acquisition papier sur 18 mois";
if NBPIE_PAP18=0 then NBPIE_PAP18_r='0';
else if 1<=NBPIE_PAP18<=13 then NBPIE_PAP18_r='1a13';
else if 14<=NBPIE_PAP18<=17 then NBPIE_PAP18_r='14a17';
else if NBPIE_PAP18>=18 then NBPIE_PAP18_r='18p';
attrib NBPIE_TELEP18_r length=$5. label="Nombre de téléprocédures sur 18 mois";
if NBPIE_TELEP18=0 then NBPIE_TELEP18_r='0';
else if 0<NBPIE_TELEP18<2 then NBPIE_TELEP18_r='1';
else if 2<=NBPIE_TELEP18<5 then NBPIE_TELEP18_r='2a5';
else if 5<=NBPIE_TELEP18<8 then NBPIE_TELEP18_r='5a7';
else if NBPIE_TELEP18>=8 then NBPIE_TELEP18_r='8etp';
attrib &variable_modèle_11 length=3. ;
variable_modèle_11=(&variable_intermédiaire_82>0);
attrib &variable_modèle_12 length=3. ;
&variable_modèle_12=0; if &variable_intermédiaire_12>=1 then &variable_modèle_12=1;
attrib &variable_modèle_37 length=$14. ;
If &variable_modèle_24="0" then &variable_modèle_24="1" ;
if (rsavers ne '0' or ppavers ne '0') and (alsvers='0' and aplvers='0' and alfvers='0') and tyocclog^='' then do;
if tyocclog in ('ACC', 'PRO') then occlog_R='prop';
else if tyocclog in ('BAL', 'SRG','SRO','HOT') then occlog_R='cham_hot_pen';
else if tyocclog in ('HCG','HCO','HGP','HOP') then occlog_R='heb_grat';
else if tyocclog in ('OLI') then occlog_R='heb_inc';
else if tyocclog in ('LOC') then occlog_R='localnu';
end;
else do;
if occlog in ("00",'') then occlog_R='heb_inc';
else if occlog in ("23" "24" "41" "70" "71" "74" "75" "76" "40") then occlog_R='prop'; /*sid090640*/
else if occlog="01" then occlog_R="localnu";
else if occlog in ("02" "10" "11" "63") then occlog_R="cham_hot_pen";
else if occlog in ("06" "08" "09" "16" "52") then occlog_R="hebPA_foyer";
else if occlog in ("05" "5X" "5Y" "60") then occlog_R="hebPA_foyer";
else if occlog in ("50" "59" "55") then occlog_R="ResSociale_Fjt";
else if occlog in ("51" "53" "83" "56" "77") then occlog_R="Conventionné";
end;
if occlog_R="" then occlog_R=occlog;
attrib &variable_modèle_19 length=$8. ;
&variable_modèle_19='0';
if &variable_intermédiaire_70='0' and &variable_intermédiaire_71 ="0" then &variable_modèle_19='0';
else if (&variable_intermédiaire_70 in ("1") and &variable_intermédiaire_71 in ("2" "3")) then &variable_modèle_19=&modalité_variable_modèle_19_1;
else if (&variable_intermédiaire_70 in ("2") and &variable_intermédiaire_71 in ("2" "3")) then &variable_modèle_19=&modalité_variable_modèle_19_2;
else if &variable_intermédiaire_70='1' then &variable_modèle_19=&modalité_variable_modèle_19_3;
else if &variable_intermédiaire_70 in ("2" "3") then &variable_modèle_19=&modalité_variable_modèle_19_4;
attrib nb12a17_r length=$3. label="Nombre d'enfant âgés de 12 à 17 ans";
if nb12a17=0 then nb12a17_r='0';
else if 0<nb12a17<=2 then nb12a17_r='1a2';
else if nb12a17>2 then nb12a17_r='3p';
attrib NBCHGT_nb20a24_18m_r length=$2. label="Nombre de changement du nombre d'enfant âgé de 20 à 24 ans sur 18 mois";
if NBCHGT_nb20a24_18m=0 then NBCHGT_nb20a24_18m_r='0';
else if NBCHGT_nb20a24_18m=1 then NBCHGT_nb20a24_18m_r='1';
else if NBCHGT_nb20a24_18m>1 then NBCHGT_nb20a24_18m_r='2p';
attrib &variable_modèle_1_r length=$4. ;
if &variable_modèle_1=0 then &variable_modèle_1_r='0';
else if &variable_modèle_1=1 then &variable_modèle_1_r='1';
else if &variable_modèle_1>1 then &variable_modèle_1_r='2etp';
attrib &variable_modèle_26 length=$4. ;
if &variable_intermédiaire_24=0 then &variable_modèle_26='0';
else if &variable_intermédiaire_24=1 then &variable_modèle_26='1';
else if &variable_intermédiaire_24=2 then &variable_modèle_26='2';
else if &variable_intermédiaire_24>=3 then &variable_modèle_26='3etp';
attrib &variable_modèle_27 length=$4. ;
if &variable_intermédiaire_25=0 then &variable_modèle_27='0';
else if &variable_intermédiaire_25=1 then &variable_modèle_27='1';
else if 2<=&variable_intermédiaire_25<=3 then &variable_modèle_27='2a3';
else if &variable_intermédiaire_25>=4 then &variable_modèle_27='4etp';
attrib &variable_modèle_28 length=$4. ;
if &variable_intermédiaire_26=0 then &variable_modèle_28='0';
else if 0<&variable_intermédiaire_26<=2 then &variable_modèle_28='1et2';
else if &variable_intermédiaire_26=3 then &variable_modèle_28='3';
else if &variable_intermédiaire_26>=4 then &variable_modèle_28='4p';
attrib &variable_modèle_29 length=$4. ;
if &variable_intermédiaire_27=0 then &variable_modèle_29='0';
else if 1<=&variable_intermédiaire_27<=2 then &variable_modèle_29='1et2';
else if &variable_intermédiaire_27>=3 then &variable_modèle_29='3etp';
attrib &variable_modèle_30 length=$5. ;
if 0<=variable_construction_variable_modèle_30<=6 then &variable_modèle_30='0a6';
else if 6<variable_construction_variable_modèle_30<=28 then &variable_modèle_30='7a28';
else if 28<variable_construction_variable_modèle_30<=37 then &variable_modèle_30='29a37';
else if 37<variable_construction_variable_modèle_30<=53 then &variable_modèle_30='38a53';
else if variable_construction_variable_modèle_30>53 then &variable_modèle_30='54etp';
attrib &variable_modèle_2_r length=$4. ;
if &variable_modèle_2=0 then &variable_modèle_2_r='0';
else if 1<=&variable_modèle_2<=3 then &variable_modèle_2_r='1a3';
else if 4<=&variable_modèle_2<=12 then &variable_modèle_2_r='4a12';
else if &variable_modèle_2>=13 then &variable_modèle_2_r='13p';
attrib &variable_modèle_31 length=$5. ;
if &variable_intermédiaire_61=0 then &variable_modèle_31='0';
else if 1<=&variable_intermédiaire_61<=4 then &variable_modèle_31='1a4';
else if 5<=&variable_intermédiaire_61<=10 then &variable_modèle_31='5a10';
else if 11<=&variable_intermédiaire_61<=14 then &variable_modèle_31='11a14';
else if &variable_intermédiaire_61>=15 then &variable_modèle_31='15etp';
attrib &variable_modèle_32 length=$4. ;
if &variable_intermédiaire_62=0 then &variable_modèle_32='0';
else if 1<=&variable_intermédiaire_62<=3 then &variable_modèle_32='1a3';
else if 4<=&variable_intermédiaire_62<=13 then &variable_modèle_32='4a13';
else if &variable_intermédiaire_62>=14 then &variable_modèle_32='14p';
attrib NBMCHADR_r length=$5. label="Nombre de mois écoulé depuis le dernier changement d'adresse enregistré pour le dossier";
if NBMCHADR=0 then NBMCHADR_r='0';
else if 1<=NBMCHADR<=13 then NBMCHADR_r='1a13';
else if 14<=NBMCHADR<=50 then NBMCHADR_r='14a50';
else if NBMCHADR>=51 then NBMCHADR_r='51p';
attrib &variable_modèle_3_r length=$5. ;
if &variable_modèle_3=0 then &variable_modèle_3_r='0';
else if &variable_modèle_3>0 then &variable_modèle_3_r='1etp';
attrib &variable_modèle_5_r length=$3. ;
if &variable_modèle_5=0 then &variable_modèle_5_r='0';
else if 0<&variable_modèle_5<5 then &variable_modèle_5_r='1a4';
else if 5<=&variable_modèle_5<7 then &variable_modèle_5_r='5a6';
else if &variable_modèle_5>=7 then &variable_modèle_5_r='7p';
attrib &variable_modèle_4 length=$5. ;
if &variable_modèle_4=0 then &variable_modèle_4_r='0';
else if 0<&variable_modèle_4<3 then &variable_modèle_4_r='1a2';
else if 3<=&variable_modèle_4<9 then &variable_modèle_4_r='3a8';
else if 9<=&variable_modèle_4<13 then &variable_modèle_4_r='9a12';
else if &variable_modèle_4>=13 then &variable_modèle_4_r='13etp';
attrib sitfam_r length=$10. label="Situation familiale - en couple/isolés et avec/sans enfants";
if sitfam in ('2','3','7') and presconj='0' and nbenlefa=0 then sitfam_r='coups_0cjt';
else if sitfam in ('2','3','7') and presconj='2' and nbenlefa=0 then sitfam_r='coups';
else if presconj='2' and nbenlefa>0 then sitfam_r='coupe';
else if presconj='0' and nbenlefa>0 then sitfam_r='monop';
else if presconj='0' and nbenlefa=0 and sexe='1' then sitfam_r='isole_h';
else if presconj='0' and nbenlefa=0 and sexe='2' then sitfam_r='isole_f';
attrib &variable_modèle_10 length=3. ;
&variable_modèle_10=0;
if &variable_construction_variable_modèle_10 in (&liste_modalités_&variable_construction_variable_modèle_10) then &variable_modèle_10=1;
attrib &variable_modèle_13 length=3. ;
&variable_modèle_13=(&variable_intermédiaire_13>0);
attrib &variable_modèle_14 length=3. ;
&variable_modèle_14=(&variable_intermédiaire_15>0);
length &variable_intermédiaire_21 8.;
if &variable_intermédiaire_22=. or &variable_intermédiaire_22=99999 then &variable_intermédiaire_21=.;
else if &variable_intermédiaire_22=0 then &variable_intermédiaire_21=0;
else &variable_intermédiaire_21=&variable_intermédiaire_22/&bmaf.;
attrib MTPFVERS2_r length=$9. label="Montant des prestations légales - en valeur relative";
if 0<=MTPFVERS2<0.35 then MTPFVERS2_r='m0.35';
else if 0.35<=MTPFVERS2<1 then MTPFVERS2_r='0.35a1';
else if 1<=MTPFVERS2<2 then MTPFVERS2_r='1a2';
else if MTPFVERS2>=2 then MTPFVERS2_r='2etp';
length MTREVACT2 8.;
if MTREVACT=. or MTREVACT=9999999 then MTREVACT2=.;
else if MTREVACT=. then MTREVACT2=0;
else MTREVACT2=MTREVACT/&smic.;
attrib MTREVACT2_r length=$5. label="Montant des revenus d'activité du foyer - en valeur relative";
if MTREVACT2=. then MTREVACT2_r='inc';
else if MTREVACT2=0 then MTREVACT2_r='0';
else if 0<MTREVACT2<6 then MTREVACT2_r='m6';
else if 6<=MTREVACT2<15 then MTREVACT2_r='6a15';
else if 15<=MTREVACT2<26 then MTREVACT2_r='15a26';
else if MTREVACT2>=26 then MTREVACT2_r='26etp';
length &variable_intermédiaire_19 8.;
if &variable_intermédiaire_20=. or &variable_intermédiaire_20=99999 then &variable_intermédiaire_19=.;
else if &variable_intermédiaire_20=0 then &variable_intermédiaire_19=0;
else &variable_intermédiaire_19=&variable_intermédiaire_20/&smic.;
attrib &variable_modèle_21 length=$8. ;
if &variable_intermédiaire_19=. or &variable_intermédiaire_19=99999 then &variable_modèle_21='0'; /*sid090640*/
else if &variable_intermédiaire_19=0 then &variable_modèle_21='0';
else if 0<&variable_intermédiaire_19<1.52 then &variable_modèle_21='m1.52';
else if 1.52<=&variable_intermédiaire_19<4.6 then &variable_modèle_21='1.52a4.6';
else if 4.6<=&variable_intermédiaire_19<6.3 then &variable_modèle_21='4.6a6.3';
else if &variable_intermédiaire_19>=6.3 then &variable_modèle_21='p6.3';
attrib &variable_modèle_40 length=$1. ;
if &variable_intermédiaire_68=. then &variable_modèle_40='0'; /*valeur mq = valeur ref*/
else if &variable_intermédiaire_68<=0.25 then &variable_modèle_40='0';
else if 0.25<&variable_intermédiaire_68<0.5 then &variable_modèle_40='1';
else if &variable_intermédiaire_68>=0.5 then &variable_modèle_40='2';
attrib &variable_modèle_39 length=$1.;
if 0<=&variable_intermédiaire_69<=0.15 then &variable_modèle_39='0';
else if 0.15<&variable_intermédiaire_69<0.28 then &variable_modèle_39='1';
else if &variable_intermédiaire_69>=0.28 then &variable_modèle_39='2';
else if (substr(numcomdo,1,2)="97" or depcaf="97") then &variable_modèle_39='0';
else if (substr(numcomdo,1,2)="98" or depcaf="98") then &variable_modèle_39='0';
else if &variable_intermédiaire_69=. then &variable_modèle_39='0'; /*valeur mq = valeur ref*/
run;
/**********************************************************************************************************************/
/**********************************************************************************************************************/
/********** Partie 3: Calcul du score **************************************/
/**********************************************************************************************************************/
/**********************************************************************************************************************/
/*Mettre les coeffs en dur*/
data _null_; set &mv_parametres.;
call symputx('cst',Intercept);
/*Indicatrices*/
call symputx('&variable_modèle_3_r',&variable_modèle_3_r1etp);
call symputx('&variable_modèle_10',&variable_modèle_101);
call symputx('variable_modèle_11',variable_modèle_111);
call symputx('&variable_modèle_6',&variable_modèle_6m1);
call symputx('&variable_modèle_12',&variable_modèle_121);
call symputx('&variable_modèle_13',&variable_modèle_131);
call symputx('&variable_modèle_14',&variable_modèle_141);
call symputx('&variable_modèle_15',&variable_modèle_151);
call symputx('&variable_modèle_16',&variable_modèle_161);
call symputx('&variable_modèle_17',&variable_modèle_171);
call symputx('&variable_intermédiaire_60',&variable_intermédiaire_601);
call symputx('&variable_modèle_8',&variable_modèle_81);
call symputx('&variable_modèle_7',&variable_modèle_7m1);
/*&variable_modèle_19*/
call symputx('&variable_modèle_19ann',&variable_modèle_192_rmodalité_variable_modèle_19_4);
call symputx('&variable_modèle_19trim',&variable_modèle_192_r&modalité_variable_modèle_19_3);
call symputx('&variable_modèle_19_suspann',&variable_modèle_192_r&modalité_variable_modèle_19_2);
call symputx('&variable_modèle_19_susptrim',&variable_modèle_192_r&modalité_variable_modèle_19_1);
/*MOIPIE_RIB_R*/
call symputx('pie_rib_1_5', 'MOIPIE_RIB_R1-5'n);
call symputx('pie_rib_6_14','MOIPIE_RIB_R6-14'n );
call symputx('pie_rib_15p','MOIPIE_RIB_R15+'n );
/*&variable_modèle_21*/
call symputx('&variable_modèle_21_1','&variable_modèle_211-Inf1.52'n );
call symputx('&variable_modèle_21_2','&variable_modèle_212-1.52_4.6'n);
call symputx('&variable_modèle_21_3','&variable_modèle_213-4.6_6.3'n);
call symputx('&variable_modèle_21_4','&variable_modèle_214-Sup6.3'n);
/*MTPFVERS3_r*/
call symputx('mtpfver_1', 'MTPFVERS3_r2-.35_1'n);
call symputx('mtpfver_2','MTPFVERS3_r3-1_2'n );
call symputx('mtpfver_3','MTPFVERS3_r4-Sup2'n );
/*MTREVACT2_r*/
call symputx('mtrevact_inc','MTREVACT2_rinc'n );
call symputx('mtrevact_1','MTREVACT2_r1-moins6'n );
call symputx('mtrevact_2','MTREVACT2_r2-6_15'n);
call symputx('mtrevact_3','MTREVACT2_r3-15-26'n);
call symputx('mtrevact_4','MTREVACT2_r4-26etpl'n );
/*&variable_modèle_24*/
call symputx('&variable_modèle_242', &variable_modèle_242);
call symputx('&variable_modèle_243', &variable_modèle_243);
/*nb12a17_r*/
call symputx('nb12a17_inf2','nb12a17_r1-Inf2'n);
call symputx('nb12a17_sup2','nb12a17_r2-Sup2'n);
/*NBCHGT_nb20a24_18m_r*/
call symputx('NBCHGT_nb20a24_1',NBCHGT_nb20a24_18m_r1);
call symputx('NBCHGT_nb20a24_2p',NBCHGT_nb20a24_18m_r2p);
/*&variable_modèle_1_r*/
call symputx('&variable_modèle_1_1',&variable_modèle_1_r1);
call symputx('&variable_modèle_1_2p',&variable_modèle_1_r2etp);
/*&variable_modèle_26*/
call symputx('&variable_modèle_26_1',&variable_modèle_261);
call symputx('&variable_modèle_26_2',&variable_modèle_262);
call symputx('&variable_modèle_26_3p',&variable_modèle_263etp);
/*&variable_modèle_27*/
call symputx('&variable_modèle_27_1',&variable_modèle_271);
call symputx('&variable_modèle_27_2_3',&variable_modèle_272-3n);
call symputx('&variable_modèle_27_4p',&variable_modèle_273+n);
/*&variable_modèle_28*/
call symputx('&variable_modèle_28_1_2',&variable_modèle_281et2);
call symputx('&variable_modèle_28_3',&variable_modèle_283);
call symputx('&variable_modèle_28_4',&variable_modèle_284);
/*&variable_modèle_29*/
call symputx('&variable_modèle_29_1_2',&variable_modèle_291et2);
call symputx('&variable_modèle_29_3p',&variable_modèle_293etp);
/*&variable_modèle_30*/
call symputx('&variable_modèle_30_7_27',&variable_modèle_3037et27);
call symputx('&variable_modèle_30_28_37',&variable_modèle_30328et37);
call symputx('&variable_modèle_30_38_53',&variable_modèle_30338et53);
call symputx('&variable_modèle_30_54p',&variable_modèle_30354etp);
/*&variable_modèle_2_r*/
call symputx('&variable_modèle_2_1_3','&variable_modèle_2_R1-3'n);
call symputx('&variable_modèle_2_4_12','&variable_modèle_2_R4-12'n);
call symputx('&variable_modèle_2_13p','&variable_modèle_2_R13+'n);
/*&variable_modèle_31*/
call symputx('&variable_modèle_31_1_4',&variable_modèle_311et4);
call symputx('&variable_modèle_31_5_10',&variable_modèle_315et10);
call symputx('&variable_modèle_31_11_14',&variable_modèle_3111et14);
call symputx('&variable_modèle_31_15p',&variable_modèle_3115etp);
/*&variable_modèle_32*/
call symputx('&variable_modèle_32_1_3','&variable_modèle_3221-3'n);
call symputx('&variable_modèle_32_4_13','&variable_modèle_3224-13'n);
call symputx('&variable_modèle_32_14p','&variable_modèle_32214+'n);
/*NBMCHADR_r*/
call symputx('NBMCHADR_1_13',NBMCHADR_r1a13);
call symputx('NBMCHADR_14_50',NBMCHADR_r14a50);
call symputx('NBMCHADR_51p',NBMCHADR_r51p);
/*&variable_modèle_34*/
call symputx('&variable_modèle_34_1',&variable_modèle_341);
call symputx('&variable_modèle_34_2p',&variable_modèle_342p);
/*NBPIE_PAP18_r*/
call symputx('pie_pap_1_13',NBPIE_PAP18_r1a13);
call symputx('pie_pap_14_17',NBPIE_PAP18_r14a17);
call symputx('pie_pap_18p',NBPIE_PAP18_r18p);
/*NBPIE_TELEP18_r*/
call symputx('pie_telep_1',NBPIE_TELEP18_r1);
call symputx('pie_telep_2_5',NBPIE_TELEP18_r2a5);
call symputx('pie_telep_5_8',NBPIE_TELEP18_r5a8);
call symputx('pie_telep_8p',NBPIE_TELEP18_r8etp);
/*&variable_modèle_5_r*/
call symputx('&variable_modèle_5_inf5','&variable_modèle_5_r1-Inf5'n );
call symputx('&variable_modèle_5_5_7','&variable_modèle_5_r2-5_7'n );
call symputx('&variable_modèle_5_sup7','&variable_modèle_5_r3-Sup7'n);
/*&variable_modèle_4_r*/
call symputx('&variable_modèle_4_inf3','&variable_modèle_4_r1-Inf3'n );
call symputx('&variable_modèle_4_3_9', '&variable_modèle_4_r2-3_9'n);
call symputx('&variable_modèle_4_9_13', '&variable_modèle_4_r3-9_13'n);
call symputx('&variable_modèle_4_sup13','&variable_modèle_4_r4-Sup13'n);
/*occlog_r*/
call symputx('occlog_convent', 'occlog_r2Conventionné'n);
call symputx('occlog_ResSocFjt', 'occlog_r2ResSociale-Fjt'n);
call symputx('occlog_chamhotpens', 'occlog_r2cham-hot-pen'n);
call symputx('occlog_hebgrat','occlog_r2heb-grat'n);
call symputx('occlog_hebinc', 'occlog_r2heb-inc'n);
call symputx('occlog_hebpafoy','occlog_r2hebPA-foyer'n);
call symputx('occlog_prop',occlog_r2prop);
/*&variable_modèle_9*/
call symputx('&variable_modèle_9_XX', &variable_modèle_9XX);
call symputx('&variable_modèle_9_act_0',&variable_modèle_9act_0);
call symputx('&variable_modèle_9_act_cst',&variable_modèle_9act_cst);
call symputx('&variable_modèle_9_act_v1',&variable_modèle_9act_v1 );
call symputx('&variable_modèle_9_act_v2', &variable_modèle_9act_v2);
/*sitfam_r*/
call symputx('sitfam_coups',sitfam3coups);
call symputx('sitfam_coups0cjt',sitfam3coups_0cjt);
call symputx('sitfam_isole_f',sitfam3isole_f );
call symputx('sitfam_isole_h',sitfam3isole_h );
call symputx('sitfam_monop', sitfam3monop);
/*&variable_modèle_39*/
call symputx('&variable_modèle_39_1',&variable_modèle_391);
call symputx('&variable_modèle_39_2',vl_&variable_modèle_392);
/*&variable_modèle_40*/
call symputx('&variable_modèle_40_1',&variable_modèle_401);
call symputx('&variable_modèle_40_2',&variable_modèle_402);
run;
data dmde_scoring&m1.;
set final;
score_dmde=1/(1+exp(-(
input(symget('cst'),best12.)
+input(symget('&variable_modèle_10'),best12.)*(&variable_modèle_10=1)
-sum(0,input(symget('&variable_modèle_10'),best12.))*(&variable_modèle_10=0)
+input(symget('variable_modèle_11'),best12.)*(variable_modèle_11=1)
-sum(0,input(symget('variable_modèle_11'),best12.))*(variable_modèle_11=0)
+input(symget('&variable_modèle_6'),best12.)*(&variable_modèle_6=1)
-sum(0,input(symget('&variable_modèle_6'),best12.))*(&variable_modèle_6=0)
+input(symget('&variable_modèle_12'),best12.)*(&variable_modèle_12=1)
-sum(0,input(symget('&variable_modèle_12'),best12.))*(&variable_modèle_12=0)
+input(symget('&variable_modèle_13'),best12.)*(&variable_modèle_13=1)
-sum(0,input(symget('&variable_modèle_13'),best12.))*(&variable_modèle_13=0)
+input(symget('&variable_modèle_14'),best12.)*(&variable_modèle_14=1)
-sum(0,input(symget('&variable_modèle_14'),best12.))*(&variable_modèle_14=0)
+input(symget('&variable_modèle_15'),best12.)*(&variable_modèle_15=1)
-sum(0,input(symget('&variable_modèle_15'),best12.))*(&variable_modèle_15=0)
+input(symget('&variable_modèle_16'),best12.)*(&variable_modèle_16=1)
-sum(0,input(symget('&variable_modèle_16'),best12.))*(&variable_modèle_16=0)
+input(symget('&variable_modèle_17'),best12.)*(&variable_modèle_17=1)
-sum(0, input(symget('&variable_modèle_17'),best12.))*(&variable_modèle_17=0)
+input(symget('&variable_modèle_18'),best12.)*(&variable_modèle_18=1)
-sum(0,input(symget('&variable_modèle_18'),best12.))*(&variable_modèle_18=0)
+input(symget('&variable_modèle_8'),best12.)*(&variable_modèle_8=1)
-sum(0,input(symget('&variable_modèle_8'),best12.))*(&variable_modèle_8=0)
+input(symget('&variable_modèle_7'),best12.)*(&variable_modèle_7=1)
-sum(0,input(symget('&variable_modèle_7'),best12.))*(&variable_modèle_7=0)
+input(symget('&variable_modèle_3_r'),best12.)*(&variable_modèle_3_r='1etp')
-sum(0,input(symget('&variable_modèle_3_r'),best12.))*(&variable_modèle_3_r='0')
+input(symget('&variable_modèle_19_Rann'),best12.)*(&variable_modèle_19='Rann')
+input(symget('&variable_modèle_19_Rtrim'),best12.)*(&variable_modèle_19='Rtrim')
+input(symget('&variable_modèle_19_suspann'),best12.)*(&variable_modèle_19='suspann')
+input(symget('&variable_modèle_19_susptrim'),best12.)*(&variable_modèle_19='susptrim')
-sum(0, input(symget('&variable_modèle_19_Rann'),best12.),input(symget('&variable_modèle_19_Rtrim'),best12.),input(symget('&variable_modèle_19_suspann'),best12.),input(symget('&variable_modèle_19_susptrim'),best12.))*(&variable_modèle_19='0')
+input(symget('pie_rib_1_5'),best12.)*(MOIPIE_RIB_R='1a5')
+input(symget('pie_rib_6_14'),best12.)*(MOIPIE_RIB_R='6a14')
+input(symget('pie_rib_15p'),best12.)*(MOIPIE_RIB_R='15p')
-sum(0,input(symget('pie_rib_1_5'),best12.),input(symget('pie_rib_6_14'),best12.),input(symget('pie_rib_15p'),best12.))*(MOIPIE_RIB_R='0')
+input(symget('&variable_modèle_21_1'),best12.)*(&variable_modèle_21='m1.52')
+input(symget('&variable_modèle_21_2'),best12.)*(&variable_modèle_21='1.52a4.6')
+input(symget('&variable_modèle_21_3'),best12.)*(&variable_modèle_21='4.6a6.3')
+input(symget('&variable_modèle_21_4'),best12.)*(&variable_modèle_21='p6.3')
-sum(0, input(symget('&variable_modèle_21_1'),best12.),input(symget('&variable_modèle_21_2'),best12.),input(symget('&variable_modèle_21_3'),best12.),input(symget('&variable_modèle_21_4'),best12.))*(&variable_modèle_21='0')
+input(symget('mtpfver_1'),best12.)*(MTPFVERS2_r='0.35a1')
+input(symget('mtpfver_2'),best12.)*(MTPFVERS2_r='1a2')
+input(symget('mtpfver_3'),best12.)*(MTPFVERS2_r='2etp')
-sum(0,input(symget('mtpfver_1'),best12.),input(symget('mtpfver_2'),best12.),input(symget('mtpfver_3'),best12.))*(MTPFVERS2_r='m0.35')
+input(symget('mtrevact_inc'),best12.)*(MTREVACT2_r='inc')
+input(symget('mtrevact_1'),best12.)*(MTREVACT2_r='m6')
+input(symget('mtrevact_2'),best12.)*(MTREVACT2_r='6a15')
+input(symget('mtrevact_3'),best12.)*(MTREVACT2_r='15a26')
+input(symget('mtrevact_4'),best12.)*(MTREVACT2_r='26etp')
-sum(0,input(symget('mtrevact_inc'),best12.),input(symget('mtrevact_1'),best12.),input(symget('mtrevact_2'),best12.),input(symget('mtrevact_3'),best12.),input(symget('mtrevact_4'),best12.))*(MTREVACT2_r='0')
+input(symget('&variable_modèle_242'),best12.)*(&variable_modèle_24='2')
+input(symget('&variable_modèle_243'),best12.)*(&variable_modèle_24='3')
-sum(0,input(symget('&variable_modèle_242'),best12.),input(symget('&variable_modèle_243'),best12.))*(&variable_modèle_24='1')
+input(symget('nb12a17_inf2'),best12.)*(nb12a17_r='1a2')
+input(symget('nb12a17_sup2'),best12.)*(nb12a17_r='3p')
-sum(0,input(symget('nb12a17_inf2'),best12.),input(symget('nb12a17_sup2'),best12.))*(nb12a17_r='0')
+input(symget('NBCHGT_nb20a24_1'),best12.)*(NBCHGT_nb20a24_18m_r='1')
+input(symget('NBCHGT_nb20a24_2p'),best12.)*(NBCHGT_nb20a24_18m_r='2p')
-sum(0,input(symget('NBCHGT_nb20a24_1'),best12.),input(symget('NBCHGT_nb20a24_2p'),best12.))*(NBCHGT_nb20a24_18m_r='0')
+input(symget('&variable_modèle_1_1'),best12.)*(&variable_modèle_1_r_r='1')
+input(symget('&variable_modèle_1_2p'),best12.)*(&variable_modèle_1_r='2etp')
-sum(0,input(symget('&variable_modèle_1_1'),best12.),input(symget('&variable_modèle_1_2p'),best12.))*(&variable_modèle_1_r='0')
+input(symget('&variable_modèle_26_1'),best12.)*(&variable_modèle_26='1')
+input(symget('&variable_modèle_26_2'),best12.)*(&variable_modèle_26='2')
+input(symget('&variable_modèle_26_3p'),best12.)*(&variable_modèle_26='3etp')
-sum(0,input(symget('&variable_modèle_26_1'),best12.),input(symget('&variable_modèle_26_2'),best12.),input(symget('&variable_modèle_26_3p'),best12.))*(&variable_modèle_26='0')
+input(symget('&variable_modèle_27_1'),best12.)*(&variable_modèle_27='1')
+input(symget('&variable_modèle_27_2_3'),best12.)*(&variable_modèle_27='2a3')
+input(symget('&variable_modèle_27_4p'),best12.)*(&variable_modèle_27='4etp')
-sum(0,input(symget('&variable_modèle_27_1'),best12.),input(symget('&variable_modèle_27_2_3'),best12.),input(symget('&variable_modèle_27_4p'),best12.))*(&variable_modèle_27='0')
+input(symget('&variable_modèle_28_1_2'),best12.)*(&variable_modèle_28='1et2')
+input(symget('&variable_modèle_28_3'),best12.)*(&variable_modèle_28='3')
+input(symget('&variable_modèle_28_4'),best12.)*(&variable_modèle_28='4p')
-sum(0,input(symget('&variable_modèle_28_1_2'),best12.),input(symget('&variable_modèle_28_3'),best12.),input(symget('&variable_modèle_28_4'),best12.))*(&variable_modèle_28='0')
+input(symget('&variable_modèle_29_1_2'),best12.)*(&variable_modèle_29='1et2')
+input(symget('&variable_modèle_29_3p'),best12.)*(&variable_modèle_29='3etp')
-sum(0,input(symget('&variable_modèle_29_1_2'),best12.),input(symget('&variable_modèle_29_3p'),best12.))*(&variable_modèle_29='0')
+input(symget('&variable_modèle_30_7_27'),best12.)*(&variable_modèle_30='7a28')
+input(symget('&variable_modèle_30_28_37'),best12.)*(&variable_modèle_30='29a37')
+input(symget('&variable_modèle_30_38_53'),best12.)*(&variable_modèle_30='38a53')
+input(symget('&variable_modèle_30_54p'),best12.)*(&variable_modèle_30='54etp')
-sum(0,input(symget('&variable_modèle_30_7_27'),best12.),input(symget('&variable_modèle_30_28_37'),best12.),input(symget('&variable_modèle_30_38_53'),best12.),input(symget('&variable_modèle_30_54p'),best12.))*(&variable_modèle_30='0a6')
+input(symget('&variable_modèle_2_eq1_1_3'),best12.)*(&variable_modèle_2_r='1a3')
+input(symget('&variable_modèle_2_eq1_4_12'),best12.)*(&variable_modèle_2_r='4a12')
+input(symget('&variable_modèle_2_eq1_13p'),best12.)*(&variable_modèle_2_r='13p')
-sum(0,input(symget('&variable_modèle_2_eq1_1_3'),best12.),input(symget('&variable_modèle_2_eq1_4_12'),best12.),input(symget('&variable_modèle_31_eq1_13p'),best12.))*(&variable_modèle_2_r='0')
+input(symget('&variable_modèle_31_1_4'),best12.)*(&variable_modèle_31='1a4')
+input(symget('&variable_modèle_31_5_10'),best12.)*(&variable_modèle_31='5a10')
+input(symget('&variable_modèle_31_11_14'),best12.)*(&variable_modèle_31='11a14')
+input(symget('&variable_modèle_31_15p'),best12.)*(&variable_modèle_31='15etp')
-sum(0,input(symget('&variable_modèle_31_1_4'),best12.),input(symget('&variable_modèle_31_5_10'),best12.),input(symget('&variable_modèle_31_11_14'),best12.),input(symget('&variable_modèle_31_15p'),best12.))*(&variable_modèle_31='0')
+input(symget('&variable_modèle_32_1_3'),best12.)*(&variable_modèle_32='1a3')
+input(symget('&variable_modèle_32_4_13'),best12.)*(&variable_modèle_32='4a13')
+input(symget('&variable_modèle_32_14p'),best12.)*(&variable_modèle_32'14p')
-sum(0,input(symget('&variable_modèle_32_1_3'),best12.),input(symget('&variable_modèle_32_4_13'),best12.),input(symget('&variable_modèle_32_14p'),best12.))*(&variable_modèle_32='0')
+input(symget('NBMCHADR_1_13'),best12.)*(NBMCHADR_r='1a13')
+input(symget('NBMCHADR_14_50'),best12.)*(NBMCHADR_r='14a50')
+input(symget('NBMCHADR_51p'),best12.)*(NBMCHADR_r='51p')
-sum(0,input(symget('NBMCHADR_1_13'),best12.),input(symget('NBMCHADR_14_50'),best12.),input(symget('NBMCHADR_51p'),best12.))*(NBMCHADR_r='0')
+input(symget('&variable_modèle_34_1'),best12.)*(&variable_modèle_34='1')
+input(symget('&variable_modèle_34_2p'),best12.)*(&variable_modèle_34='2p')
-sum(0,input(symget('&variable_modèle_34_1'),best12.),input(symget('&variable_modèle_34_2p'),best12.))*(&variable_modèle_34='0')
+input(symget('pie_pap_1_13'),best12.)*(NBPIE_PAP18_r='1a13')
+input(symget('pie_pap_14_17'),best12.)*(NBPIE_PAP18_r='14a17')
+input(symget('pie_pap_18p'),best12.)*(NBPIE_PAP18_r='18p')
-sum(0,input(symget('pie_pap_1_13'),best12.),input(symget('pie_pap_14_17'),best12.),input(symget('pie_pap_18p'),best12.))*(NBPIE_PAP18_r='0')
+input(symget('pie_telep_1'),best12.)*(NBPIE_TELEP18_r='1')
+input(symget('pie_telep_2_5'),best12.)*(NBPIE_TELEP18_r='2a5')
+input(symget('pie_telep_5_8'),best12.)*(NBPIE_TELEP18_r='5a7')
+input(symget('pie_telep_8p'),best12.)*(NBPIE_TELEP18_r='8etp')
-sum(0,input(symget('pie_telep_1'),best12.),input(symget('pie_telep_2_5'),best12.),input(symget('pie_telep_5_8'),best12.),input(symget('pie_telep_8p'),best12.))*(NBPIE_TELEP18_r='0')
+input(symget('&variable_modèle_5_r_inf5'),best12.)*(&variable_modèle_5_r='1a4')
+input(symget('&variable_modèle_5_r_5_7'),best12.)*(&variable_modèle_5_r='5a6')
+input(symget('&variable_modèle_5_r_sup7'),best12.)*(&variable_modèle_5_r='7p')
-sum(0,input(symget('&variable_modèle_5_r_inf5'),best12.),input(symget('&variable_modèle_5_r_5_7'),best12.),input(symget('&variable_modèle_5_r_sup7'),best12.))*(&variable_modèle_5_r='0')
+input(symget('&variable_modèle_4_inf3'),best12.)*(&variable_modèle_4_r='1a2')
+input(symget('&variable_modèle_4_3_9'),best12.)*(&variable_modèle_4_r='3a8')
+input(symget('&variable_modèle_4_9_13'),best12.)*(&variable_modèle_4_r='9a12')
+input(symget('&variable_modèle_4_sup13'),best12.)*(&variable_modèle_4_r='13etp')
-sum(0,input(symget('&variable_modèle_4_inf3'),best12.),input(symget('&variable_modèle_4_3_9'),best12.),input(symget('&variable_modèle_4_9_13'),best12.),input(symget('&variable_modèle_4_sup13'),best12.))*(&variable_modèle_4_r='0')
+input(symget('occlog_convent'),best12.)*(occlog_r='Conventionné')
+input(symget('occlog_ResSocFjt'),best12.)*(occlog_r='ResSociale_Fjt')
+input(symget('occlog_chamhotpens'),best12.)*(occlog_r='cham_hot_pen')
+input(symget('occlog_hebgrat'),best12.)*(occlog_r='heb_grat')
+input(symget('occlog_hebinc'),best12.)*(occlog_r='heb_inc')
+input(symget('occlog_hebpafoy'),best12.)*(occlog_r='hebPA_foyer')
+input(symget('occlog_prop'),best12.)*(occlog_r='prop')
-sum(0,input(symget('occlog_convent'),best12.),input(symget('occlog_ResSocFjt'),best12.),input(symget('occlog_chamhotpens'),best12.),
input(symget('occlog_hebgrat'),best12.),input(symget('occlog_hebinc'),best12.),input(symget('occlog_hebpafoy'),best12.),
input(symget('occlog_prop'),best12.))*(occlog_r='localnu')
+input(symget('&variable_modèle_9_XX'),best12.)*(&variable_modèle_9='XX')
+input(symget('&variable_modèle_9_act_0'),best12.)*(&variable_modèle_9='act_0')
+input(symget('&variable_modèle_9_act_cst'),best12.)*(&variable_modèle_9='act_cst')
+input(symget('&variable_modèle_9_act_v1'),best12.)*(&variable_modèle_9='act_v1')
+input(symget('&variable_modèle_9_act_v2'),best12.)*(&variable_modèle_9='act_v2')
-sum(0,input(symget('&variable_modèle_9_XX'),best12.),input(symget('&variable_modèle_9_act_0'),best12.),input(symget('&variable_modèle_9_act_cst'),best12.),
input(symget('&variable_modèle_9_act_v1'),best12.),input(symget('&variable_modèle_9_act_v2'),best12.))*(&variable_modèle_9='0_0')
+input(symget('sitfam_coups'),best12.)*(sitfam_r='coups')
+input(symget('sitfam_coups0cjt'),best12.)*(sitfam_r='coups_0cjt')
+input(symget('sitfam_isole_f'),best12.)*(sitfam_r='isole_f')
+input(symget('sitfam_isole_h'),best12.)*(sitfam_r='isole_h')
+input(symget('sitfam_monop'),best12.)*(sitfam_r='monop')
-sum(0,input(symget('sitfam_coups'),best12.),input(symget('sitfam_coups0cjt'),best12.),input(symget('sitfam_isole_f'),best12.),
input(symget('sitfam_isole_h'),best12.),input(symget('sitfam_monop'),best12.))*(sitfam_r='coupe')
+input(symget('&variable_modèle_39_1'),best12.)*(&variable_modèle_39='1')
+input(symget('&variable_modèle_39_2'),best12.)*(&variable_modèle_39='2')
-sum(0,input(symget('&variable_modèle_39_1'),best12.),input(symget('&variable_modèle_39_2'),best12.))*(&variable_modèle_39='0')
+input(symget('&variable_intermédiaire_68_1'),best12.)*(&variable_modèle_40='1')
+input(symget('&variable_intermédiaire_68_2'),best12.)*(&variable_modèle_40='2')
-sum(0,input(symget('&variable_intermédiaire_68_1'),best12.),input(symget('&variable_intermédiaire_68_2'),best12.))*(&variable_modèle_40='0')
)));
run;
/* tri par scoremax et renomage des scores comme les anciens utilisés */
proc sort data=work.dmde_scoring&m1. ( rename=(score_dmde=scoremax));
by descending SCOREMAX ;
run;
/*modif 09/2011 */
/*SORTIE DE TABLE POUR ENTREPOT DII*/
/*Formats des variables*/
proc format lib = library ;
/* Cette partie du programme est masquée, mais elle ne contient que de la gestion d'affichage */
run;
/*Liste des variables à conserver (à destination de la CNAF) */
/*Liste des variables pour alimenter la table FRESCORE*/
%let frescore=NUMCAF DTREFFRE DTCRE MATRICUL NORDALLC SCORGLOB SCORLOG SCORMAX SCORPRO
SCORSIT SCORESS AGEAINE AGEBENJ &variable_sortie_1 &variable_sortie_2 &variable_sortie_3 &variable_sortie_4 &variable_sortie_5 &variable_sortie_6 &variable_sortie_7
&variable_sortie_8 &variable_sortie_9 &variable_sortie_10 &variable_sortie_11 &variable_sortie_12 &variable_sortie_13 &variable_sortie_14 &variable_sortie_15 &variable_sortie_16 ENF16SSA
ENF1217 ENF18AX ENF35 ENF610 &variable_sortie_17 &variable_sortie_18 ;
/*liste des variables pour alimenter la FRESCOR3*/
%let frescore3 = NUMCAF DTREFFRE DTCRE MATRICUL NORDALLC dro_aah_r MOIPIE_RIB_R &variable_modèle_21 &variable_modèle_22 MTREVACT2_r
&variable_modèle_24 nb12a17_r NBCHGT_nb20a24_18m_r &variable_modèle_1_r &variable_modèle_26 &variable_modèle_27 &variable_modèle_28 &variable_modèle_29 &variable_modèle_30
&variable_modèle_2_r &variable_modèle_31 &variable_modèle_32 NBMCHADR_r &variable_modèle_3_r &variable_modèle_34 NBPIE_PAP18_r
NBPIE_TELEP18_r &variable_modèle_5_r &variable_modèle_4_r occlog_r &variable_modèle_9 sitfam_r &variable_modèle_10 &variable_modèle_11 &variable_modèle_6
&variable_modèle_12 &variable_modèle_13 &variable_modèle_14 &variable_modèle_15 &variable_modèle_16 &variable_modèle_18 &variable_intermédiaire_60 &variable_modèle_8 &variable_modèle_7
&variable_modèle_39 &variable_modèle_40 ;
/*Sortie et archivage des tables FRESCORE et FRE du mois de référence du scoring*/
options compress = yes ;
data work.FRESCOR&m1.(keep= &frescore.)
work.FRESCOR3&m1. (keep= &frescore3.) ;
run;
/* suppression des tables qui ne seront plus utilisées */
option compress = yes ;
proc datasets lib = work nolist ;
delete final dmde_scoring&m1. ;
copy out = allstat ;
select FRESCOR&m1. FRESCOR3&m1.;
run ;
```