Vous êtes sur la page 1sur 14

Exercice2

2) Les nuages de points de Gini

#histogramme avec méthode de Sturges

hist(donnees_ex2$Gini, main = "Sturges", ylab = "Frequence")

#histogramme avec méthode de FD

hist(donnees_ex2$Gini, breaks = "FD", main = "FD", ylab = "Frequence")

(a) Commentons la différence entre les deux histogrammes obtenus. A donner pour
chacun

Le nombre d’intervalle n’est pas le même pour les deux histogrammes sur l’axe des
ordonnées mais identique sur les abscisses, il est choisi par le logiciel utilisé.

La différence entre les deux histogrammes provient seulement du choix de l’origine, celui du
gauche ayant pour origine sur l’axe des abscisses la valeur 0 tandis que celui de la droite
utilise comme point de départ la valeur sensiblement égale à 0.2.

(b) A quelle lois de distribution renvoient les deux histogrammes obtenus :

La distribution est leptokurtique, elle est plus pointue et possède des extrémités plus épaisses
que la loi normale.
Les probabilités aux extrêmes et au centre sont plus grandes que la loi normale.

Réponse 3 :

#estimation de la densité de écart de pauvreté avec une fonction noyau gaussienne

den = density(donnees_ex2$EcartPauvrete)

plot(den, main = "noyau gaussien", ylab = "Densite")

Cette estimation est lissée.

#estimation de la densité de écart de pauvreté avec une fonction noyau epanechnikov

den = density(donnees_ex2$EcartPauvrete, kernel = "epanechnikov")

plot(den, main = "noyau epanechnikov", ylab = "Densite")

Elle est lissée


#estimation de la densité de écart de pauvreté avec une fonction noyau rectangulaire

den = density(donnees_ex2$EcartPauvrete, kernel = "rectangular")

plot(den, main = "noyau rectangulaire", ylab = "Densite")

Elle est moins lissée.

Réponse 4

den = density(donnees_ex2$Gini, bw="bcv", kernel = 'gaussian')

plot(den, ylab = "Densité", main = "fen = validation croisee")

C’est une distribution normale avec une fenêtre de 0.04935.

Réponse 5 :

Réponse 5a
########Estimons le modèle non paramétrique ######

model_npr <- npreg(CroissancePIB~Gini, data = donnees_ex2)

Réponse 5b :

Comparons le modèle non paramétrique avec le modèle paramétrique :

Estimons d’abord le modèle paramétrique :

model_pr <- lm(CroissancePIB~Gini, data = donnees_ex2)

D’après le calcul des EQM pour les deux modèles, on voit que l’erreur quadratique moyenne
pour le modèle non paramétrique est de 26.4008 et celle du modèle paramétrique vaut
26.42292. L’EQM du modèle paramétrique est légèrement supérieure à celle du modèle non
paramétrique. La différence entre les deux est suffisamment petite. Dans les modèles
paramétriques, on connait la distribution et du coup, on applique les hypothèses classiques
alors que dans les modèles non paramétriques, il faut répéter plusieurs fois la différence entre
l’EQM du modèle paramétrique et celle du modèle non paramétrique (t) pour obtenir une
distribution.

Les commandes sont :

Pour calculer eqm du modèle non paramétrique

eqm_npr <- model_npr$MSE

eqm_npr

Pour calculer eqm du modèle paramétrique

eqm_pr <- mean(residuals(model_pr)^2)

eqm_pr

Réponse 5c :

Ces deux types d’estimations aboutissent à des conclusions similaires sur la relation entre le
niveau d’inégalité et le taux de croissance économique à travers le monde.

Aux valeurs de croissance trop faible, il y a de relation forte entre la croissance et l'inégalité.
La courbe de Kuznets (une forme U inversée) semble être présente pour les pays avec un taux
positif de croissance du PIB positive pas trop élevé. Il y a aussi des valeurs aberrantes de
croissance du PIB.

Exercice 3 :

Premeire etape :

#telecharcher la bibliotheque

library(np)

library(haven)

library(tidyverse)

#specifier le repertoire de travail où la base de données est sauvegardée

setwd("D:/M2 micro/Économétrie non paramétrée/dossier")

#telecharger les donnees utilisees dans cet exercice

donnees_ex3 <- read.csv("enquete_emploi.csv")

deuxième étape :

reponse 1 :

###### estimons le modèle paramétrique ######

model_pr <- lm(y~x, data = donnees_ex3)

#imprimer les résultats

print(summary(model_pr), signif.stars = FALSE, digits =2)

Les sorties sont données par le logiciel R :

Call:

lm(formula = y ~ x, data = donnees_ex3)


Residuals:

Min 1Q Median 3Q Max

-89 -44 -20 19 337

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 96.72 4.63 20.9 <2e-16

x 0.55 0.21 2.6 0.01

Residual standard error: 66 on 524 degrees of freedom

Multiple R-squared: 0.013, Adjusted R-squared: 0.011

F-statistic: 6.8 on 1 and 524 DF, p-value: 0.0096

#calculons EQM

eqm_pr <- mean(residuals(model_pr)^2)

eqm_pr

L’erreur quadratique moyenne est de 4354.375 pour le modèle paramétrique.

Réponse 2 :

#####Estimons le modèle non paramétrique ######

model_npr <- npreg(y~x, data = donnees_ex3)

#calculer EQM pour le modèle non paramétrique

eqm_npr <- model_npr$MSE

eqm_npr

L’erreur quadratique moyenne correspondant à l’estimation non parametrique est de 3927.36.


Réponse 3 :

Calculons la difference tˆ = EQMp(θˆ) - EQMnp(rˆ) = 427.015.

Réponse 4 :

4. Utilisons les fonctions sim ml, calcT tilde et ’replicate’ vues en classe pour :

(a) Simulons des données fictives ´ (x1′ , y1′ ), (x2′ , y2′ ), , (xn′ , y′ n) avec les paramètres `
αˆ et βˆ obtenus à la question 1.

(b) Obtenir une estimation θ˜ et EQMp(θ˜) en estimant le modèle paramétrique ´


avec données simulées

(c) Obtenir une estimation r˜ et EQMnp(r˜) en estimant le modèle non paramétrique ´


avec données simulées

(d) Calculons la différence ´ T˜ = EQMp(θ) - EQMnp(r˜)

(e) Répétons les étapes (a)-(d) ci-dessus 50 fois pour obtenir une distribution ´
de T˜.

Les conmandes qui nous permettent de faire cela sont les suivantes :

##Creer une fonction pour simuler des donnees avec le modèle paramétrique obtenu

##Inputs de la fonction: (1) modele paramétrique estimé, (2) variable explicative

##Outputs de la fonction: Table de données simulées

sim_ml <- function(model_lin, table_x){

n <- length(table_x)

table_sim <- data.frame(x = table_x)


#ajouter une colonne pour la variable dépendante

sigma <- summary(model_lin)$sigma*(n-2)/n

y_sim <- predict(model_lin, newdata = table_sim)

y_sim <- y_sim + rnorm(n, 0, sigma) #ajouter une erreur

#combiner la variable dépendante simulée et la variable explicative

table_sim <- data.frame(table_sim, y = y_sim)

#retourner la table combinée

return(table_sim)

#Creer une fonction pour calculer la différence entre les EQM des modele paramétriques et
non paramétrique

#Inputs de la fonction: une table de données

#Outputs de la fonction: Différence entre EQMs

# créer la fonction

calc_T_tilde <- function(donnees){

#estimer le modele linéaire, extraire les erreurs et calculer EQM

EQM_p <- mean((lm(y~x, data = donnees)$residuals)^2)

#estimer le modele non parametrique, extraire les erreurs et calculer EQM


EQM_np_fen <- npregbw(y~x, data = donnees)

EQM_np <- npreg(EQM_np_fen)$MSE

#Retourner la différence entre les résultats

return(EQM_p - EQM_np )

#Utiliser les fonctions ci-dessus pour répéter l'estimation et obtenir

#une distribution de la différence des EQMs

nbr_rep = 50

set.seed(123)

list_T_tilde <- replicate(nbr_rep, calc_T_tilde(sim_ml(model_pr, donnees_ex3$x)))

(f) Montrons un graphique de l’histogramme de T

Cette commande permet d’ajouter des droites sur l’histogramme de T :


5. Calculons la valeur p :

p= 0.01960784

Exercice 1 :

2) Réponse 2

#visualiser le nuage de points

plot(x = donnees_ex1$education, y = donnees_ex1$y,

main = "education et le salaire", ylab = "y", xlab = "education")

La relation est-elle linéaire ? à répondre :


3) Réponse 3

#visualiser le nuage de points

plot(x = donnees_ex1$education, y = donnees_ex1$y,

main = "education et le salaire", ylab = "y", xlab = "education")

La relation est-elle linéaire ? À répondre

Réponse 4

Estimons la relation non paramétrique suivante avec la méthode de la moyenne ´


locale ou vous choisissez le paramètre d’étendue ´ s par la validation croisée.

# Estimation de la relation par la moyenne locale

moy_loc <- supsmu(x = donnees_ex1$education, y = donnees_ex1$y, span = "cv)

Réponse 5

visualiser le résultat de l'estimation par la moyenne locale

plot(moy_loc$x, moy_loc$y, main = "Moyenne Locale", ylab = "niveau de salaire", xlab =


"niveau education", )
Réponse 6

#utiliser la fonction ksmooth pour l'estimation par la régression du noyau

reg_noy <- ksmooth(x = donnees_ex1$x, y = donnees_ex1$y,

kernel = "normal",

bandwidth = 0.5)

Réponse 7

#visualiser le résultat de l'estimation par la régression du noyau

plot(reg_noy$x, reg_noy$y, main = "Régression du noyau", ylab = "niveau de salaire", xlab =


"niveau expérience")
Réponse 8

Utilisons l'option 'loess' pour estimer la relation par la régression locale

reg_loc <- ggplot(data = donnees_ex1,

aes(x=x, y=y)) +

geom_point() +

geom_smooth(method = "loess", na.rm = TRUE, span = 0.5) +

labs(y = "niveau de salaire", x = "niveau expérience", title = "Régression Locale")

Réponse 9

#visualiser les resultats de l'estimation de la regression locale

reg_loc

Réponse 10

#utiliser la fonction ksmooth pour l'estimation par la regression du noyau avec le kernel
rectangulaire

reg_noy2 <- ksmooth(x = donnees_ex1$x, y = donnees_ex1$y,

kernel = "box",

bandwidth = 0.5)
Réponse 11

#visualiser le résultat de l'estimation par la régression du noyau

plot(reg_noy2$x, reg_noy2$y, main = "Régression du noyau", xlab = "niveau expérience",


ylab = "niveau salaire")

Conclusion : (conclusion à donner entre les variables education, experience et salaire)

Au nombre d'années de l'éducation trop fort, il y a une relation forte entre les niveaux de
salaire et d'expérience.

La courbe de Kuznets semble être présente pour les individus avec un taux positif de salaire.

Vous aimerez peut-être aussi