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)
| 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 |
Í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.