我正在尝试使用 R 中的卡尔曼滤波器来估计来自巴西的 NAIRU。为此,我将使用这两个方程:
一条菲利普斯曲线,使得通货膨胀等于他的预期,加上失业率和NAIRU的差值,再加上三个控制变量。这个方程将是状态空间模型的测量方程
另一个将 NAIRU 建模为随机游走的方程。该方程将是过渡方程,NAIRU 将是状态空间模型的不可观测变量
方程将是这样的:
我已经在 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() 函数,但我不明白如何在我的上下文中实现
Taca no ChatGPT kkkkkkkkkkkkkkkkk