InflationFunctions

Documentation for InflationFunctions.

InflationFunctions.InflationCoreMaiFType
InflationCoreMaiF <: InflationCoreMai <: InflationFunction 

InflationCoreMaiF(cst::CountryStructure, q::Vector{<:AbstractFloat})
InflationCoreMaiF(cst::CountryStructure, n::Int)
InflationCoreMaiF(vlp::Vector{T}, q::Vector{T})

Defines the core inflation function that uses the Mai-F method.

source
InflationFunctions.InflationCoreMaiFGType
InflationCoreMaiFG <: InflationCoreMai <: InflationFunction 

InflationCoreMaiFG(cst::CountryStructure, q::Vector{<:AbstractFloat})
InflationCoreMaiFG(cst::CountryStructure, n::Int)
InflationCoreMaiFG(vlp::Vector{T}, wlp::Vector{T}, q::Vector{T})

Defines the core inflation function that uses the Mai-FG method.

source
InflationFunctions.InflationCoreMaiGType
InflationCoreMaiG <: InflationCoreMai <: InflationFunction 

InflationCoreMaiG(cst::CountryStructure, q::Vector{<:AbstractFloat})
InflationCoreMaiG(cst::CountryStructure, n::Int)
InflationCoreMaiG(vlp::Vector{T}, wlp::Vector{T}, q::Vector{T})

Defines the core inflation function that uses the MAI-G method.

source
InflationFunctions.InflationDynamicExclusionType
InflationDynamicExclusion <: InflationFunction

Función para computar la inflación de exclusión dinámica dado el factor inferior (lower_factor) y factor superior (upper_factor).

Utilización

function (inflfn::InflationDynamicExclusion)(base::VarCPIBase)

Define cómo opera InflationDynamicExclusion sobre un objeto de tipo VarCPIBase.

function (inflfn::InflationDynamicExclusion)(cs::CountryStructure)

Define cómo opera InflationDynamicExclusion sobre un objeto de tipo CountryStructure.

Ejemplo

Cálculo el recorte dinámico simétrico (2, 2) la distribución de variaciones intermensuales ponderadas.

julia> dynExfn = InflationDynamicExclusion(2, 2)
(::InflationDynamicExclusion) (generic function with 5 methods)
julia>dynExfn(gtdata) #gtdata es de tipo UniformCountryStructure
231×1 Matrix{Float32}:
 7.0480227
 7.3734045
 7.6767564
 7.6933146
 7.7317834
 ⋮
 1.0896564
 1.1332393
 1.0305643
 1.1091232
source
InflationFunctions.InflationExpSmoothingType
InflationExpSmoothing{F <: InflationFunction} <: InflationFunction

Función de inflación que computa la inflación con decaimiento exponencial con el parámetro `$\alpha$ (el parámetro del decaimiento ) de la trayectoria interanual dada por la medida de inflación inflfn almacenada.

Ejemplo

Para computar la inflación con decaimiento exponencial de la variación interanual del IPC:

julia> inflfn = InflationExpSmoothing(InflationTotalCPI(), 0.8)
(::InflationExpSmoothing{InflationTotalCPI}) (generic function with 5 methods)
source
InflationFunctions.InflationFixedExclusionType
InflationFixedExclusion{N} <: InflationFunction

Función de inflación para computar la inflación de exclusión fija de gastos básicos para N bases del IPC. Esta versión no utiliza la fórmula del IPC, como la función de inflación InflationFixedExclusionCPI.

Utilización

function (inflfn::InflationFixedExclusion)(base::VarCPIBase{T}, i::Int) where T

Define cómo opera InflationFixedExclusion sobre un objeto de tipo VarCPIBase, con i listas de exclusión de gastos básicos (posiciones en el IPC) para las bases 2000 y 2010.

function (inflfn::InflationFixedExclusion)(cs::CountryStructure, ::CPIVarInterm)

Define cómo opera InflationFixedExclusion sobre un CountryStructure

Ejemplos

Instanciamos la función y le damos dos listas de exclusión, una por cada base en el CountryStructure. Se exclyen los gastos básicos con números de columnas [25,30,54,88] del primer VarCPIBase y los gastos básicos [65,95,85] del segundo VarCPIBase.

julia> InfExc = InflationFixedExclusion([25,30,54,88], [65,95,85]) 
(::InflationFixedExclusion{2}) (generic function with 6 methods)
source
InflationFunctions.InflationFixedExclusionCPIType
InflationFixedExclusionCPI{N} <: InflationFunction

Función de inflación para computar la inflación de exclusión fija de gastos básicos para N bases del IPC.

Utilización

function (inflfn::InflationFixedExclusionCPI)(base::VarCPIBase{T}, i::Int) where T

Define cómo opera InflationFixedExclusionCPI sobre un objeto de tipo VarCPIBase, con i listas de exclusión de gastos básicos (posiciones en el IPC) para las bases 2000 y 2010.

function (inflfn::InflationFixedExclusionCPI)(cs::CountryStructure, ::CPIVarInterm)

Define cómo opera InflationFixedExclusionCPI sobre un CountryStructure

Ejemplos

Instanciamos la función y le damos dos listas de exclusión, una por cada base en el CountryStructure. Se exclyen los gastos básicos con números de columnas [25,30,54,88] del primer VarCPIBase y los gastos básicos [65,95,85] del segundo VarCPIBase.

julia> InfExc = InflationFixedExclusionCPI([25,30,54,88], [65,95,85]) 
(::InflationFixedExclusionCPI{2}) (generic function with 6 methods)

Cuando gt00 es un VarCPIBase para la base 2000 y su vector de exclusión es el primero de la lista:

julia> InfExc(gt00, 1) 
120-element Vector{Float32}:
 1.4066696
 0.7496357
 0.5115509
 0.39703846
 ⋮
 0.23813248
 0.27743578
 0.46629906

Cuando gt10 es un VarCPIBase para la base 2010 y su vector de exclusión es el segundo de la lista:

julia> InfExc(gt10, 2)

Cuando gtdata es un CountryStructure:

julia> InfExc(gtdata)
231-element Vector{Float32}:
 8.727622
 8.73872
 8.972383
 9.031701
 ⋮
 4.8354387
 5.24472
 6.0075045
source
InflationFunctions.InflationGSEqType
InflationGSEq <: InflationFunction
InflationGSEq(k, s1, s2, r=2)

Computes a Gaussian smoothing with equal weights according to quantile k, left-standard deviation s1, and right-standard deviation s2. The item at the position of the k quantile receives a higher weight and the items to the left or right are downweighted using a Gaussian bell function with different standard deviations to the left and right. The bell function is shaped by the power r.

If $k$ is the desired centering quantile, the standard deviation is a simple piecewise function defined by s(x,k) = x <= p ? 100s1 : 100s2 and the smoothing function by f(x,p,r) = exp(-abs((x-p) / s(x,p))^r).

source
InflationFunctions.InflationGSWeightedType
InflationGSWeighted <: InflationFunction
InflationGSWeighted(k, s1, s2, r=2)

Computes a Gaussian smoothing to the weights according to quantile k, left-standard deviation s1, and right-standard deviation s2. The item at the position of the k quantile receives a higher weight and the items to the left or right are downweighted using a Gaussian bell function with different standard deviations to the left and right. The bell function is shaped by the power r.

If $k$ is the desired centering quantile, the standard deviation is a simple piecewise function defined by s(x,k) = x <= p ? 100s1 : 100s2 and the smoothing function by f(x,p,r) = exp(-abs((x-p) / s(x,p))^r).

source
InflationFunctions.InflationMovingAverageType
InflationMovingAverage{F <: InflationFunction} <: InflationFunction

Función de inflación que computa el promedio móvil de k períodos de la trayectoria interanual de la medida de inflación inflfn almacenada.

Ejemplo

Para computar la media móvil de 6 meses de la variación interanual del IPC:

julia> inflfn = InflationMovingAverage(InflationTotalCPI(), 6)
(::InflationMovingAverage{InflationTotalCPI}) (generic function with 5 methods)
source
InflationFunctions.InflationPercentileEqType
InflationPercentileEq <: InflationFunction

Función de inflación para computar el percentil equiponderado k.

Utilización

function (inflfn::InflationPercentileEq)(base::VarCPIBase{T}) where T

Define cómo opera InflationPercentileEq sobre un objeto de tipo VarCPIBase.

function (inflfn::InflationPercentileEq)(cs::CountryStructure)

Define cómo opera InflationPercentileEq sobre un objeto de tipo CountryStructure.

Ejemplo

Cálculo del percentil 70 de la distribución de variaciones intermensuales ponderadas

julia> percEqfn = InflationPercentileEq(70)
(::InflationPercentileEq) (generic function with 5 methods)
julia>percEqfn(gtdata) #gtdata es de tipo UniformCountryStructure
231-element Vector{Float32}:
9.812069
10.271847
10.382021
10.323441
10.427952 
⋮
1.9042492
1.9850135
1.9871473
2.0293117
2.1856546
source
InflationFunctions.InflationPercentileEqMethod
InflationPercentileEq(k::Int) = InflationPercentileEq(k = Float32(k) / 100)
InflationPercentileEq(q::T) where {T <: AbstractFloat}

Permite utilizar valores de k que no necesariamente son de tipo de punto flotante, como por ejemplo: enteros, fracciones, Float32 y Float64.

Ejemplo

Se usa 0.70 en lugar de 70

julia> percEqfn = InflationPercentileEq(0.70)
(::InflationPercentileEq) (generic function with 5 methods)

julia>percEqfn(gtdata) 
231-element Vector{Float32}:
9.812069
10.271847
10.382021
10.323441
10.427952
⋮
1.9042492
1.9850135
1.9871473
2.0293117
2.1856546

Se obtienen los mismos resultados.

source
InflationFunctions.InflationPercentileWeightedType
InflationPercentileWeighted <: InflationFunction

Función de inflación para computar el percentil ponderado k.

Utilización

function (inflfn::InflationPercentileWeighted)(base::VarCPIBase{T}) where T

Define cómo opera InflationPercentileWeighted sobre un objeto de tipo VarCPIBase.

function (inflfn::InflationPercentileWeighted)(cs::CountryStructure)

Ejemplo

Cálculo del percentil 70 de la distribución de variaciones intermensuales ponderadas

julia> percfn = InflationPercentileWeighted(70)
(::InflationPercentileWeighted) (generic function with 5 methods)
julia>percfn(gtdata) #gtdata es de tipo UniformCountryStructure
231-element Vector{Float32}:
 11.189365
 11.571873
 11.738467
 11.552155
 11.763763
  ⋮
  1.8916845
  2.074194
  2.0474315
  2.1219969
  2.2268414
source
InflationFunctions.InflationPercentileWeightedMethod
InflationPercentileWeighted(k::Int) = InflationPercentileWeighted(k = Float32(k) / 100)
InflationPercentileWeighted(q::T) where {T <: AbstractFloat}

Permite utilizar valores de k que no necesariamente son de tipo de punto flotante, como por ejemplo: enteros, fracciones, Float32 y Float64.

Ejemplo

Se usa 0.70 en lugar de 70

julia> percfn = InflationPercentileWeighted(0.70)
(::InflationPercentileWeighted) (generic function with 5 methods)

julia>percfn(gtdata) 
231-element Vector{Float32}:
 11.189365
 11.571873
 11.738467
 11.552155
 11.763763
  ⋮
  1.8916845
  2.074194
  2.0474315
  2.1219969
  2.2268414

Se obtienen los mismos resultados

source
InflationFunctions.InflationTrimmedMeanEqType
InflationTrimmedMeanEq <: InflationFunction

InflationTrimmedMeanEq(l1::Real,l2::Real)
InflationTrimmedMeanWeighted(factor_vec::Vector{<:Real})

Función de inflación para computar la media truncada equiponderada

Ejemplo

julia> mtfn = InflationTrimmedMeanEq(25, 75.5)
(::InflationTrimmedMeanEq) (generic function with 5 methods)
source
InflationFunctions.InflationTrimmedMeanWeightedType
InflationTrimmedMeanWeighted <: InflationFunction

InflationTrimmedMeanWeighted(l1::Real, l2::Real)
InflationTrimmedMeanWeighted(factor_vec::Vector{<:Real})

Función de inflación para computar la media truncada ponderada

Ejemplo

julia> mtfn = InflationTrimmedMeanWeighted(25,75.5)
(::InflationTrimmedMeanWeighted) (generic function with 5 methods)
source
InflationFunctions.LegacyMai.InflationCoreMaiType
InflationCoreMai{T <: AbstractFloat, B, M <:AbstractMaiMethod} 
    <: InflationFunction

InflationCoreMai(vspace::StepRangeLen{T, B, B}, method::M)

Función de inflación de la metodología de muestra ampliada implicítamente (MAI). Se parametriza en el tipo flotante T de los datos, B el tipo para representar la precisión de la grilla vspace en el algoritmo de cómputo y el método M de cómputo.

Los métodos de cómputo disponibles son:

  • Metodología MAI-G: se transforma la distribución ponderada de variaciones intermensuales utilizando la distribución histórica de variaciones intermensuales ponderadas. Se debe dar como argumento el método MaiG.
  • Metodología MAI-FG: se transforma la distribución de ocurrencias de variaciones intermensuales utilizando la distribución histórica de variaciones intermensuales ponderadas. Se debe dar como argumento el método MaiFG.
  • Metodología MAI-F: se transforma la distribución de ocurrencias de variaciones intermensuales utilizando la distribución histórica de variaciones intermensuales equiponderadas. Es un equivalente directo de la metodología MAI-G, reemplazando todas las distribuciones por las versiones de ocurrencias. Se debe dar como argumento el método MaiF.
source
InflationFunctions.LegacyMai.MaiFType
MaiF{P} <: AbstractMaiMethod

MaiF(n::Int)
MaiF(p::AbstractArray)

Tipo para englobar la metodología de cómputo de inflación subyacente MAI-F, en la cual se transforma la distribución de ocurrencias de variaciones intermensuales utilizando la distribución histórica de variaciones intermensuales equiponderadas. Esta es la versión equivalente a la MAI-G, que utiliza todas las distribuciones de ocurrencias.

Se proporciona el número de segmentos de normalización, o bien, las posiciones de los cuantiles utilizados para llevar a cabo la transformación. Si se proporcionan las posiciones, la primera y la última posición deben ser el cuantil 0 y 1, respectivamente.

Ejemplos

  1. Utilizar los quintiles como puntos de referencia para normalización
julia> method = MaiF(5)
MaiF{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}}(5, 0.0:0.2:1.0)
  1. Utilizar tres segmentos de normalización, en el primer y tercer cuartil:
julia> method = MaiF([0, 0.25, 0.75, 1])
MaiF{Vector{Float64}}(3, [0.0, 0.25, 0.75, 1.0])
source
InflationFunctions.LegacyMai.MaiFGType
MaiFG{P} <: AbstractMaiMethod

MaiFG(n::Int)
MaiFG(p::AbstractArray)

Tipo para englobar la metodología de cómputo de inflación subyacente MAI-FG, en la cual se transforma la distribución de ocurrencias (o equiponderada) de variaciones intermensuales utilizando la distribución histórica de variaciones intermensuales ponderadas.

Se proporciona el número de segmentos de normalización, o bien, las posiciones de los cuantiles utilizados para llevar a cabo la transformación. Si se proporcionan las posiciones, la primera y la última posición deben ser el cuantil 0 y 1, respectivamente.

Ejemplos

  1. Utilizar los quintiles como puntos de referencia para normalización
julia> method = MaiFG(5)
MaiFG{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}}(5, 0.0:0.2:1.0)
  1. Utilizar tres segmentos de normalización, en el primer y tercer cuartil:
julia> method = MaiFG([0, 0.25, 0.75, 1])
MaiFG{Vector{Float64}}(3, [0.0, 0.25, 0.75, 1.0])
source
InflationFunctions.LegacyMai.MaiGType
MaiG{P} <: AbstractMaiMethod

MaiG(n::Int)
MaiG(p::AbstractArray)

Tipo para englobar la metodología de cómputo de inflación subyacente MAI-G, en la cual se transforma la distribución ponderada de variaciones intermensuales utilizando la distribución histórica de variaciones intermensuales ponderadas.

Se proporciona el número de segmentos de normalización, o bien, las posiciones de los cuantiles utilizados para llevar a cabo la transformación. Si se proporcionan las posiciones, la primera y la última posición deben ser el cuantil 0 y 1, respectivamente.

Ejemplos

  1. Utilizar los quintiles como puntos de referencia para normalización
julia> method = MaiG(5)
MaiG{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}}(5, 0.0:0.2:1.0)
  1. Utilizar tres segmentos de normalización, en el primer y tercer cuartil:
julia> method = MaiG([0, 0.25, 0.75, 1])
MaiG{Vector{Float64}}(3, [0.0, 0.25, 0.75, 1.0])
source