setwd(dir = "C:/Users/fkraus/Desktop/TD/2025-2026/ECONOMETRIE/séance3")
require(tidyverse)
require(readxl)
require(fixest)
require(urca)
require(quantreg)
data_schularick <- read_excel("C:/users/fkraus/Desktop/data_schularick.xlsx")
donnees <- data_schularick %>%
filter(country=="France")%>%
select(year, unemp, cpi) %>%
mutate(inflation = (log(cpi) - lag(log(cpi)))*100)%>%
mutate(dinflation = inflation - lag(inflation))%>%
mutate(dunemp = unemp - lag(unemp))%>%
na.omit()
En général, si vous regardez en ligne, les cours d’introduction à
l’économétrie avec R ne font pas utiliser la fonction
feols() pour faire des régressions linéaires en séries
temporelles, mais plutôt la fonction lm(). Bien que
lm() soit parfaitement fonctionnel, feols()
est bien plus tractable (on peut modifier beaucoup de choses plus
facilement). Notamment, si vous voulez présenter votre tableau de
régression qui ne contient pas une spécification mais plusieurs, on peut
utiliser ce code :
model_1 <- feols( dinflation ~ dunemp, data=donnees)
model_2 <- feols( dunemp ~ dinflation , data=donnees)
model_3 <- feols( dinflation ~ lag(dunemp) , data=donnees)
etable(model_1, model_2, model_3)
model_1 model_2 model_3
Dependent Var.: dinflation dunemp dinflation
Constant 0.1999 (0.4405) 0.0791 (0.1474) 0.1999 (0.4405)
dunemp -1.395*** (0.2591)
dinflation -0.1562*** (0.0290)
lag(dunemp) -1.395*** (0.2591)
_______________ __________________ ___________________ __________________
S.E. type IID IID IID
Observations 106 106 106
R2 0.21795 0.21795 0.21795
Adj. R2 0.21043 0.21043 0.21043
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Si vous voulez présenter les écarts-types associés aux coefficients
estimés en-dessous des coefficients (comme dans la plupart des
articles), c’est possible avec l’option se.below=T dans
etable. On peut également changer le nom des variables en créant un
dictionnaire dict qui remplace le nom des variables par ce
que vous voulez :
list_of_names <- c("dinflation"="Inflation",
"dunemp" = "Unemployment",
"lag(dunemp)" = "Unemployment(t-1)")
etable(model_1, model_2, model_3,
se.below=TRUE,
vcov="HC1", # pour
dict=list_of_names,
tex=FALSE # changer FALSE en TRUE pour donner le code LaTeX du tableau
)
model_1 model_2 model_3
Dependent Var.: Inflation Unemployment Inflation
Constant 0.1999 0.0791 0.1999
(0.4454) (0.1497) (0.4454)
Unemployment -1.395**
(0.5233)
Inflation -0.1562**
(0.0538)
Unemployment(t-1) -1.395**
(0.5233)
_________________ _________ ____________ _________
S.E. type Het.-rob. Hetero.-rob. Het.-rob.
Observations 106 106 106
R2 0.21795 0.21795 0.21795
Adj. R2 0.21043 0.21043 0.21043
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
La régression du type \(Y\sim X\) peut être faussée par le biais de causalité inverse : on cherche l’impact de \(X\) sur \(Y\), alors que \(Y\) impacte également \(X\). Un test souvent utilisé est le test de causalité de Granger qui peut être formulé comme ceci : la causalité désigne le fait qu’une variable va impacter la dynamique future d’une autre variable. Donc, si au lieu de tester cette equation de régression : \[\begin{equation} Y_t = a_0 + \beta X_t + \varepsilon_t \end{equation}\]
On peut éventuellement préférer celle-ci :
\[\begin{equation} Y_t = a_0 + \beta X_{t-1} + \varepsilon_t \end{equation}\]Ici, on cherche l’impact du retard de \(X\) sur \(Y\). Ainsi, impossible que \(Y\) ne puisse impacter une valeur passée de \(X\). Ce n’est souvent pas le meilleur test de causalité, mais ça peut être un test de robustesse à l’endogénéité assez facile.
regression_granger <- feols( dinflation ~ lag(dunemp), data=donnees)
etable(regression_granger)
regression_granger
Dependent Var.: dinflation
Constant 0.1999 (0.4405)
lag(dunemp) -1.395*** (0.2591)
_______________ __________________
S.E. type IID
Observations 106
R2 0.21795
Adj. R2 0.21043
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Ici, le fait de rajouter le délai ne change pas le résultat (ce qui
pouvait être attendu). ## 2SLS On peut chercher à déterminer l’impact de
\(X_t\) sur \(Y_t\). En revanche, on pose l’hypothèse
d’exogénéité de \(X_t\). Cependant,
dans certains cas on peut imaginer que \(Y_t\) influence \(X_t\), et l’estimation du \(\beta\) va être biaisée par cette boucle.
Par exemple, si on cherche à estimer l’impact de dunemp sur
dinflation, mais que dans le même temps l’inflation impacte
le chômage, cette estimation va être biaisée.
Un des moyens en séries temporelles (qui est loin d’être parfait) est de prendre en compte cette double relation, en retirant d’abord l’influence de \(Y_t\) sur \(X_t\) avant d’estimer l’impact de \(X_t\) sur \(Y_t\) en deux étapes. Pour retirer l’influence de \(Y_t\) sur \(X_t\), il suffit de faire une première régression où \(X_t\) est expliqué par \(Y_t\), et de prendre les résidus de cette régression que l’on considérera comme le comportement de \(X_t\) indépendant de \(Y_t\).
\[\begin{align} &X_t = a_0 + \beta Y_t + \varepsilon_t\\ &Y_t = \alpha_0 + \eta \varepsilon_t \ + \mu_t \end{align}\]Ici, la première régression mesure l’influence de \(Y_t\) sur \(X_t\), et on utilise les résidus de cette première étape \(\varepsilon_t\) comme notre “nouveau” \(X_t\) indépendant de l’influence de \(Y_t\) dans la deuxième régression.
first_step_2sls <- feols(dunemp ~ dinflation, data=donnees)
resid_first_step <- resid(first_step_2sls)
donnees_2sls <- donnees%>%
cbind(resid_first_step)
second_step_2sls <- feols(dinflation ~ resid_first_step, data=donnees_2sls)
etable(second_step_2sls)
second_step_2sls
Dependent Var.: dinflation
Constant 0.1145 (0.4978)
resid_first_step -3.8e-16 (0.3313)
________________ _________________
S.E. type IID
Observations 106
R2 0e-16
Adj. R2 -0.00962
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Et on verra un modèle assez ressemblant à celui-ci dans la partie sur le modèle à correction d’erreurs.
Plusieurs types de non-linéarités peuvent affecter la relation entre deux variables. La première (souvent la plus connue) est à la forme de la relation entre deux variables (par exemple, plus le chômage augmente, plus l’impact sur l’inflation est grand). On peut tester la non-linéarité dans ce cas en ajoutant un terme quadratique dans la régression :
\[\begin{equation} Y_t = a_0 + \beta_1 X_t + \beta_2 X_t^2 + \varepsilon_t \end{equation}\]
regression_nonlin <- feols(dinflation ~ dunemp + dunemp^2, data=donnees)
etable(regression_nonlin)
regression_nonlin
Dependent Var.: dinflation
Constant 0.3393 (0.4555)
dunemp -1.260*** (0.2830)
dunemp square -0.0511 (0.0436)
_______________ __________________
S.E. type IID
Observations 106
R2 0.22826
Adj. R2 0.21327
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Ici en l’occurence, il n’y a pas de relation quadratique entre inflation et chômage (le signe associé au terme quadratique n’est pas significatif).
Quand on fait une regression sur des données entre 1870 et 2020 (par exemple), on estimate l’impact moyen de \(X_t\) sur \(Y_t\) sur l’ensemble de la période. En revanche, cet impact peut ne pas être stable dans le temps. Par exemple, de nombreux auteurs qui se sont penchés sur la courbe de Phillips ont déterminé qu’elle existait jusqu’aux années 70-80 pour certains pays, mais que cette relation a disparu depuis. Donc mesurer l’influence du chômage sur l’inflation sur une période entre 1930 et 2020 reviendrait à mesurer cet impact lorsque l’influence était significative (et relativement forte potentiellement) et lorsqu’elle ne l’était pas, et avoir un coefficient moyen potentiellement non-significatif. Pour éviter ce problème, on peut mener une régression sur des sous-périodes séparées, par exemple avant/après une date :
range(donnees$year)
[1] 1896 2020
reg_temp1 <- feols(dinflation ~ dunemp,
data=donnees %>% filter(year < 1986) )
reg_temp2 <- feols(dinflation ~ dunemp,
data=donnees %>% filter(year >= 1986) )
etable(reg_temp1, reg_temp2)
reg_temp1 reg_temp2
Dependent Var.: dinflation dinflation
Constant 0.4237 (0.6538) -0.1814 (0.1464)
dunemp -1.460*** (0.3245) -0.5153* (0.2030)
_______________ __________________ _________________
S.E. type IID IID
Observations 71 35
R2 0.22684 0.16335
Adj. R2 0.21564 0.13800
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Ici dans tous les cas on ne peut pas interpréter les résultats par manque d’observations. En revanche, le coefficient associé au chômage est plus fort sur la première sous-période (2 à 3 fois plus fort) que sur la période plus récente.
On peut également répéter cette opération en créant un nombre très
important de sous-périodes qui se superposent, pour mener ce que l’on
appelle des régressions roulantes. On peut le faire
avec le package rollRegres sur R (https://github.com/boennecd/rollRegres).
L’interaction entre deux variables dans une régression permet de connaître l’impact supplémentaire d’une variable sur \(Y_t\) lorsqu’une troisième variable augmente également. L’utilisation d’une dummy peut permettre notamment de tester des canaux de transmission. \[\begin{equation} Y_t = a_0 + \beta_1 X_t + \beta D + \beta_1 X_t * \beta D + \varepsilon \end{equation}\]
crises <- c(2007, 2008, 2009, 1970, 1971, 1977, 1980, 1993)
donnees2 <- donnees %>%
mutate(dummy_crisis = ifelse(year %in% crises, 1, 0 ))
donnees2
NA
regression_interaction_dummy <- feols(dinflation ~ dummy_crisis * dunemp, data=donnees2)
etable(regression_interaction_dummy)
regression_inter..
Dependent Var.: dinflation
Constant 0.1779 (0.4622)
dummy_crisis 0.1539 (1.827)
dunemp -1.404*** (0.2638)
dummy_crisis x dunemp 0.4304 (2.141)
_____________________ __________________
S.E. type IID
Observations 106
R2 0.21850
Adj. R2 0.19551
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Ici, le coefficient dummy_crisis représente l’impact de
la dummy lorsqu’elle est égale à 1. Lorsqu’elle est seule (donc sans
l’interaction), elle représente la variation du niveau de la variable
dépendente (ici, l’inflation) pendant les périodes de crises. Ici,
dummy_crisis n’est pas significatif, donc l’inflation ne
tend pas à augmenter pendant les crises.
L’interaction entre dummy_crisis et dunemp
mesure l’impact supplémentaire de dunemp pendant les crises.
Ici en l’occurence ce n’est pas significatif, mais si on imagine que
tous les coefficients de la régression sont significatifs, on pourrait
interpréter le tout de la façon suivante : Le niveau de chômage a un
impact négatif sur l’inflation : une augmentation d’une unité du chômage
crée une diminution de 0.7255 unités de l’inflation. Cet impact est
d’autant plus fort pendant les crises, où l’augmentation d’une unité du
chômage crée une variation de (-0.7255) + (-0.2477) = -0.9732 unités de
l’inflation. Note : On peut imaginer le coefficient
dunemp (sans l’interaction avec la dummy) comme l’impact du
chômage sur l’inflation lorsque dummy_crisis est égale à 0,
donc pendant les périodes “normales”.
Les variables dummy sont très utilisées dans les régressions, que ce soit en régression temporelle ou (encore plus) en panel. Pour plus de détails : https://www.jamelsaadaoui.com/understanding-binary-interaction-terms/
On peut imaginer que la relation entre deux variables n’est pas linéaire, mais parce que cette relation n’existe pas en dessous (ou au-dessus) d’un certain seuil (threshold). Par exemple, Reinhart & Rogoff (2010) montrent qu’au delà de 90% de dette (en rapport au PIB), l’augmentation de la dette crée une diminution de la croissance du PIB. On peut tester ce genre de seuil avec une équation du type : \[\begin{equation} Y_t = a_0 + \beta_1 X_t . I(X_t < \gamma)+\beta_2 X_t . I(X_t > \gamma)+\varepsilon_t \end{equation}\] De manière littérale, on teste l’impact de \(X_t\) sur \(Y_t\) lorsque \(X_t\) est en-dessous du seuil (capturé par \(\beta_1\)) et lorsque \(X_t\) est au-dessus du seuil (capturé par \(\beta_2\)).
Plusieurs notes : (1) Le symbole I() indique que c’est une fonction indicatrice. (2) On peut également changer la variable du seuil pour qu’elle ne corresponde pas forcément à la variable \(X_t\). Par exemple, on peut essayer de voir l’impact des flux de capitaux sur le PIB lorsque l’ouverture financière est haute et lorsqu’elle est faible. Dans l’ensemble, c’est un bon moyen de tester un mécanisme de transmission.
Le seuil, dénoté par \(\gamma\), peut être fixé arbitrairement (par exemple, tester quand \(X_t\) est en dessous de 90, et au dessus de 90, sans réelle justification à part “c’est un chiffre rond”). Certaines méthodes (notamment en panel) permettent de déterminer ce seuil de manière endogène (voir Hansen, 1999, https://users.ssc.wisc.edu/~bhansen/papers/joe_99.pdf).
Ici, on peut le fixer arbitrairement :
median(donnees$dunemp)
[1] 0
50% des observations de dunemp sont au-dessus de 0.1, et
50% sont en-dessous. On peut utiliser ce seuil (qui est arbitraire : il
n’est basé sur aucun test statistique formel qui nous dirait d’utiliser
ce seuil).
donnees_threshold <- donnees %>%
mutate(gamma = ifelse(dunemp >= 0.1, 1,0 )) # gamma prend la valeur 1 si on est au dessus du seuil, et 0 si on est en dessous
threshold_reg <- feols(dinflation ~ dunemp:i(gamma), data=donnees_threshold)
etable(threshold_reg)
threshold_reg
Dependent Var.: dinflation
Constant 0.3977 (0.5218)
dunemp x gamma = 0 -1.116* (0.4700)
dunemp x gamma = 1 -1.567*** (0.3553)
__________________ __________________
S.E. type IID
Observations 106
R2 0.22178
Adj. R2 0.20667
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Il faut cependant noter qu’on n’a pas suffisamment de données ici, car pour rappel il faut au moins 60 observations pour faire une régression, notre sample en contient 71 et on divise ce sample en deux (en dessous du seuil / au-dessus du seuil), donc il y a un problème de taille de sample. Le code fonctionne en revanche
Ici, on voit que l’impact du chômage sur l’inflation est supérieur (en valeur absolue) lorsque le niveau de chômage est important (\(gamma=1\)). Il y a donc potentiellement un effet de seuil.
Un autre moyen de fixer un seuil est d’utiliser les quantiles. Pour bien comprendre, lorsqu’on estime la regression où \(Y_t\) est expliqué par \(X_t\), on estime en fait l’impact de l’ensemble des chocs de \(X_t\) (l’ensemble de la distribution statistique de \(X_t\)) sur l’ensemble des chocs de \(Y_t\).
En revanche, on peut imaginer des variables qui ne réagissent qu’à certains chocs, notamment très négatifs ou très positif (qui sont rares mais de forte amplitude), mais qui ne réagissent pas aux chocs “normaux”, qui sont fréquents mais de faible amplitude. On peut donc décomposer \(X_t\) en quantiles pour regarder l’impact de différents quantiles en suivant la même méthode avec les seuils :
\[\begin{align*} Y_t = a_0 + &\beta_1 X_t . I(X_t \le Q(X_t, 0.1)) + \\ &\beta_2 X_t . I(X_t \ge Q(X_t, 0.9))+ \\ &\beta_3 X_t +\varepsilon_t \end{align*}\]
Ici, \(\beta_1\) va mesurer l’impact de \(X_t\) sur \(Y_t\) lorsque \(X_t\) est dans sa queue de distribution gauche, c’est-à-dire pendant les chocs extrêmement négatifs (en général, ça représente les périodes de crises de \(X_t\)). \(\beta_2\) capture l’impact des chocs extrêmement positifs de \(X_t\) (pendant les périodes de boom - ou de surréaction positive - parfois associé à de la spéculation) sur \(Y_t\). Enfin, \(\beta_3\) capture l’effet de \(X_t\) sur \(Y_t\) dans les autres périodes, donc les périodes “normales”.
donnees_quantiles <- donnees %>%
mutate(extr_neg = ifelse(dunemp <= quantile(dunemp, 0.1), 1, 0 ))%>% # dummy prend valeur 1 pendant périodes extrêmement négatives de dunemp
mutate(extr_pos = ifelse(dunemp >= quantile(dunemp, 0.9), 1, 0)) # dummy prend valeur 1 pendant périodes extrêmement positives de dunemp
reg_quantile_x <- feols(dinflation ~ dunemp + dunemp : extr_neg + dunemp : extr_pos, data=donnees_quantiles)
etable(reg_quantile_x)
reg_quantile_x
Dependent Var.: dinflation
Constant 0.2509 (0.4773)
dunemp -1.112 (1.055)
dunemp x extr_neg -0.1787 (1.159)
dunemp x extr_pos -0.3754 (1.107)
_________________ _______________
S.E. type IID
Observations 106
R2 0.21939
Adj. R2 0.19643
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Ici, on peut voir un effet différencié en fonction des queues de distribution : lorsque le chômage est extrêmement bas, il semble y avoir un effet positif sur l’inflation : l’augmentation du chômage créé une augmentation de l’inflation. En revanche, lorsque le chômage est extrêmement haut (vis-à-vis de sa distribution historique), l’effet est négatif comme attendu théoriquement.
D’autres spécifications sont totalement possibles avec des quantiles. Notamment, plutôt que de regarder l’impact de la distribution de \(X_t\), on peut regarder l’impact de la distribution de \(Y_t\) afin de regarder si les chocs de \(X_t\) tendant à être plus ou moins transmis pendant les périodes extrêmes de \(Y_t\)
\[\begin{equation} Q_y(\tau|Y_t) = a_0(\tau) + \beta (\tau) X_t + \varepsilon(\tau) \end{equation}\] Ici, \(Q_y(\tau|Y_t)\) représente \(Y_t\) conditionnel, c’est-à-dire évalué au quantile \(\tau\) de sa distribution. Pour chaque quantile, on obtient une constante, un coefficient et un résidu différent.
require(quantreg)
quantiles <- seq(0.1, 0.9, 0.1)
reg_quantile_y <- rq(dinflation ~ dunemp, tau=quantiles, data=donnees)
summary(reg_quantile_y)
Avis : Solution may be nonunique
Call: rq(formula = dinflation ~ dunemp, tau = quantiles, data = donnees)
tau: [1] 0.1
Coefficients:
coefficients lower bd upper bd
(Intercept) -3.72484 -6.62940 -2.70362
dunemp -2.29296 -2.31370 -0.17876
Call: rq(formula = dinflation ~ dunemp, tau = quantiles, data = donnees)
tau: [1] 0.2
Coefficients:
coefficients lower bd upper bd
(Intercept) -1.35490 -2.69986 -0.98783
dunemp -0.81802 -2.47349 -0.48221
Call: rq(formula = dinflation ~ dunemp, tau = quantiles, data = donnees)
tau: [1] 0.3
Coefficients:
coefficients lower bd upper bd
(Intercept) -0.78547 -1.06166 -0.57855
dunemp -0.94456 -2.20945 -0.54888
Call: rq(formula = dinflation ~ dunemp, tau = quantiles, data = donnees)
tau: [1] 0.4
Coefficients:
coefficients lower bd upper bd
(Intercept) -0.36674 -0.62836 -0.10303
dunemp -0.79220 -1.35244 -0.43216
Call: rq(formula = dinflation ~ dunemp, tau = quantiles, data = donnees)
tau: [1] 0.5
Coefficients:
coefficients lower bd upper bd
(Intercept) -0.06707 -0.35730 0.23943
dunemp -0.67671 -1.68154 -0.15663
Call: rq(formula = dinflation ~ dunemp, tau = quantiles, data = donnees)
tau: [1] 0.6
Coefficients:
coefficients lower bd upper bd
(Intercept) 0.34557 -0.02033 0.61629
dunemp -0.67888 -1.82634 -0.47319
Call: rq(formula = dinflation ~ dunemp, tau = quantiles, data = donnees)
tau: [1] 0.7
Coefficients:
coefficients lower bd upper bd
(Intercept) 0.71258 0.47515 1.40805
dunemp -0.83156 -1.69952 -0.31971
Call: rq(formula = dinflation ~ dunemp, tau = quantiles, data = donnees)
tau: [1] 0.8
Coefficients:
coefficients lower bd upper bd
(Intercept) 1.83801 1.16983 2.76389
dunemp -1.15614 -2.47848 -0.71549
Call: rq(formula = dinflation ~ dunemp, tau = quantiles, data = donnees)
tau: [1] 0.9
Coefficients:
coefficients lower bd upper bd
(Intercept) 4.12544 2.44530 6.84329
dunemp -1.96450 -2.25185 -1.03988
Le plus intéressant est de regarder l’évolution des coefficients dans les quantiles
summary(reg_quantile_y) %>% plot(ols=F)
Avis : Solution may be nonunique
Le graphique représente l’évolution des coefficients en fonction des quantiles de \(Y_t\).
Une dernière spécification, plus récente mais dans l’esprit, est celle des Quantiles-on-Quantiles (QoQ). On regarde alors l’effet différencié des quantiles de \(X_t\) sur les quantiles de \(Y_t\). Ici, on va évaluer la relation entre les périodes normales, extrêmement négatives, et extrêmement négatives de \(Y_t\) et les périodes normales et extrêmes (négatives et positives) de \(X_t\). Basiquement, il suffit de combiner les deux modèles de régression du dessus.
quantiles <- c(0.1, 0.5, 0.9)
donnees_quantiles <- donnees %>%
mutate(extr_neg = ifelse(dunemp <= quantile(dunemp, 0.1), 1, 0 ))%>%
mutate(extr_pos = ifelse(dunemp >= quantile(dunemp, 0.9), 1, 0))
reg_QoQ <- rq(dinflation ~ dunemp + dunemp : extr_neg + dunemp : extr_pos, tau=quantiles, data=donnees_quantiles)
summary(reg_QoQ)
Call: rq(formula = dinflation ~ dunemp + dunemp:extr_neg + dunemp:extr_pos,
tau = quantiles, data = donnees_quantiles)
tau: [1] 0.1
Coefficients:
coefficients lower bd upper bd
(Intercept) -3.22362 -5.65012 -2.51692
dunemp -3.00899 -5.31045 -2.32968
dunemp:extr_neg 3.16969 2.52826 5.26962
dunemp:extr_pos 0.63421 -0.04322 3.11345
Call: rq(formula = dinflation ~ dunemp + dunemp:extr_neg + dunemp:extr_pos,
tau = quantiles, data = donnees_quantiles)
tau: [1] 0.5
Coefficients:
coefficients lower bd upper bd
(Intercept) -0.08376 -0.24320 0.09242
dunemp -0.11966 -0.59039 0.11279
dunemp:extr_neg -0.72944 -3.49596 -0.09094
dunemp:extr_pos -0.84793 -1.25915 -0.07873
Call: rq(formula = dinflation ~ dunemp + dunemp:extr_neg + dunemp:extr_pos,
tau = quantiles, data = donnees_quantiles)
tau: [1] 0.9
Coefficients:
coefficients lower bd upper bd
(Intercept) 1.96315 1.63771 5.40208
dunemp 0.08488 -1.72088 2.09598
dunemp:extr_neg -5.04901 -6.84828 -1.43640
dunemp:extr_pos -0.94551 -3.03266 0.49142
summary(reg_QoQ)%>%plot(ols=F)
Et l’interprétation des coefficients est un peu plus fine et précise ici. On essaye de connaître les effets différenciés des différents régimes de \(X_t\) sur les différents régimes de \(Y_t\).
A noter qu’il est important, quand on fait des régression en quantiles, de tester si les coefficients diffèrent réellement au niveau de différents quantiles. Pour cela, on utilise des tests de Wald.