Calcular los índices de precios y de valor

Métodos de Laspeyres, Paasche y Fisher

library(readxl)
library(dplyr)
library(knitr)
library(kableExtra)

INDICE_DE_PRECIOS <- read_excel("C:/Users/gabri/Downloads/indices_precios.xlsx", 
                                 sheet = "Datos", skip = 2)

colnames(INDICE_DE_PRECIOS) <- c("Articulo", "P0", "Q0", "P1", "Q1", "P2", "Q2")

INDICE_DE_PRECIOS <- INDICE_DE_PRECIOS %>% 
  filter(!is.na(Articulo)) %>%
  mutate(
    P0 = as.numeric(P0),
    Q0 = as.numeric(Q0),
    P1 = as.numeric(P1),
    Q1 = as.numeric(Q1),
    P2 = as.numeric(P2),
    Q2 = as.numeric(Q2)
  )

calcular_indices <- function(P0, Q0, Pt, Qt, etiqueta = "") {
  
  P0Q0 <- sum(P0 * Q0)
  PtQ0 <- sum(Pt * Q0)
  PtQt <- sum(Pt * Qt)
  P0Qt <- sum(P0 * Qt)
  
  Laspeyres_P <- (PtQ0 / P0Q0) * 100
  Paasche_P   <- (PtQt / P0Qt) * 100
  Fisher_P    <- sqrt(Laspeyres_P * Paasche_P)
  
  Laspeyres_Q <- (P0Qt / P0Q0) * 100
  Paasche_Q   <- (PtQt / PtQ0) * 100
  Fisher_Q    <- sqrt(Laspeyres_Q * Paasche_Q)
  
  Indice_Valor <- (PtQt / P0Q0) * 100
  
  data.frame(
    Comparacion = etiqueta,
    Laspeyres_Precios = round(Laspeyres_P, 3),
    Paasche_Precios    = round(Paasche_P, 3),
    Fisher_Precios     = round(Fisher_P, 3),
    Laspeyres_Cantidad = round(Laspeyres_Q, 3),
    Paasche_Cantidad    = round(Paasche_Q, 3),
    Fisher_Cantidad     = round(Fisher_Q, 3),
    Indice_Valor        = round(Indice_Valor, 3)
  )
}

res_A1 <- calcular_indices(INDICE_DE_PRECIOS$P0, INDICE_DE_PRECIOS$Q0,
                            INDICE_DE_PRECIOS$P1, INDICE_DE_PRECIOS$Q1,
                            "Anio 1 vs Anio 0")

res_A2 <- calcular_indices(INDICE_DE_PRECIOS$P0, INDICE_DE_PRECIOS$Q0,
                            INDICE_DE_PRECIOS$P2, INDICE_DE_PRECIOS$Q2,
                            "Anio 2 vs Anio 0")

resultados <- bind_rows(res_A1, res_A2)

kable(resultados, 
      caption = "Indices de Precios y de Valor",
      align = "c",
      digits = 3) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    full_width = FALSE,
    position = "center"
  ) %>%
  row_spec(0, bold = TRUE, background = "#6AA84F", color = "white") %>%
  column_spec(1, bold = TRUE)
Indices de Precios y de Valor
Comparacion Laspeyres_Precios Paasche_Precios Fisher_Precios Laspeyres_Cantidad Paasche_Cantidad Fisher_Cantidad Indice_Valor
Anio 1 vs Anio 0 116.279 115.152 115.714 115.116 114.000 114.557 132.558
Anio 2 vs Anio 0 142.442 135.135 138.740 129.070 122.449 125.716 174.419

Gráfico de barras: Índices de CANTIDAD

Conceptos

Índice de Laspeyres: Mide el cambio de precios (o cantidades) usando como referencia fija las cantidades (o precios) del año base (Año 0). Es decir, responde: ¡¿cuánto costaría hoy la misma canasta que se compraba en el año base?. Tiende a sobreestimar el cambio real porque no considera que la gente ajusta sus consumos cuando los precios cambian (por ejemplo, comprando menos de lo que se encareció).

Índice de Paasche: Igual que Laspeyres, pero usa como referencia fija las cantidades (o precios) del año actual. Responde: ¿cuánto costaba en el año base la canasta que se compra hoy?. Tiende a subestimar el cambio real, porque ya incorpora el ajuste de consumo hacia los productos que subieron menos de precio.

Índice de Fisher: Es la media geométrica de Laspeyres y Paasche. Se considera el índice "ideal" porque corrige los sesgos de ambos (uno sobreestima, el otro subestima) y da una estimación más equilibrada y precisa del cambio real.

Índice de Valor: Mide el cambio total del valor (precio × cantidad) entre el año base y el año de comparación, sin separar cuánto se debe a precios y cuánto a cantidades — es el efecto combinado de ambos.

Interpretación

Año 1 vs Año 0

  • Precios (~115-116%): Los precios subieron en promedio entre un 15% y 16%. Laspeyres (116.28%) es levemente mayor que Paasche (115.15%), lo cual es esperable dado el sesgo de sobreestimación/subestimación explicado arriba. Fisher (115.71%) da la estimación más balanceada.
  • Cantidades (~114-115%): Las cantidades también aumentaron cerca de un 14-15%, es decir, hubo más volumen consumido/producido, no solo precios más altos.
  • Valor (132.56%): El valor total creció un 32.6%, resultado combinado de que subieron tanto precios como cantidades.

Año 2 vs Año 0

  • Precios (~135-142%): Los precios subieron con más fuerza: entre 35% y 42%. La diferencia entre Laspeyres (142.44%) y Paasche (135.14%) ya es más amplia que en el Año 1, lo que sugiere que la composición del consumo cambió más entre estos años. Fisher corrige esto con 138.74%.
  • Cantidades (~122-129%): Las cantidades crecieron entre 22% y 29%, en menor proporción que los precios.
  • Valor (174.42%): El valor total casi se duplicó, con un crecimiento del 74.4% frente al Año 0 — el efecto combinado de precios y cantidades creciendo a la vez.
Conclusión general:
  • Hay un crecimiento sostenido en precios y cantidades a lo largo de los tres años.
  • El aumento de precios se acelera entre Año 1 y Año 2 (de ~15% a ~35-42%).
  • La brecha entre Laspeyres y Paasche crece con el tiempo, señal de que la estructura de consumo cambió más notablemente en el segundo periodo.
  • Fisher es la medida más confiable en ambos casos por corregir los sesgos opuestos de Laspeyres y Paasche.