Produit intérieur brut (PIB) et ses composantes

Data - Insee

Info

source dataset .html .RData
insee CNA-2020-PIB 2025-08-26 2025-05-28

Informations

  • Base = un ensemble fixé de concepts, nomenclatures, et méthodes. (dans le vocabulaire de la Comptabilité Nationale Française (CNF))

  • Création de la CNF dans les années 1950.

  • Changements de base: 1956, 1959, 1962, 1971, 1980, 1995, 2000, 2005, 2010, 2014

  • Les comptes de la nation en 2022. html

Données sur la macroéconomie en France

source dataset .html .RData
bdf CFT 2025-08-28 2025-03-09
insee CNA-2014-CONSO-SI 2025-08-28 2025-08-28
insee CNA-2014-CSI 2025-08-28 2025-08-28
insee CNA-2014-FBCF-BRANCHE 2025-08-28 2025-08-28
insee CNA-2014-FBCF-SI 2025-08-28 2025-08-28
insee CNA-2014-RDB 2025-08-28 2025-08-28
insee CNA-2020-CONSO-MEN 2025-08-28 2024-09-12
insee CNA-2020-PIB 2025-08-26 2025-05-28
insee CNT-2014-CB 2025-08-26 2025-08-28
insee CNT-2014-CSI 2025-08-26 2025-08-28
insee CNT-2014-OPERATIONS 2025-08-26 2025-08-28
insee CNT-2014-PIB-EQB-RF 2025-08-26 2025-08-28
insee CONSO-MENAGES-2020 2025-08-26 2025-08-28
insee conso-mensuelle 2025-08-26 2023-07-04
insee ICA-2015-IND-CONS 2025-08-26 2025-08-28
insee t_1101 2025-08-26 2022-01-02
insee t_1102 2025-08-26 2020-10-30
insee t_1105 2025-08-26 2020-10-30

Données sur l’inflation en France

source dataset .html .RData
insee bdf2017 2025-08-28 2023-11-21
insee echantillon-agglomerations-IPC-2024 2025-08-26 2025-04-02
insee ILC-ILAT-ICC 2025-08-26 2025-08-28
insee INDICES_LOYERS 2025-08-26 2025-08-28
insee IPC-1970-1980 2025-08-26 2025-08-28
insee IPC-1990 2025-08-26 2025-08-28
insee IPC-2015 2025-08-26 2025-08-28
insee IPC-PM-2015 2025-08-26 2025-08-28
insee IPCH-2015 2025-08-26 2025-08-28
insee IPCH-IPC-2015-ensemble 2025-08-26 2025-08-26
insee IPGD-2015 2025-08-26 2025-05-24
insee IPLA-IPLNA-2015 2025-08-26 2025-08-28
insee IPPI-2015 2025-08-26 2025-08-28
insee IRL 2025-08-26 2025-08-28
insee liste-varietes-IPC-2024 2025-08-26 2025-04-02
insee ponderations-elementaires-IPC-2024 2025-08-26 2025-04-02
insee SERIES_LOYERS 2025-08-26 2025-08-28
insee T_CONSO_EFF_FONCTION 2025-08-26 2024-07-18

LAST_UPDATE

Code
`CNA-2020-PIB` %>%
  group_by(LAST_UPDATE) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()
LAST_UPDATE Nobs
2025-05-28 1580

LAST_COMPILE

LAST_COMPILE
2025-08-28

Dernière

Code
`CNA-2020-PIB` %>%
  filter(TIME_PERIOD == max(TIME_PERIOD)) %>%
  select(TIME_PERIOD, TITLE_FR, OBS_VALUE) %>%
  print_table_conditional()
TIME_PERIOD TITLE_FR OBS_VALUE
2024 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Sociétés et E.I. financières - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.085
2024 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume -0.246
2024 Comptes nationaux annuels base 2020 - Dépense de consommation finale - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.929
2024 Comptes nationaux annuels base 2020 - Acquisitions moins cessions d'objets de valeur - Total des secteurs institutionnels - Total des produits (nouvelle nomencl.) - Contribution à l'évolution du produit intérieur brut en volume -0.001
2024 Comptes nationaux annuels base 2020 - Dépense de consommation finale - Instituts sans but lucratif au service des ménages - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.037
2024 Comptes nationaux annuels base 2020 - Produit intérieur brut par habitant - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Prix courant 42594.159
2024 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Sociétés et E.I. non financières - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume -0.265
2024 Comptes nationaux annuels base 2020 - Dépense de consommation finale - APU Administrations publiques - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.348
2024 Comptes nationaux annuels base 2020 - Produit intérieur brut - Evolution en volume - Prix chaîné année de base (non équilibré) 1.190
2024 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Ménages hors entrepreneurs individuels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume -0.278
2024 Comptes nationaux annuels base 2020 - Produit intérieur brut approche produit - Total des secteurs institutionnels - Total des produits - Prix chaîné année de base (non équilibré) 2612510.000
2024 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Instituts sans but lucratif au service des ménages - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.008
2024 Comptes nationaux annuels base 2020 - Importations de biens et de services - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.438
2024 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - APU Administrations publiques - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.204
2024 Comptes nationaux annuels base 2020 - Solde des échanges extérieurs de biens et services - Total des sect. institutionnels - Total des produits (nouvelle nomencl.) - Contribution à l'évolution du produit intérieur brut en volume 1.308
2024 Comptes nationaux annuels base 2020 - Produit intérieur brut approche produit - Total des secteurs institutionnels - Total des produits - Prix courant 2919900.000
2024 Comptes nationaux annuels base 2020 - Variation des stocks - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume -0.799
2024 Comptes nationaux annuels base 2020 - Produit intérieur brut approche produit - Total des secteurs institutionnels - Total des produits - Indice de prix chaîné année de base (non équilibré) 111.800
2024 Comptes nationaux annuels base 2020 - Produit intérieur brut par habitant - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Prix chaîné année de base (non équilibré) 38110.094
2024 Comptes nationaux annuels base 2020 - Dépense de consommation finale - Ménages hors entrepreneurs individuels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.544
2024 Comptes nationaux annuels base 2020 - Exportations de biens et de services - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.870

INDICATEUR

Code
`CNA-2020-PIB` %>%
  left_join(INDICATEUR,  by = "INDICATEUR") %>%
  group_by(INDICATEUR, Indicateur) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
INDICATEUR Indicateur Nobs
CNA_P51G P51G - Formation brute de capital fixe 450
CNA_PIB PIB - Produit intérieur brut 303
CNA_P3 P3 - Dépense de consommation finale 300
CNA_PIB_H Produit intérieur brut par habitant 152
CNA_B11 B11 - Solde extérieur des biens et services 75
CNA_P52 P52 - Variation de stocks 75
CNA_P53 P53 - Acquisitions moins cession d'objets de valeur 75
CNA_P6 P6 - Exportations de biens et services 75
CNA_P7 P7 - Importations de biens et services 75

OPERATION

Code
`CNA-2020-PIB` %>%
  left_join(OPERATION,  by = "OPERATION") %>%
  group_by(OPERATION, Operation) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
OPERATION Operation Nobs
P51G P51G - Formation brute de capital fixe 450
PIB PIB - Produit intérieur brut 303
P3 P3 - Dépense de consommation finale 300
PIB_H Produit intérieur brut par habitant 152
B11 B11 - Solde extérieur des biens et services 75
P52 P52 - Variation de stocks 75
P53 P53 - Acquisitions moins cession d'objets de valeur 75
P6 P6 - Exportations de biens et services 75
P7 P7 - Importations de biens et services 75

SECT-INST

Code
`CNA-2020-PIB` %>%
  left_join(`SECT-INST`, by = "SECT-INST") %>%
  group_by(`SECT-INST`, `Sect-Inst`) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
SECT-INST Sect-Inst Nobs
S0 S0 - Ensemble des secteurs institutionnels 980
S13 S13 - Administrations publiques (APU) 150
S14B S14B - Ménages hors entrepreneurs individuels 150
S15 S15 - Institutions sans but lucratif au service des ménages 150
S11ES14AA S11ES14AA - Sociétés et entreprises individuelles non financières 75
S12ES14AF S12ES14AF - Sociétés et entreprises individuelles financières 75

NATURE

Code
`CNA-2020-PIB` %>%
  left_join(NATURE,  by = "NATURE") %>%
  group_by(NATURE, Nature) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
NATURE Nature Nobs
PROPORTION_POURCENTAGE Proportion en % 1200
VALEUR_ABSOLUE Valeur absolue 304
INDICE Indice 76

UNIT_MEASURE

Code
`CNA-2020-PIB` %>%
  group_by(UNIT_MEASURE) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional
UNIT_MEASURE Nobs
EUR2020 76
EUROS_COURANTS 76
EUROS_HABITANTS 152
POURCENT 75
SO 1201

Structure

IDBANK = OPERATION, NATURE, SECT-INST, UNIT_MEASURE

Code
`CNA-2020-PIB` %>%
  left_join(OPERATION,  by = "OPERATION") %>%
  left_join(NATURE,  by = "NATURE") %>%
  group_by(OPERATION, NATURE, `SECT-INST`, UNIT_MEASURE) %>%
  summarise(Nobs = n()) %>%
  mutate_at(vars(-Nobs, -OPERATION), funs(as.factor(.))) %>%
  arrange(-Nobs) %>%
  print_table_conditional
OPERATION NATURE SECT-INST UNIT_MEASURE Nobs
PIB_H VALEUR_ABSOLUE S0 EUROS_HABITANTS 152
PIB INDICE S0 SO 76
PIB VALEUR_ABSOLUE S0 EUR2020 76
PIB VALEUR_ABSOLUE S0 EUROS_COURANTS 76
B11 PROPORTION_POURCENTAGE S0 SO 75
P3 PROPORTION_POURCENTAGE S0 SO 75
P3 PROPORTION_POURCENTAGE S13 SO 75
P3 PROPORTION_POURCENTAGE S14B SO 75
P3 PROPORTION_POURCENTAGE S15 SO 75
P51G PROPORTION_POURCENTAGE S0 SO 75
P51G PROPORTION_POURCENTAGE S11ES14AA SO 75
P51G PROPORTION_POURCENTAGE S12ES14AF SO 75
P51G PROPORTION_POURCENTAGE S13 SO 75
P51G PROPORTION_POURCENTAGE S14B SO 75
P51G PROPORTION_POURCENTAGE S15 SO 75
P52 PROPORTION_POURCENTAGE S0 SO 75
P53 PROPORTION_POURCENTAGE S0 SO 75
P6 PROPORTION_POURCENTAGE S0 SO 75
P7 PROPORTION_POURCENTAGE S0 SO 75
PIB PROPORTION_POURCENTAGE S0 POURCENT 75

OPERATION, NATURE

Code
`CNA-2020-PIB` %>%
  left_join(OPERATION,  by = "OPERATION") %>%
  left_join(NATURE,  by = "NATURE") %>%
  group_by(OPERATION,NATURE, Nature) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
OPERATION NATURE Nature Nobs
P51G PROPORTION_POURCENTAGE Proportion en % 450
P3 PROPORTION_POURCENTAGE Proportion en % 300
PIB VALEUR_ABSOLUE Valeur absolue 152
PIB_H VALEUR_ABSOLUE Valeur absolue 152
PIB INDICE Indice 76
B11 PROPORTION_POURCENTAGE Proportion en % 75
P52 PROPORTION_POURCENTAGE Proportion en % 75
P53 PROPORTION_POURCENTAGE Proportion en % 75
P6 PROPORTION_POURCENTAGE Proportion en % 75
P7 PROPORTION_POURCENTAGE Proportion en % 75
PIB PROPORTION_POURCENTAGE Proportion en % 75

TITLE_FR

Code
`CNA-2020-PIB` %>%
  group_by(IDBANK, TITLE_FR) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
IDBANK TITLE_FR Nobs
011779990 Comptes nationaux annuels base 2020 - Produit intérieur brut approche produit - Total des secteurs institutionnels - Total des produits - Indice de prix chaîné année de base (non équilibré) 76
011779991 Comptes nationaux annuels base 2020 - Produit intérieur brut approche produit - Total des secteurs institutionnels - Total des produits - Prix chaîné année de base (non équilibré) 76
011779992 Comptes nationaux annuels base 2020 - Produit intérieur brut approche produit - Total des secteurs institutionnels - Total des produits - Prix courant 76
011779993 Comptes nationaux annuels base 2020 - Produit intérieur brut par habitant - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Prix chaîné année de base (non équilibré) 76
011779998 Comptes nationaux annuels base 2020 - Produit intérieur brut par habitant - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Prix courant 76
011779994 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Ménages hors entrepreneurs individuels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011779995 Comptes nationaux annuels base 2020 - Produit intérieur brut - Evolution en volume - Prix chaîné année de base (non équilibré) 75
011779996 Comptes nationaux annuels base 2020 - Dépense de consommation finale - APU Administrations publiques - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011779997 Comptes nationaux annuels base 2020 - Dépense de consommation finale - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011779999 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - APU Administrations publiques - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011780000 Comptes nationaux annuels base 2020 - Importations de biens et de services - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011780001 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Instituts sans but lucratif au service des ménages - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011780002 Comptes nationaux annuels base 2020 - Solde des échanges extérieurs de biens et services - Total des sect. institutionnels - Total des produits (nouvelle nomencl.) - Contribution à l'évolution du produit intérieur brut en volume 75
011780003 Comptes nationaux annuels base 2020 - Variation des stocks - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011780004 Comptes nationaux annuels base 2020 - Exportations de biens et de services - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011780005 Comptes nationaux annuels base 2020 - Dépense de consommation finale - Ménages hors entrepreneurs individuels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011780006 Comptes nationaux annuels base 2020 - Dépense de consommation finale - Instituts sans but lucratif au service des ménages - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011780007 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011780008 Comptes nationaux annuels base 2020 - Acquisitions moins cessions d'objets de valeur - Total des secteurs institutionnels - Total des produits (nouvelle nomencl.) - Contribution à l'évolution du produit intérieur brut en volume 75
011780009 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Sociétés et E.I. non financières - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75
011780010 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Sociétés et E.I. financières - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 75

Parts du PIB

PIB Courants and Constants

Tous

Code
`CNA-2020-PIB` %>%
  year_to_date %>%
  filter(OPERATION == "PIB",
         UNIT_MEASURE %in% c("EUR2020", "EUROS_COURANTS")) %>%
  select(date, UNIT_MEASURE, OBS_VALUE) %>%
  mutate(OBS_VALUE = OBS_VALUE %>% as.numeric,
         UNIT_MEASURE = paste0("PIB_", UNIT_MEASURE)) %>%
  spread(UNIT_MEASURE, OBS_VALUE) %>%
  print_table_conditional()

2017-

Code
`CNA-2020-PIB` %>%
  filter(as.numeric(TIME_PERIOD) >= 2017) %>%
  filter(OPERATION == "PIB",
         UNIT_MEASURE %in% c("EUR2020", "EUROS_COURANTS")) %>%
  select(TIME_PERIOD, UNIT_MEASURE, OBS_VALUE) %>%
  mutate(OBS_VALUE = OBS_VALUE %>% as.numeric,
         UNIT_MEASURE = paste0("PIB_", UNIT_MEASURE)) %>%
  spread(UNIT_MEASURE, OBS_VALUE) %>%
  print_table_conditional
TIME_PERIOD PIB_EUR2020 PIB_EUROS_COURANTS
2017 2415116 2291681
2018 2454866 2355363
2019 2504637 2432207
2020 2318276 2318276
2021 2477828 2508102
2022 2545145 2653997
2023 2581775 2826542
2024 2612510 2919900

PIB Nominal en France

Français

Step 0

Code
`CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUROS_COURANTS") %>%
  select(TIME_PERIOD, `PIB Nominal` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`PIB Nominal`)) %>%
  group_by(date) %>%
  select(-year) %>%
  gather(variable, value, -date) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB nominal de la France (en € courants)") +
  geom_line(aes(x = date, y = value/10^3, color = variable, linetype = variable)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(200, 3000, 200),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

PIB Réel en France

English

Code
fit <- `CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `Real GDP` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`Real GDP`))  %>%
  filter(year <= 1971) %>%
  lm(log(`Real GDP`) ~ year, data = .) %>%
  pluck("coefficients")


fit_2019 <- `CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `Real GDP` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`Real GDP`)) %>%
  lm(log(`Real GDP`) ~ year, data = .) %>%
  pluck("coefficients")

fit
# (Intercept)        year 
# -87.4994240   0.0513393
Code
fit_2019
#  (Intercept)         year 
# -42.75296441   0.02856424
Code
`CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `Real GDP` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`Real GDP`)) %>%
  mutate(`Trend to 2024 (g = 2.9%)` = lm(log(`Real GDP`) ~ year) %>% fitted %>% exp,
         `Trend to 1971, extrapolated` = ifelse(year>=1971, 
                                                (fit[1]+fit[2]*year) %>% exp, 
                                                NA),
         `Trend to 1971 (g = 5.1%)` = ifelse(year<=1971, 
                                             (fit[1]+fit[2]*year) %>% exp, 
                                             NA)) %>%
  group_by(date) %>%
  select(-year) %>%
  gather(variable, value, -date) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("France's GDP") +
  geom_line(aes(x = date, y = value/10^6, color = variable, linetype = variable)) + 
  scale_color_manual(values = viridis(4)[c(3, 1, 1, 2)]) +
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = 20*2^seq(-7, 1, 1),
                labels = scales::dollar_format(a = .1, prefix = "", suffix = "Tn€"))

Français

Step 0

1949-

Linéaire
Code
plot_lineaire <- `CNA-2020-PIB` %>%
  filter(OPERATION %in% c("PIB", "P3"), 
         UNIT_MEASURE == "EUR2020") %>%
  left_join(OPERATION, by = "OPERATION") %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  group_by(date) %>%
  select(-year) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = OBS_VALUE/10^3, color = Operation)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 10) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(200, 3000, 200),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

plot_lineaire

Log
Code
plot_log <- plot_lineaire+
  scale_y_log10(breaks = 20000*2^seq(-7, 1, 0.5),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

plot_log

Both
Code
ggarrange(plot_lineaire, plot_log + ylab(""), common.legend = T)

1960-

Linéaire
Code
plot_lineaire <- `CNA-2020-PIB` %>%
  filter(OPERATION %in% c("PIB", "P3"), 
         UNIT_MEASURE == "EUR2020") %>%
  left_join(OPERATION, by = "OPERATION") %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(year >= 1960) %>%
  group_by(date) %>%
  select(-year) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = OBS_VALUE/10^3, color = Operation)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 10) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(200, 3000, 200),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

plot_lineaire

Log
Code
plot_log <- plot_lineaire+
  scale_y_log10(breaks = 20000*2^seq(-7, 1, 0.5),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

plot_log

Both
Code
ggarrange(plot_lineaire, plot_log + ylab(""), common.legend = T)

2011-2013

Code
plot_lineaire <- `CNA-2020-PIB` %>%
  filter(OPERATION %in% c("PIB", "P3"), 
         UNIT_MEASURE == "EUR2020") %>%
  left_join(OPERATION, by = "OPERATION") %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(year >= 2011,
         year <= 2013) %>%
  arrange(date) %>%
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) %>%
  group_by(date) %>%
  select(-year) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Operation)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 1) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(100, 3000, 0.1))

plot_lineaire

Step 2

Code
`CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `PIB Réel` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`PIB Réel`)) %>%
  mutate(`Tendance jusque 2024 (g = 2.9%)` = lm(log(`PIB Réel`) ~ year) %>% fitted %>% exp) %>%
  group_by(date) %>%
  select(-year) %>%
  gather(variable, value, -date) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = value/10^3, color = variable, linetype = variable)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = 20000*2^seq(-7, 1, 1),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

Step 3

Code
`CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `PIB Réel` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`PIB Réel`)) %>%
  mutate(`Tendance jusque 1971, extrapolée` = ifelse(year>=1971, 
                                                (fit[1]+fit[2]*year) %>% exp, 
                                                NA),
         `Tendance jusque 1971 (g = 5.1%)` = ifelse(year<=1971, 
                                             (fit[1]+fit[2]*year) %>% exp, 
                                             NA)) %>%
  group_by(date) %>%
  select(-year) %>%
  gather(variable, value, -date) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = value/10^3, color = variable, linetype = variable)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = 20000*2^seq(-7, 1, 1),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

Step 4

Code
`CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `PIB Réel` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`PIB Réel`)) %>%
  mutate(`Tendance jusque 2024 (g = 2.9%)` = lm(log(`PIB Réel`) ~ year) %>% fitted %>% exp,
         `Tendance jusque 1971, extrapolée` = ifelse(year>=1971, 
                                                (fit[1]+fit[2]*year) %>% exp, 
                                                NA),
         `Tendance jusque 1971 (g = 5.1%)` = ifelse(year<=1971, 
                                             (fit[1]+fit[2]*year) %>% exp, 
                                             NA)) %>%
  group_by(date) %>%
  select(-year) %>%
  gather(variable, value, -date) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = value/10^3, color = variable, linetype = variable)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = 20000*2^seq(-7, 1, 1),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

Contributions à la croissance du PIB

Consumption, FBCF, PIB

Code
`CNA-2020-PIB` %>%
  filter(OPERATION %in% c("P3", "P51G"), 
         NATURE == "PROPORTION_POURCENTAGE",
         `SECT-INST` == "S0") %>%
  year_to_date %>%
  select(OPERATION, OBS_VALUE, date) %>%
  left_join(OPERATION,  by = "OPERATION") %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Contribution à la croissance du PIB") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Operation)) + 
  
  theme(legend.title = element_blank(),
        legend.position = c(0.7, 0.9)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-200, 200, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed")

Exportations, Importations - P6, P7 (%)

Code
`CNA-2020-PIB` %>%
  filter(OPERATION %in% c("P6", "P7"), 
         NATURE == "PROPORTION_POURCENTAGE",
         `SECT-INST` == "S0") %>%
  year_to_date %>%
  select(OPERATION, OBS_VALUE, date) %>%
  left_join(OPERATION,  by = "OPERATION") %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Operation)) + 
  
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-200, 200, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed")

Solde Net P6-P7

Code
`CNA-2020-PIB` %>%
  filter(OPERATION %in% c("B11", "P6", "P7"), 
         NATURE == "PROPORTION_POURCENTAGE",
         `SECT-INST` == "S0") %>%
  year_to_date %>%
  select(OPERATION, OBS_VALUE, date) %>%
  left_join(OPERATION,  by = "OPERATION") %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Operation)) + 
  
  theme(legend.title = element_blank(),
        legend.position = c(0.7, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-200, 200, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed")