Se simt că prețurile cresc mai mult decât spune IPC?

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

Prețurile simt că cresc mai mult decât spune IPC (Indicele prețurilor de consum)? Da.

Pentru 2025, IPC general a crescut cu 2,7% destul de moderat (IPC-U pentru toți consumatorii urbani, din decembrie până în decembrie). IPC măsoară modificarea prețului unui coș de bunuri pe opt categorii majore: alimente și băuturi, locuințe, îmbrăcăminte, transport, îngrijire medicală, recreere, educație și comunicare și altele, într-un număr mare de zone statistice metropolitane (MSA). În fiecare lună, colectorii de date Biroul de Statistică a Muncii colectează aproximativ 94.000 de prețuri. Pentru unele articole, prețurile sunt ajustate pentru a elimina efectul unei schimbări de calitate (de exemplu, Toyota Corolla de astăzi este o mașină mult diferită de cea de acum zece ani). Există indici separați pentru peste 200 de articole la nivel național și indici separați pentru cele opt categorii majore în funcție de MSA.

Bineînțeles, ceea ce contează este modificarea prețurilor la articolele pe care le cumpărați, și mai ales articolele pe care le cumpărați frecvent, cum ar fi mâncarea. Fiecare articol individual are propriile motive pentru modificările de preț – prețurile ouălor sunt afectate de gripa aviară, prețurile cafelei sunt afectate de condițiile meteorologice și geopolitice din alte țări etc. Acești factori sunt în afara controlului nostru.

Am fost interesat să compar modificările prețului alimentelor pentru articolele obișnuite achiziționate frecvent. Aceasta se bazează pe IPC pentru datele la nivel de țară din categorii precum ouăle. Bineînțeles că nu măsoare achiziția DVS. de ouă (cum ar fi marca magazinului, organic, mărime medie, alb, 12 număr, la CTown din Intercourse, Pennsylvania).

Am început cu valori de 11 ani din decembrie a zece categorii separate de alimente și, de asemenea, IPC-U general, ajustat sezonier. Valorile pe care le-am folosit sunt următoarele (deși înțeleg că valorile se schimbă, deoarece există modificări ale factorilor de ajustare sezonieră, ponderări etc.)

În scopuri de comparație, am setat toți cei unsprezece indici la o valoare de 100 în 2015 și i-am reprezentat pe un grafic cu linii. Valoarea fiecărui an este acum relativă la 2015.

Pe o bază de zece ani, carnea de vită, ouăle și salata verde sunt mai mari decât IPC general. Acei trei indici alimentari au cunoscut o mare volatilitate. Anul pandemic 2022 a fost anul cu cea mai mare creștere pentru multe alimente. Interesant este că prețurile la mere au scăzut!

Un alt mod de a privi acest lucru este să priviți graficele cu bare cu modificări procentuale. Iată grafice cu modificări procentuale din 2015 până în 2025, 2024 până în 2025 și 2021 până în 2022:

Pentru 2025, comparativ cu 2015, nu știam cât de mult au crescut prețurile pentru carnea de vită, salată verde și ouă.

Pentru 2025, comparativ cu 2024, creșterea prețurilor pentru carnea de vită, ouă și cafea a fost mult mai mare decât creșterea globală de 2,7% a IPC. Probabil că nu este o surpriză dacă sunteți membrul gospodăriei care face cumpărăturile.

Pentru 2022 față de 2021, creșterea tuturor alimentelor cu excepția cărnii de vită a depășit IPC general. Probabil ne amintim asta în anii pandemiei de Covid.

În lumea asigurărilor, bunurile și serviciile pentru care asigurările plătesc, de asemenea, au crescut cu mai mult decât IPC general. De exemplu, costurile de îngrijire medicală, costurile de întreținere și reparații auto și costurile de construcție și reparații au depășit constant IPC general. Așa că nu fi surprins să vezi că prețurile asigurărilor de sănătate, auto și caselor vor continua să crească.

Iată codul R:

library(readxl)
library(dplyr)
library(tidyr)
library(ggplot2)

df <- read_excel("C:/Users/Jerry/Desktop/R_files/CPI_10_years.xlsx")
print(df, n = Inf, width = Inf)

# 1. Convert data to 'long' format for easier plotting
df_long <- df %>%
  pivot_longer(cols = -Year, names_to = "Category", values_to = "Index")

# 2. Re-base every category so 2015 = 100
df_normalized <- df_long %>%
  group_by(Category) %>%
  mutate(Index_100 = (Index / Index(Year == 2015)) * 100) %>%
  ungroup()

# 3. Plot line graph "Race to the Top"
ggplot(df_normalized, aes(x = Year, y = Index_100, color = Category)) +
  geom_line(aes(size = Category == "Overall CPI"), show.legend = FALSE) +
  # Use subset to only label the last point (2025)
  geom_text(data = subset(df_normalized, Year == 2025), 
            aes(label = Category), 
            hjust = -0.1,  # Push text to the right of the point
            size = 4, fontface="bold",
            show.legend = FALSE) +
  # Fix X-Axis: No decimals, every year labeled
  scale_x_continuous(breaks = seq(2015, 2025, 1), limits = c(2015, 2027)) +
  # Highlight the Overall CPI in black/thicker line
  scale_size_manual(values = c("TRUE" = 2.0, "FALSE" = 0.8)) +
  scale_color_manual(values = c("Overall CPI" = "black", 
                                "Eggs" = "red", 
                                "Ground Beef" = "darkred",
                                "Apples" = "forestgreen",
                                "Milk" = "blue",
                                "Bread" = "orange",
                                "Coffee" = "brown",
                                "Lettuce" = "lightgreen",
                                "Soup" = "#008080",
                                "Breakfast Cereal" = "purple",
                                "Other Fresh Veg" = "gray")) +
  theme_minimal() +
  theme(
    legend.position = "none",        # Remove legend
    plot.title = element_text(face = "bold", size = 16), 
    axis.title = element_text(face = "bold"), 
    axis.text = element_text(face = "bold"),
    plot.margin = margin(r = 100),   # Add space on the right for labels
    panel.grid.minor = element_blank()
  ) +
  coord_cartesian(clip = 'off') +    # Prevent labels from being cut off
  labs(title = "Cumulative Food Price Changes (2015 = 100)",
       subtitle = "Food categories vs. Overall CPI Baseline",
       y = "Index (2015 = 100)",
       x = "Year")

#4 Plot bar graph with % changes
# filter data for start and end years 

plot_cpi_change <- function(data, start_yr, end_yr) {
  
  # 1. Prepare dynamic column names for the mutation step
  start_col <- paste0("Yr", start_yr)
  end_col <- paste0("Yr", end_yr)
  
  # 2. Data Processing
  df_bar <- data %>% 
    filter(Year %in% c(start_yr, end_yr)) %>%
    pivot_longer(cols = -Year, names_to = "Category", values_to = "Index") %>% 
    pivot_wider(names_from = Year, names_prefix = "Yr", values_from = Index) %>%
    # Use .data(()) to dynamically reference the columns created by pivot_wider
    mutate(Pct_Change = ((.data((end_col)) - .data((start_col))) / .data((start_col))) * 100) %>%
    mutate(Category = reorder(Category, -Pct_Change))
  
  # 3. Visualization
  ggplot(df_bar, aes(x = Category, y = Pct_Change, fill = Category)) +
    geom_bar(stat = "identity", color = "black", size = 0.5) +
    # Logic for text placement based on positive/negative change
    geom_text(aes(label = paste0(round(Pct_Change, 1), "%"),
                  vjust = ifelse(Pct_Change >= 0, -0.5, 1.5)), 
              fontface = "bold", size = 4.5) +
    scale_fill_manual(values = c("Overall CPI" = "black", "Soup" = "#008080", "Eggs" = "red", 
                                 "Ground Beef" = "darkred", "Apples" = "forestgreen", "Milk" = "blue", 
                                 "Bread" = "orange", "Coffee" = "brown", "Lettuce" = "lightgreen", 
                                 "Breakfast Cereal" = "purple", "Other Fresh Veg" = "gray")) +
    theme_minimal() + 
    theme(legend.position = "none", 
          plot.title = element_text(face = "bold", size = 18, hjust = 0.5), 
          axis.title = element_text(face = "bold", size = 14), 
          axis.text.x = element_text(face = "bold", size = 11, angle = 45, hjust = 1), 
          axis.text.y = element_text(face = "bold", size = 11), 
          panel.grid.major.x = element_blank()) +
    coord_cartesian(clip = 'off') +
    labs(title = paste("CPI FOOD PRICE CHANGES (", start_yr, "TO", end_yr, ")"), 
         y = "PERCENT CHANGE (%)", x = "CATEGORY")
}

plot_cpi_change(df, 2015, 2025)
plot_cpi_change(df, 2024, 2025)
plot_cpi_change(df, 2021, 2022)

Sfârşit

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.