Vous êtes sur la page 1sur 3

APPLICATION SUR UN PETIT EXEMPLE DU CALAGE DU MARGES AVEC LA MACRO CALMAR

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/*
/* MODE D'EMPLOI :
/* 1. Télécharger la macro Calmar
/* depuis
http://www.insee.fr/fr/methodes/default.asp?page=outils/calmar/accueil_calm
ar.htm
/* 2. Renseigner sur la 1ère ligne du code l'adresse où le fichier
téléchargé a été enregistré
/* 3. Soumettre
/*
/* REMARQUES :
/* - La macro CALMAR utilise les modules SAS/STAT et SAS/IML du logiciel
SAS (version 8 ou 9)
/* - Sa documentation est téléchargeable depuis le lien ci-dessus
/*
/* DESCRIPTION DES DONNÉES :
/* L'enquête a pour but de déterminer le taux de salariés satisfaits de
leurs conditions de travail.
/* Les personnes interrogées sont caractérisées par :
/* - l'établissement où ils travaillent (variable "étab" valant A ou
B)
/* - leur service (variable "service" valant 1, 2 ou 3 pour
production, commercial, R&D)
/* - la catégorie de personnel dont ils relèvent (variable "categ"
valant 1 ou 2)
/* - le sexe (variable "sexe" valant 1 pour les hommes et 2 pour les
femmes)
/* - leur salaire (variable "salaire")
/* - leur réponse à la question posée par l'enquête (notée "y" et
codée 1 pour oui, 0 pour non)
/*
/* Le programme qui suit :
/* - fournit les données observées sur l'échantillon
/* - donne les marges de calage (disponibles sur les 5 1ères
variables ci-dessus)
/* - réalise le calage selon différentes options
/* - estime le paramètre d'intérêt avec chaque méthode
/**************************************************************************
*************************/
LIBNAME COMPIL "Chemin où trouver la macro CALMAR";
OPTIONS SASMSTORE = COMPIL MSTORED NODATE;

/* LES DONNÉES COLLECTÉES SUR L'ÉCHANTILLON */


DATA donnee;
INPUT id $ service $ categ $ sexe $ salaire y;
CARDS;
A01 1 1 1 150 1
A02 1 1 1 360 1
A03 1 2 1 250 0
A04 2 2 2 300 0
A05 2 3 1 320 1
A06 2 3 2 350 1
A07 2 1 1 160 0
B01 1 3 2 220 0
B02 1 2 1 210 1
B03 1 1 2 160 1
B04 2 3 1 270 0
B05 2 3 2 250 0
B06 2 2 1 210 1
B07 2 1 1 180 0
B08 2 2 1 160 1
;
run;
data donnee;
set donnee;
length etab $1.;
if substr(id,1,1) = 'A' then do; etab = '1' ; pond = 10; end;
else do; etab = '2' ; pond = 20; end;
run;

/* LES MARGES DE CALAGE */


DATA marges;
INPUT var $ n mar1 mar2 mar3;
CARDS;
etab 2 70 160 .
service 2 100 130 .
categ 3 80 90 60
sexe 2 140 90 .
salaire 0 47000 . .
;
run;

/* APPLICATIONS DU CALAGE SUR MARGES */


title "calage sur marges- méthode linéaire ";
%CALMAR(DATA=donnee,POIDS=pond,IDENT=id,
DATAMAR=marges,M=1,EDITPOI=oui,OBSELI=oui,
DATAPOI=sortie1,POIDSFIN=wcale1,LABELPOI=methode lineaire);

title "calage sur marges- méthode raking ratio ";


%CALMAR(DATA=donnee,POIDS=pond,IDENT=id,
DATAMAR=marges,M=2,EDITPOI=oui,OBSELI=oui,
DATAPOI=sortie2,POIDSFIN=wcale2,LABELPOI=methode raking ratio);

title "calage sur marges- méthode logit ";


%CALMAR(DATA=donnee,POIDS=pond,IDENT=id,
DATAMAR=marges,M=3,Lo = 0.3, up = 1.8, EDITPOI=oui,OBSELI=oui,
DATAPOI=sortie3,POIDSFIN=wcale3,LABELPOI=methode logit);
/* ESTIMATION DU PARAMÈTRE D'INTÉRÊT */
proc sort data =donnee; by id;
proc sort data =sortie1; by id;
proc sort data =sortie2; by id;
proc sort data =sortie3; by id;
data donnee_calee;
merge donnee sortie1 sortie2 sortie3;
by id;
run;

proc means data = donnee_calee mean;


var y ;
weight pond;
title "Estimation HT - proportion intérêt ";
run;
proc means data = donnee_calee mean;
var y ;
weight wcale1;
title "Estimation - calage linéaire - proportion intérêt ";
run;
proc means data = donnee_calee mean;
var y ;
weight wcale2;
title "Estimation - calage raking ratio - proportion intérêt ";
run;
proc means data = donnee_calee mean;
var y ;
weight wcale3;
title "Estimation - calage logit - proportion intérêt ";
run;