InflationFunctions

Documentation for InflationFunctions.

InflationFunctions.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-F: 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 MaiF.
  • Metodología MAI-FP: 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 MaiFP.
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)

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.

There are $n$ items in the CPI database of monthly price changes. If $p$ is the index of the desired quantile, the standard deviation is defined by s(x,p) = x <= p ? s1*n : s2*n and the smoothing function by f(x,p) = exp(-(x-p)^2 / s(x,p)^2).

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

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.

There are $n$ items in the CPI database of monthly price changes. If $p$ is the index of the desired quantile, the standard deviation is defined by s(x,p) = x <= p ? s1*n : s2*n and the smoothing function by f(x,p) = exp(-(x-p)^2 / s(x,p)^2).

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

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

Utilización

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

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

Ejemplo

julia> mtfn = InflationTrimmedMeanEq(25, 75.5)
(::InflationTrimmedMeanEq) (generic function with 5 methods)
julia> mtfn(gt00) # gt00 es de tipo VarCPIBase
120-element Vector{Float32}:
 1.3350569
 0.81459785
 0.5427902
 0.44377768
 0.3310551
 0.6161327
 ⋮
 0.284297
 0.20947386
 0.298732
 0.25540668
 0.2260508
 0.3456037
source
InflationFunctions.InflationTrimmedMeanEqMethod
InflationTrimmedMeanEq(l1::Real,l2::Real)

Nos permite utilizar recortes que no necesariamente son de tipos de punto flotante, como por ejemplo: enteros, fracciones, Float32 y Float64.

Ejemplo:

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

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

Utilización

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

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

source
InflationFunctions.InflationTrimmedMeanWeightedMethod
InflationTrimmedMeanWeighted(l1::Real,l2::Real)

Nos permite utilizar valores que no necesariamente son Float32, como enteros o Float64.

Ejemplo:

julia> mtfn = InflationTrimmedMeanWeighted(25,75.5)
(::InflationTrimmedMeanWeighted) (generic function with 5 methods)
source
InflationFunctions.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 (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 = 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.MaiFPType
MaiFP{P} <: AbstractMaiMethod

MaiFP(n::Int)
MaiFP(p::AbstractArray)

Tipo para englobar la metodología de cómputo de inflación subyacente MAI-FP, 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 = MaiFP(5)
MaiFP{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 = MaiFP([0, 0.25, 0.75, 1])
MaiFP{Vector{Float64}}(3, [0.0, 0.25, 0.75, 1.0])
source
InflationFunctions.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
CPIDataBase.measure_nameMethod
measure_name(inflfn::InflationDynamicExclusion)

Indica qué medida se utiliza para una instancia de una función de inflación.

Ejemplo

julia> dynExfn = InflationDynamicExclusion(2, 2)
julia> measure_name(dynExfn)
"Inflación de exclusión dinámica (2.0, 2.0)"
source
CPIDataBase.measure_nameMethod
measure_name(inflfn::InflationPercentileEq)

Indica qué medida se utiliza para una instancia de una función de inflación.

Ejemplo

julia> percEqfn = InflationPercentileEq(0.70)
julia> measure_name(percEqfn)
"Percentil equiponderado 70.0"
source
CPIDataBase.measure_nameMethod
measure_name(inflfn::InflationPercentileWeighted)

Indica qué medida se utiliza para una instancia de una función de inflación.

Ejemplo

julia> percfn = InflationPercentileWeighted(0.70)
julia> measure_name(percfn)
"Percentil ponderado 70.0"
source
CPIDataBase.measure_nameMethod
measure_name(inflfn::InflationTrimmedMeanEq)

Nos indica qué medida se utiliza para una instancia de una función de inflación.

Ejemplo:

julia> mtfn = InflationTrimmedMeanEq(15.5,75.5)
julia> measure_name(mtfn) 
"Media Truncada Equiponderada (15.5 , 75.5)"
source
CPIDataBase.measure_nameMethod
measure_name(inflfn::InflationTrimmedMeanWeighted)

Nos indica qué medida se utiliza para una instancia de una función de inflación.

Ejemplo:

julia> mtfn = InflationTrimmedMeanWeighted(15.5,75.5)
julia> measure_name(mtfn)
"Media Truncada Ponderada (15.5 , 75.5)"
source