Inflation Targeting Simulation

Example Problem: Inflation Targeting Simulation

In this example, we aim to simulate the inflation dynamics under a basic monetary policy rule, such as the $Taylor Rule$.

The $Taylor Rule$ adjusts the nominal interest rate based on deviations of inflation and output from their target levels.

We’ll model how inflation converges to the target over time under this rule.

Problem

Given:

  1. Inflation starts at a level significantly higher than the target.
  2. A central bank adjusts the interest rate to influence inflation.
  3. The inflation equation is simplified to a function of past inflation, output gap, and the interest rate.

We will simulate how inflation evolves over time with:

  • A fixed inflation target.
  • Parameters for monetary policy responsiveness.

Python Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import numpy as np
import matplotlib.pyplot as plt

# Parameters
inflation_target = 2.0 # Target inflation (%)
initial_inflation = 5.0 # Initial inflation (%)
output_gap = 1.0 # Initial output gap (%)
beta_inflation = 1.5 # Responsiveness to inflation deviation
beta_output = 0.5 # Responsiveness to output gap
time_steps = 20 # Number of time periods
natural_rate_of_interest = 2.0 # Natural rate of interest

# Simulation variables
inflation = [initial_inflation]
interest_rate = []

# Simulate inflation dynamics
for t in range(time_steps):
# Calculate interest rate using Taylor Rule
interest = natural_rate_of_interest + beta_inflation * (inflation[-1] - inflation_target) + beta_output * output_gap
interest_rate.append(interest)

# Update inflation (simplified dynamics: next inflation is dampened by interest rate)
next_inflation = inflation[-1] - 0.2 * (interest - natural_rate_of_interest)
inflation.append(next_inflation)

# Visualization
time = np.arange(0, time_steps + 1)

plt.figure(figsize=(12, 6))

# Plot inflation dynamics
plt.subplot(2, 1, 1)
plt.plot(time, inflation, marker='o', label="Inflation")
plt.axhline(y=inflation_target, color='r', linestyle='--', label="Inflation Target")
plt.title("Inflation Dynamics under the Taylor Rule")
plt.xlabel("Time Period")
plt.ylabel("Inflation (%)")
plt.legend()
plt.grid()

# Plot interest rate
plt.subplot(2, 1, 2)
plt.plot(time[:-1], interest_rate, marker='o', color='orange', label="Interest Rate")
plt.axhline(y=natural_rate_of_interest, color='r', linestyle='--', label="Natural Rate of Interest")
plt.title("Interest Rate Adjustment")
plt.xlabel("Time Period")
plt.ylabel("Interest Rate (%)")
plt.legend()
plt.grid()

plt.tight_layout()
plt.show()

Explanation

  1. Taylor Rule:
    • Sets the nominal interest rate based on inflation deviation and output gap.
  2. Inflation Dynamics:
    • Inflation adjusts gradually in response to interest rate changes.
  3. Visualization:
    • The top graph shows how inflation converges to the target.
    • The bottom graph displays the interest rate adjustments over time.

Results

  • Inflation converges toward the target ($2$%) over time due to the central bank’s interest rate adjustments.
  • Interest rates stabilize as inflation reaches the target.
    This illustrates the effectiveness of inflation targeting under the $Taylor Rule$.