DISPLAY '*******************************************************' DISPLAY "DETERMINANTS DES DECISIONS D'OFFRE DE TRAVAIL" DISPLAY '*******************************************************' ALLOCATE 0 311 *spécifie la longueur des séries OPEN DATA chapitre18.xls *ouverture du fichier de données DATA(FORMAT=XLS,ORG=COLS) *description du fichier de données PRINT / *impression de toutes les séries du fichier COMPUTE nobst = 311 *calcule la variable nobst *nobst = nombre d'observations ******************************************************* * Intitulé des séries * ******************************************************* /* l = nombre d'heures de travail réalisées par la femme en 1995 enf6 = nombre d'enfants de moins de 6 ans du ménage enf618 = nombre d'enfants entre 6 et 18 ans du ménage agef = âge de la femme form = nombre d'années de formation de la femme w = salaire horaire de le femme (en francs 1995) revenu = revenu du ménage en 1995 chomage = taux de chomage dans la région */ DISPLAY '*******************************************************' DISPLAY 'Problème n°1 : Construction des variables et analyse' DISPLAY 'descriptive' DISPLAY '*******************************************************' DISPLAY 'QUESTION 1' SET lfp = l>0 *création de la variable indicatrice lfp *lfp = 1 si la femme travaille, 0 sinon COMPUTE nblfp = %SUM(lfp) *nblfp = nombre de femmes travaillant *%SUM renvoie la somme de la variable lfp COMPUTE rlfp = (nblfp / nobst)*100 *rlfp = proportion de femmes travaillant SET nlfp = lfp==0 *nlfp = 1 si 'lfp = 0' , 0 sinon COMPUTE rnlfp = 100 - rlfp *rnlfp = proportion de femmes qui ne travaillent pas SET v = revenu - l*w *v = revenus exogènes SET f = form>12 *f = 1 si l'individu a suivi des études supérieures, 0 sinon SET a2 = agef*agef *a2 = age au carré DISPLAY 'QUESTION 2' TABLE *calcul de statistiques pour toutes les séries sur l'ensemble de *l'échantillon disponible TABLE(SMPL=lfp) *statistiques sur l'échantillon de femmes qui travaillent TABLE(SMPL=nlfp) *statistiques sur l'échantillon de femmes qui ne travaillent pas DISPLAY '*******************************************************' DISPLAY 'Problème n°2 : Modèle de participation' DISPLAY '*******************************************************' DISPLAY 'QUESTION 1' LGT lfp # CONSTANT enf6 enf618 agef a2 f v chomage *estimation du modèle logit PRJ pl_lfp *calcul des valeurs estimées de lfp, la série de ces valeurs *est appelée pl_lfp SET pl_lfp = EXP(pl_lfp)/(1+EXP(pl_lfp)) *calcul du modèle logit* *pl_lfp = probabilité que la variable lfp soit égale à un *(probabilité que la femme travaille) COMPUTE bcste=%BETA(1) , be6=%BETA(2) , be618=%BETA(3) , $ bagef=%BETA(4) , ba2=%BETA(5) , bf=%BETA(6) , $ bv=%BETA(7) , bc=%BETA(8) *désignation des coefficients estimés dans le modèle précédent *%BETA(i) renvoie la valeur du coefficient estimé de la variable *explicative i PRBIT lfp # CONSTANT enf6 enf618 agef a2 f v chomage *estimation du modèle probit PRJ(CDF=pp_lfp) *pp_lfp = nouvelle série estimée (probabilité que la femme travaille) COMPUTE acste=%BETA(1) , ae6=%BETA(2) , ae618=%BETA(3) , $ aagef=%BETA(4) , aa2=%BETA(5) , af=%BETA(6) , $ av=%BETA(7) , ac=%BETA(8) DISPLAY 'QUESTION 2' COMPUTE eage = -aagef/aa2 DISPLAY "Effet global positif de l'âge jusqu'à:" eage 'ans' COMPUTE agemax = -aagef/(2*aa2) DISPLAY "Effet maximal de l'âge sur la probabilité:" agemax 'ans' DISPLAY 'QUESTION 3' DISPLAY ' Effets marginaux au point moyen :' STATISTICS(NOPRINT) enf6 *calcul des statistiques concernant la variable enf6, celles-ci ne vont *pas être affichées à l'écran COMPUTE me6 = %MEAN *me6 = moyenne de la variable enf6 *%MEAN renvoie la valeur de la moyenne de la dernière variable utilisée STATISTIC(NOPRINT) enf618 COMPUTE me618 = %MEAN STATISTIC(NOPRINT) agef COMPUTE magef = %MEAN COMPUTE ma2 = magef*magef *ma2 = magef au carré STATISTIC(NOPRINT) v COMPUTE mv = %MEAN STATISTIC(NOPRINT) chomage COMPUTE mc = %MEAN COMPUTE mxb = acste+ae6*me6+ae618*me618+ $ aagef*magef+aa2*ma2+av*mv+ac*mc *mxb = point moyen (formation = 0) ******************************************* *calcul de l'effet de la variable binaire f ******************************************* COMPUTE pm = %CDF(mxb) *%CDF donne la valeur de F(mxb)avec F la fonction cumulative de la loi normale* DISPLAY "Probabilité au point moyen (formation=0):" pm COMPUTE mxb1 = acste+ae6*me6+ae618*me618+ $ aagef*magef+aa2*ma2+av*mv+ac*mc+af *mxb1 = point moyen (formation = 1) COMPUTE pm1 = %CDF(mxb1) DISPLAY "Probabilité au point moyen (formation=1):" pm1 COMPUTE ff = pm1-pm DISP 'effet marginal de la variable binaire f' ff ******************************************* *calcul de l'effet des variables continues ******************************************* COMPUTE fmxb = %DENSITY(mxb) *%DENSITY donne la valeur de f(mxb)avec f la fonction de densité de la loi normale* COMPUTE fe6=fmxb*ae6, fe618=fmxb*ae618, $ fv=fmxb*av, fc=fmxb*ac, $ fagef=fmxb*(aagef+aa2*magef) DISP 'calcul des effets marginaux' DISPLAY 'enf 6' fe6 DISPLAY 'enf 618' fe618 DISPLAY 'agef' fagef DISPLAY 'revenu extérieur' fv DISPLAY 'chomage' fc COMPUTE ee6=fe6*me6, ee618=fe618*me618, $ ev=fv*mv, ec=fc*mc DISPLAY 'calcul des quasi-élasticités' DISPLAY 'enf 6' ee6 DISPLAY 'enf 618' ee618 DISPLAY 'revenu extérieur' ev DISPLAY 'chomage' ec DISPLAY ' Effets marginaux pour une probabilité initiale de 0.9 :' COMPUTE mxb = 1.29 *mxb = valeur lue dans la table de la fonction de répartition de la loi normale t=1.29 COMPUTE fmxb=%DENSITY(mxb) *calcul de la valeur de la fonction de densité pour une valeur de 1.29 COMPUTE fe6=fmxb*ae6, fe618=fmxb*ae618 , $ fagef=fmxb*(aagef+aa2*magef), $ fv=fmxb*av, fc=fmxb*ac DISPLAY 'enf 6' fe6 DISPLAY 'enf 618' fe618 DISPLAY 'agef' fagef DISPLAY 'revenu extérieur' fv DISPLAY 'chomage' fc DISPLAY ' Quasi-élasticité pour une probabilité initiale de 0.9 :' COMPUTE ee6=fe6*me6, ee618=fe618*me618, $ ev=fv*mv, ec=fc*mc DISPLAY 'enf 6' ee6 DISPLAY 'enf 618' ee618 DISPLAY 'revenu extérieur' ev DISPLAY 'chomage' ec DISPLAY 'QUESTION 4' SET lp = %IF(pp_lfp<0.5,0,1) *lp = prévision de la variable lfp *%IF évalue la condition exprimée entre parenthèses *si pp_lfp<0.5 alors lp=0, lp=1 sinon SET lp00 = %IF(lp==0.AND.lfp==0,1,0) *si lp=0 et lfp=0 alors l00=1, l00=0 sinon COMPUTE n00 = %SUM(lp00) *n00 = somme de lp00 sur l'ensemble de l'échantillon *mesure le nombre d'individus pourlesquels la valeur observée et prédite de LPF est égale à 0 SET lp11 = %IF(lp==1.AND.lfp==1,1,0) COMPUTE n11 = %SUM(lp11) *n11 = somme de l11 sur l'ensemble de l'échantillon *mesure le nombre d'individus pourlesquels la valeur observée et prédite de LPF est égale à 1 SET lp01 = %IF(lp==0.AND.lfp==1,1,0) COMPUTE n01 = %SUM(lp01) *n01 = somme de l01 sur l'ensemble de l'échantillon *mesure le nombre d'individus pourlesquels la valeur observée de LPF est égale à 1 et la valeur prédite à 0 SET lp10 = %IF(lp==1.AND.lfp==0,1,0) COMPUTE n10 = %SUM(lp10) *n10 = somme de lp10 sur l'ensemble de l'échantillon *mesure le nombre d'individus pourlesquels la valeur observée de LPF est égale à 0 et la valeur prédite à 1 DISPLAY 'individus dont LPF observé et estimé = 0' n00 DISPLAY 'individus dont LPF observé et estimé = 1' n11 DISPLAY 'individus dont LPF observé = 1 et estimé = 0' n01 DISPLAY 'individus dont LPF observé = 0 et estimé = 1' n10 COMPUTE nbp = %ncorrect *nbp = nombre de bonnes prévisions, c'est aussi égal à n00+n11 COMPUTE pbp = (%ncorrect/(%nobs*1.0))*100 *pbp = pourcentage de bonne prévision DISPLAY 'Pourcentage de bonne prévision=' pbp DISPLAY '*******************************************************' DISPLAY 'Problème n°3 : Estimation du salaire et de la fonction' DISPLAY "d'offre de travail" DISPLAY '*******************************************************' DISPLAY 'QUESTION 1' SMPL 1 nobst *définition de l'échantillon utilisé (on utilise toutes les observations) NONLIN sigmasq *définit un paramètre à estimer, sigmasq sera la valeur de la variance estimée de l'aléa LINREG w # CONSTANT agef a2 f *estimation avec les mco FRML(LASTREG,NAMES='b',ADDPARMS) frml1 *définit la formule à estimer en utilisant les régresseurs de la *dernière régression COMPUTE sigmasq=%SEESQ *on donne une valeur initiale à sigmasq elle est égale à variance estimée de l'aléa avec les mco FRML ftobit = (z=frml1(T)), $ %IF(w>0, $ -.5*LOG(sigmasq)-.5*(w-z)**2/sigmasq, $ LOG(%CDF((0-z)/SQRT(sigmasq)))) *écriture de la fonction de vraisemblance, si w est positif on a -.5*LOG(sigmasq)-.5*(w-z)**2/sigmasq *si w est égal à 0 on a LOG(%CDF((0-z)/SQRT(sigmasq)))- partie censurée des données MAXIMIZE(METHOD=BFGS) ftobit *utilise le maximum de vraisemblance pour estimer les paramètres du modèle COMPUTE xmeansigma = (b1+b2*magef+b3*ma2)/(sqrt(sigmasq)) COMPUTE cdfm = %CDF(xmeansigma) DISP 'effet marginal de la variable age lorsque f=0 et age=42' (b2+2*b3*magef)*cdfm COMPUTE xmeansigma = (b1+b2*20+b3*20*20)/(sqrt(sigmasq)) COMPUTE cdfm = %CDF(xmeansigma) DISP 'effet marginal de la variable age lorsque f=0 et age=20' (b2+2*b3*20)*cdfm DISPLAY 'QUESTION 2' SMPL PRBIT(NOPRINT) lfp # CONSTANT enf6 enf618 agef a2 f v chomage *estimation du modèle probit COMPUTE sigma = sqrt(%seesq) PRJ(scale=sigma,MILLS=lambda) *MILLs = rapport entre la fonction de densité et la fonction cumulative, scale pondère par l'écart-type *on peut retrouver la série lambda en procédant comme suit: *PRJ xb *SET lambda = %density(xb/sigma)/%CDF(xb/sigma) SMPL(SERIES=lfp) LINREG(noprint) l / resids # CONSTANT enf6 enf618 agef v w lambda *estimation de l'équation d'offre de travail compte tenu du mécanisme de sélection par les MCO LINREG(robusterrors) l / resids # CONSTANT enf6 enf618 agef v w lambda *calcul les écart-type des coefficients compte tenu de l'hétéroscédasticité STAT(NOPRINT) l COMPUTE ml = %mean STAT(NOPRINT) w COMPUTE mw = %mean disp 'élasticité par rapport au salaire au point moyen' %beta(6)*(mw/ml) STAT(NOPRINT) v COMPUTE mv = %mean COMPUTE alpham = mxb/sigma COMPUTE lambdam = %density(alpham)/%CDF(alpham) COMPUTE em = %beta(5)-bv*(%beta(7)/sigma)*lambdam*(lambdam + alpham) *calcul de l'effet marginal, il est différent du coefficient %beta(5) car la varibale v apparaît dans le modèle de sélection et dans *l'équation d'heure disp 'élasticité par rapport au revenu au point moyen' em*(mv/ml)