TD Introduction à la macroéconomie
2025-02-11
| Fait de Kaldor | Équation |
|---|---|
| 1. Le taux de croissance du PIB/hab est constant. | \(\frac{d(\frac{Y}{L})}{dt} = g\) |
| 2. Le ratio du stock de capital total au PIB est constant. | \(\frac{K}{Y} = c\) |
| 3. Les parts des revenus du travail et du capital dans le PIB sont constantes. | \(\frac{W}{Y} = \theta_L \quad \text{et} \quad \frac{R}{Y} = \theta_K\) |
| 4. Le taux de rendement du capital est constant. | \(r = \frac{\partial Y}{\partial K} = c\) |
| Dynamique économique | Explication | Faits de Kaldor impactés |
|---|---|---|
| Transition vers un capital intangible et financier | Le capital immatériel et la financiarisation augmentent le ratio \(\frac{K}{Y}\) sans refléter une production réelle, maintenant un rendement élevé du capital. | 2, 4 |
| Croissance économique plus faible | La croissance ralentie dans les économies avancées augmente l’accumulation de capital, faisant diverger le rendement du capital du taux de croissance économique. | 1, 2, 4 |
| Part des revenus du capital en hausse | La part croissante des revenus du capital, soutenue par la financiarisation et des politiques fiscales favorables, remet en cause la répartition factorielle de Kaldor. | 3 |
| Mobilité des capitaux et optimisation fiscale | L’optimisation fiscale et la mondialisation redirigent les investissements vers des secteurs à rendements élevés, modifiant les rendements du capital. | 4 |
| Innovation et progrès technique | Les innovations et l’automatisation ne compensent pas systématiquement les rendements décroissants du capital, changeant les dynamiques de production et de répartition. | 1, 4 |


#| '!! shinylive warning !!': |
#| shinylive does not work in self-contained HTML documents.
#| Please set `embed-resources: false` in your metadata.
#| standalone: true
#| viewerHeight: 550
import numpy as np
import matplotlib.pyplot as plt
from shiny import App, ui, render
# Cobb-Douglas production function
def cobb_douglas(k, alpha):
return k ** alpha
# Solow model functions with technological progress
def output_per_worker(k, alpha):
return cobb_douglas(k, alpha)
def savings_per_worker(k, alpha, s):
return s * cobb_douglas(k, alpha)
def depreciation_per_worker(k, delta, n, g):
return (delta + n + g) * k
# Function to find equilibrium point
def find_equilibrium(alpha, s, delta, n, g):
k_eq = (s / (delta + n + g)) ** (1 / (1 - alpha))
y_eq = cobb_douglas(k_eq, alpha)
return k_eq, y_eq
app_ui = ui.page_fluid(
ui.layout_sidebar(
ui.sidebar(
ui.input_slider("alpha", "Alpha", min=0.1, max=0.5, value=0.3, step=0.01),
ui.input_slider("s", "Savings Rate (s)", min=0.1, max=0.5, value=0.2, step=0.01),
ui.input_slider("delta", "Depreciation Rate (δ)", min=0.01, max=0.1, value=0.05, step=0.01),
ui.input_slider("n", "Population Growth (n)", min=0.01, max=0.1, value=0.02, step=0.01),
ui.input_slider("g", "Tech Progress (g)", min=0, max=0.1, value=0.02, step=0.01)
),
ui.output_plot("plot"),
),
)
def server(input, output, session):
# Store previous values
prev_values = {"alpha": None, "s": None, "delta": None, "n": None, "g": None}
@output
@render.plot
def plot():
# Get current values
alpha = input.alpha()
s = input.s()
delta = input.delta()
n = input.n()
g = input.g()
k = np.linspace(0.01, 10, 1000)
y = output_per_worker(k, alpha)
sfk = savings_per_worker(k, alpha, s)
dnk = depreciation_per_worker(k, delta, n, g)
k_eq, y_eq = find_equilibrium(alpha, s, delta, n, g)
fig, ax = plt.subplots(figsize=(10, 6))
# Plot previous values if available (without labels)
if prev_values["alpha"] is not None:
prev_y = output_per_worker(k, prev_values["alpha"])
prev_sfk = savings_per_worker(k, prev_values["alpha"], prev_values["s"])
prev_dnk = depreciation_per_worker(k, prev_values["delta"], prev_values["n"], prev_values["g"])
prev_k_eq, prev_y_eq = find_equilibrium(
prev_values["alpha"], prev_values["s"],
prev_values["delta"], prev_values["n"], prev_values["g"]
)
ax.plot(k, prev_y, color='lightblue', alpha=0.5)
ax.plot(k, prev_sfk, color='lightgreen', alpha=0.5)
ax.plot(k, prev_dnk, color='pink', alpha=0.5)
ax.scatter([prev_k_eq], [prev_y_eq], color='purple', alpha=0.3, s=100)
ax.vlines(prev_k_eq, 0, prev_y_eq, colors='purple', alpha=0.3, linestyles='--')
ax.hlines(prev_y_eq, 0, prev_k_eq, colors='purple', alpha=0.3, linestyles='--')
# Plot current values
ax.plot(k, y, color='blue', label='y = f(k)')
ax.plot(k, sfk, color='green', label='s * f(k)')
ax.plot(k, dnk, color='red', label='(δ + n + g) * k')
ax.scatter([k_eq], [y_eq], color='purple', s=100, label='Equilibrium Point')
ax.vlines(k_eq, 0, y_eq, colors='purple', linestyles='--')
ax.hlines(y_eq, 0, k_eq, colors='purple', linestyles='--')
ax.set_title('Solow Model with Technological Progress')
ax.set_xlabel('Capital per Effective Worker (k)')
ax.set_ylabel('Output per Effective Worker (y)')
ax.grid(True, alpha=0.3)
ax.legend(loc='lower right')
# Update previous values
prev_values.update({
"alpha": alpha,
"s": s,
"delta": delta,
"n": n,
"g": g
})
return fig
app = App(app_ui, server)| # | Hypothèse | Critique |
|---|---|---|
| Hypothèses néoclassiques courantes | ||
| 1 | Fonction de production | Substitution capital/travail complexe, Caractéristiques fonctionnelles |
| 2 | Rendements d’échelle constants, productivité marginale décroissante | Rendements croissants; Hypothèse capital homogène |
| 3 | Concurrence parfaite | Valable à long terme; contestée à court terme |
| 4 | Absence d’intervention gouvernementale | Inadéquat depuis la crise de 29 |
| Hypothèses spécifiques à Solow | ||
| 5 | Économie fermée | Omet les effets du commerce international |
| 6 | Homogénéité du travail et du capital | Controverse des 2 Cambridge |
| 7 | Plein emploi du travail et du capital | Plein emploi du travail discutable |
| 8 | Bien homogène | Simplification acceptable |
| 9 | Proportion fixe du revenu investie | Taux d’épargne relativement stable |
À partir de 1800, recherchez le PIB américain par habitant à intervalles d’une décennie. Pour chacun de ces moments, trouvez le pays dont le PIB par habitant est actuellement le plus proche du niveau passé des États-Unis. Quand les États-Unis sont-ils devenus plus riches que l’Inde, la Chine et la France d’aujourd’hui ?
| year | gdppc | |
|---|---|---|
| 124713 | 1800 | 2545.488000 |
| 124723 | 1810 | 2725.472000 |
| 124733 | 1820 | 2674.048000 |
| 124743 | 1830 | 3039.158400 |
| 124753 | 1840 | 3319.419200 |
| 124763 | 1850 | 3631.820000 |
| 124773 | 1860 | 4401.894400 |
| 124783 | 1870 | 4803.001600 |
| 124793 | 1880 | 6255.729600 |
| 124803 | 1890 | 6664.550400 |
| 124813 | 1900 | 8037.571200 |
| 124823 | 1910 | 9636.782722 |
| 124833 | 1920 | 10152.927109 |
| 124843 | 1930 | 10694.982075 |
| 124853 | 1940 | 12005.095163 |
| 124863 | 1950 | 15240.000000 |
| 124873 | 1960 | 18057.000000 |
| 124883 | 1970 | 23958.000000 |
| 124893 | 1980 | 29611.000000 |
| 124903 | 1990 | 36982.000000 |
| 124913 | 2000 | 45886.470498 |
| 124923 | 2010 | 49266.915862 |
| 124933 | 2020 | 54379.206512 |
# Get the most recent GDP per capita data for all countries
latest_year = data['year'].max()
latest_gdp = data[data['year'] == latest_year][['country', 'gdppc']]
# List to store the results
closest_countries = []
# Find the country with the closest GDP per capita for each decade 🛠️
for decade in us_gdp_decades["year"]:
gdp_diff = float('inf')
closest_country = None
us_gdp = us_gdp_decades[us_gdp_decades["year"] == decade]["gdppc"].values[0]
for country in latest_gdp["country"]:
country_gdp = latest_gdp[latest_gdp["country"] == country]["gdppc"].values[0]
test_gdp_diff = abs(country_gdp - us_gdp)
if test_gdp_diff < gdp_diff:
gdp_diff = test_gdp_diff
closest_country = country
closest_countries.append((decade, us_gdp, closest_country, gdp_diff))
# Convert the results to a DataFrame
closest_countries_df = pd.DataFrame(closest_countries, columns=['Year', 'US GDP per Capita', 'Closest Country', 'GDP Difference'])
closest_countries_df| Year | US GDP per Capita | Closest Country | GDP Difference | |
|---|---|---|---|---|
| 0 | 1800 | 2545.488000 | Syrian Arab Republic | 50.726705 |
| 1 | 1810 | 2725.472000 | Senegal | 64.790275 |
| 2 | 1820 | 2674.048000 | Senegal | 13.366275 |
| 3 | 1830 | 3039.158400 | U.R. of Tanzania: Mainland | 18.170325 |
| 4 | 1840 | 3319.419200 | Zambia | 23.002125 |
| 5 | 1850 | 3631.820000 | Djibouti | 8.759756 |
| 6 | 1860 | 4401.894400 | Ghana | 159.483731 |
| 7 | 1870 | 4803.001600 | State of Palestine | 27.799541 |
| 8 | 1880 | 6255.729600 | Angola | 136.824703 |
| 9 | 1890 | 6664.550400 | Republic of Moldova | 10.320888 |
| 10 | 1900 | 8037.571200 | Viet Nam | 12.787631 |
| 11 | 1910 | 9636.782722 | El Salvador | 417.877223 |
| 12 | 1920 | 10152.927109 | Ecuador | 28.850547 |
| 13 | 1930 | 10694.982075 | Sri Lanka | 10.499408 |
| 14 | 1940 | 12005.095163 | Bosnia and Herzegovina | 137.768038 |
| 15 | 1950 | 15240.000000 | Costa Rica | 256.820571 |
| 16 | 1960 | 18057.000000 | Argentina | 235.317825 |
| 17 | 1970 | 23958.000000 | Panama | 400.980446 |
| 18 | 1980 | 29611.000000 | Hungary | 159.144213 |
| 19 | 1990 | 36982.000000 | Israel | 333.083045 |
| 20 | 2000 | 45886.470498 | Canada | 356.824890 |
| 21 | 2010 | 49266.915862 | Netherlands | 402.952693 |
| 22 | 2020 | 54379.206512 | Saudi Arabia | 862.297475 |
# Determine when the US became richer than India, China, and France of today 🛠️
india_gdp = latest_gdp[latest_gdp['country'] == 'India']['gdppc'].values[0]
china_gdp = latest_gdp[latest_gdp['country'] == 'China']['gdppc'].values[0]
france_gdp = latest_gdp[latest_gdp['country'] == 'France']['gdppc'].values[0]
richer_than_india = us_gdp_decades[us_gdp_decades['gdppc'] > india_gdp].iloc[0]['year']
richer_than_china = us_gdp_decades[us_gdp_decades['gdppc'] > china_gdp].iloc[0]['year']
richer_than_france = us_gdp_decades[us_gdp_decades['gdppc'] > france_gdp].iloc[0]['year']
# Print the results
print(f"\nThe US became richer than India of today in: {richer_than_india}")
print(f"The US became richer than China of today in: {richer_than_china}")
print(f"The US became richer than France of today in: {richer_than_france}")
The US became richer than India of today in: 1900.0
The US became richer than China of today in: 1970.0
The US became richer than France of today in: 2000.0
Supposons qu’une économie se comporte selon le modèle de croissance de Solow. Cela commence à \(t = 0\) dans un état stable, sans progrès technologique ni croissance démographique. Supposons qu’un tremblement de terre détruise la moitié du stock de capital. En conséquence,
Que se passerait-il à court terme (c’est-à-dire immédiatement) et à long terme (c’est-à-dire une fois que l’économie aurait atteint l’état stationnaire) pour :
Au milieu du XIVe siècle, une peste a tué environ un tiers de la population européenne. Supposons que l’économie européenne ait été bien décrite par le modèle de Solow. Comment les variables suivantes changeraient-elles en réponse à la peste noire à court terme (c’est-à-dire immédiatement) ?
