Basicamente, preciso replicar o 'Guia do usuário para resolver modelos de ciclo de negócios reais' de Hartley ( http://www.econ.ucdavis.edu/faculty/kdsalyer/LECTURES/Ecn235a/Linearization/ugfinal.pdf ). Especificamente, quero simular o sistema dinâmico implícito no modelo, especificado da seguinte maneira:
onde é consumo, é oferta de trabalho, é capital, é o processo tecnológico autorregressivo, é a produção é o investimento.h k
Eu o simulo usando a seguinte lógica: digamos, no tempo , tudo está no estado estacionário e todos os valores são 0, dos quais temos . Então, em , dando choque ao sistema por meio de , resolvo e (como eu tenho o 'chocado' e obtido anteriormente . Depois, os dois para recuperar o restante, a saber - e repito o processo.
Infelizmente, recebo um processo explosivo que não faz sentido:
Eu também incluo o código R que é usado para simular isso:
n<-300
data.simulated <- data.table(t = 0, zval = 0, cval = 0, hval = 0, kval = 0, yval = 0, ival = 0)
data.simulated <- rbind(data.simulated, data.table(t = 1, kval = 0), fill = TRUE)
for (ii in 1:n){
##initial shocks
eps <- rnorm(1, mean = 0, sd = 0.007)
zt1 <- data.simulated[t == ii - 1, zval]*0.95 + eps
kt1 <- data.simulated[t == ii, kval]
##solve for ct, ht
lmat <- matrix(c(1, -0.54, 2.78, 1), byrow = T, ncol = 2)
rmat <- matrix(c(0.02 * kt1 + 0.44 * zt1, kt1 + 2.78 * zt1), ncol = 1)
solution <- solve(lmat, rmat)
ct1 <- solution[1, ]
ht1 <- solution[2, ]
##now solve for yt1 and kt2 and it1
yt1 <- zt1 + 0.36 * kt1 + 0.64 * ht1
kt2 <- -0.07 * ct1 + 1.01 * kt1 + 0.06 * ht1 + 0.1 * zt1
it1 <- 3.92 * yt1 - 2.92 * ct1
##add to the data.table the results
data.simulated[t == ii, c("zval", "cval", "hval", "yval", "ival") := list(zt1, ct1, ht1, yt1, it1)]
data.simulated <- rbind(data.simulated, data.table(t = ii + 1, kval = kt2), fill = TRUE)
}
a <- data.simulated[, list(t, cval, ival, yval)]
a <- data.table:::melt.data.table(a, id.vars = "t")
ggplot(data = a, aes(x = t, y = value, col = variable)) + geom_line()
Sim, minha pergunta é simples - o sistema especificado no documento é inerentemente instável e danifica os resultados, ou cometi um erro em algum lugar?
20 de março de 2015 : Enviei um e-mail ao prof. K. Salyer, um dos autores do Guia do Usuário. Em uma comunicação repetida, ele verificou que os dois problemas (veja minha resposta abaixo, bem como a resposta @ivansml) existem:
a) A equação correta para a lei do movimento de consumo é como @ivansml mostra
FASE A
Verifiquei por simulação (e usando o desvio padrão correto) que o modelo explode, embora o faça para cima e não para baixo. Deve haver um erro de cálculo no artigo, que de alguma forma não foi "transmitido" às simulações dos autores. No momento, não consigo pensar em mais nada, já que a metodologia é padrão. Estou intrigado e ainda estou trabalhando nisso.
Observe os valores no eixo vertical: eles são muito maiores que o intervalo de valores que aparece na Figura 1 no artigo dos autores.
Vou tentar entrar em contato com os autores sobre esses dois assuntos.
fonte