如何使用卡尔曼滤波器估计 R 中的 NAIRU?

问题描述 投票:0回答:1

我正在尝试使用 R 中的卡尔曼滤波器来估计来自巴西的 NAIRU。为此,我将使用这两个方程:

  1. 一条菲利普斯曲线,使得通货膨胀等于他的预期,加上失业率和NAIRU的差值,再加上三个控制变量。这个方程将是状态空间模型的测量方程

  2. 另一个将 NAIRU 建模为随机游走的方程。该方程将是过渡方程,NAIRU 将是状态空间模型的不可观测变量

方程将是这样的:

The two equatios of the state space model

我已经在 R 中拥有一个包含所有这些变量的数据框(显然,NAIRU 除外,因为它是我想要估计的变量)。我的变量数据框称为“基础”,这些是我的列:

“日期”“inflacao”“expec”“desem”“commo_ener”“cambio”“导入”

其中“date”是每次观察的日期,“inflacao”是当前通货膨胀,“expec”是该时期的通货膨胀预期,“desem”是该时期的失业率,最后三个变量是控制变量

这是我的尝试之一:

install.packages(c("KFAS", "ggplot2"))
library(KFAS)
library(ggplot2)

# Define the equations of the Phillips Curve model
modelo_CP <- SSModel(
  Z = matrix(c(1, -1, -1, 0, 0, 0, 1, 0, 0, 0, 1, 0), nrow = 2, byrow = TRUE),
  H = diag(c(0.2, 0.1)),
  T = diag(c(1, 0.95, 1)),
  a1 = c(0, 0, 4),
  P1 = diag(c(1, 1, 1))
)

# Estime os parâmetros do modelo usando o filtro de Kalman
resultado_CP <- fitSSM(modelo_CP, y = as.matrix(base[, c("inflacao", "desem", "commo_ener", "cambio", "import")]))

# Estimate model parameters using Kalman filter
NAIRU_estimada_CP <- resultado_CP$state[, "state.1"]

# Create a data frame with NAIRU estimates and the unemployment variable
data_plot_CP <- data.frame(
  Date = base$date,
  NAIRU = NAIRU_estimada_CP,
  Desemprego = base$desem
)

# Create a plot with ggplot2 to visualize time series
ggplot(data_plot_CP, aes(x = Date)) +
  geom_line(aes(y = NAIRU, color = "NAIRU"), size = 1) +
  geom_line(aes(y = Desemprego, color = "Desemprego"), size = 1) +
  labs(y = "Valor", color = "Legenda") +
  scale_color_manual(values = c("NAIRU" = "blue", "Desemprego" = "red")) +
  theme_minimal()

我认为我需要使用 SSMregression() 函数,但我不明白如何在我的上下文中实现

r kalman-filter economics
1个回答
0
投票

Taca no ChatGPT kkkkkkkkkkkkkkkkk

© www.soinside.com 2019 - 2024. All rights reserved.