计算 R growth of growth 中的 Credit Impulse

Calculating Credit Impulse in R growth of growth

财务部分 R 部分问题

我一直在尝试使用 Quantmod 包和 xts 也使用 diff 函数在 R 中复制以下公式。该代码为我提供了信用冲动图,但它似乎并没有复制我想要达到的目的。参见 link

https://www.gam.com/media/1434580/biggs.pdf -

第 2 页给出了信用脉冲的公式 - 其中 C 是时间 t 的信用存量

信贷脉冲 = (Ct – Ct-1)/GDPt – (Ct-1-Ct-2)/GDPt-1

第 3 页看一下图表(这是我试图为 Credit Impulse 复制的图表

我是否以正确的方式使用 diff 函数,我是否可以在 R 中更有效地执行此操作?

下面是我的代码

#US DEBT [BN][USD][Q]
usd_debt <- getSymbols("CRDQUSAPABIS", src = "FRED", auto.assign=FALSE)

##US GDP [BN][USD][Q]
usd_gdp <- getSymbols("GDP", src = "FRED", auto.assign=FALSE)

#USD Credit Impulse
usd_debt <- usd_debt["2000/2016"] 
usd_gdp <- usd_gdp["2000/2016"]
usd_ratio <- usd_debt/usd_gdp
usd_ci <- diff(usd_ratio)
plot(usd_ci)

看起来您可能真的想使用:

z <- diff(diff(usd_debt) / coredata(usd_gdp))
plot(z)

假设 Ct 可以使用您的 usd_debt 系列建模?

是的,您 diff 的使用方式是正确的。当您将 diff 应用于 xts 对象时,diff 将调用 diff.xts,并且在您的示例中 usd_ratio 确实是一个 xts 对象,因此它会很快(高效)。

这里,coredata 是可选的,但在除以 xts 对象时是一个很好的做法,因为它 returns 是基础矩阵。 xts 个对象的除法可能有问题。