1 votos

¿Se puede calcular el PIB real global utilizando el PIB nominal y la tasa de inflación? ¿En caso afirmativo, cuál es el error?

Estoy intentando calcular (en R) el PIB mundial real utilizando lo que asumo es el PIB nominal del Banco Mundial y lo que solo puedo identificar como la tasa de inflación, también del Banco Mundial.

Desafortunadamente, no logro obtener resultados razonables usando mi método de cálculo y no puedo identificar la causa específica:

  1. Los datos de inflación no están destinados a utilizarse de esta manera.
  2. He cometido un error lógico o matemático.

La forma más lógica (para mí) de hacer esto es calcular el producto acumulado de todas las tasas de inflación, luego normalizarlos en torno al año base elegido.

adjust_for_inflation <- function(nominal_gdp, inflation_rate, base_year) {
  # Obtener los índices de tiempo
  time_indices <- time(nominal_gdp)

  # Calcular la tasa de inflación acumulada hasta cada año
  cumulative_inflation <- cumprod(1 + inflation_rate / 100)

  # Encontrar la tasa de inflación acumulada para el año base
  base_year_index <- which(time_indices == base_year)
  base_year_cumulative_inflation <- cumulative_inflation[base_year_index]

  # Normalizar las tasas de inflación acumuladas para que la tasa del año base sea 1
  normalized_cumulative_inflation <- cumulative_inflation / base_year_cumulative_inflation

  # Ajustar el PIB nominal al PIB real en función de la inflación acumulada normalizada
  real_gdp <- nominal_gdp / normalized_cumulative_inflation

  # Declaraciones de impresión para depuración
  print(data.frame(Año = time_indices, PIB_Nominal = nominal_gdp, Tasa_de_Inflación = inflation_rate, Inflación_Acumulada = cumulative_inflation, Inflación_Acumulada_Normalizada = normalized_cumulative_inflation, PIB_Real = real_gdp))

  # Devolver el PIB real como un objeto ts con los mismos índices de tiempo
  real_gdp_ts <- ts(real_gdp, start=start(nominal_gdp), frequency=frequency(nominal_gdp))

  return(real_gdp_ts)
}

Esto parece estar bien, y al probarlo con algunos datos inventados, produce exactamente los resultados que pretendía.

PIB_nominal <- ts(c(100, 100, 100, 100, 100), start=2018, frequency=1)
tasa_de_inflación <- ts(c(10, 10, 10, 10, 10), start=2018, frequency=1)
año_base <- 2020
PIB_ajustado <- adjust_for_inflation(PIB_nominal, tasa_de_inflación, año_base)

  Año PIB_Nominal Tasa_de_Inflación Inflación_Acumulada Inflación_Acumulada_Normalizada  PIB_Real
1 2018         100               10             1.10000                      0.8264463 121.00000
2 2019         100               10             1.21000                      0.9090909 110.00000
3 2020         100               10             1.33100                      1.0000000 100.00000
4 2021         100               10             1.46410                      1.1000000  90.90909
5 2022         100               10             1.61051                      1.2100000  82.64463

Sin embargo, al insertar los datos del Banco Mundial, el resultado indica básicamente que el PIB real se ha estancado durante las últimas 4 décadas

PIB_nominal_sin_procesar <- ts(t(read_excel('world_bank_nominal.xls', col_names = FALSE)), start=1960)[,1]
PIB_nominal <- window(PIB_nominal_sin_procesar , start = 1981)
tasa_de_inflación <- ts(t(read_excel("world_bank_inflation_rate.xlsx", col_names = FALSE))[,1], start=1981)
año_base <- 2022

PIB_ajustado <- adjust_for_inflation(PIB_nominal, tasa_de_inflación, año_base)

plot.ts(PIB_ajustado/10^9, ylim = c(0,max(PIB_ajustado/10^9))*1.1)

Enlace al gráfico

Obviamente, esto está mal y no sirve, sin embargo, sinceramente no puedo averiguar qué hice mal. También intenté un enfoque de suma acumulativa inflación_acumulada <- 1 + cumsum(tasa_de_inflación / 100) y tiene resultados que parecen más racionales, pero no puedo justificar por qué sería una suma acumulativa en lugar de porcentajes que se van componiendo.

0voto

Matthias Benkard Puntos 11264

La inflación no está destinada a ser utilizada de esa manera. Si desea calcular el PIB real, necesita utilizar el deflactor o el IPC o alguna medida del nivel de precio la inflación mide el cambio en el nivel de precios.

Lo que necesita es tomar el PIB nominal y dividirlo por el deflactor o el índice de precios (que también debe dividirse por 100). Por lo tanto, querrá usar o bien $rGDP = nGDP/Def$ o $ rGDP = nGDP/(CPI/100)$.

La inflación se define como un cambio positivo en el IPC, $\pi = (CPI_t=CPI_{t-1})/CPI_{t-1}$ no se puede calcular el IPC a partir de los datos de inflación a menos que se conozca el IPC al menos en un año y si se conoce, lo más probable es que tenga un conjunto de datos del IPC para otros años. Sin embargo, me sorprendería mucho si el Banco Mundial no tuviera datos para el IPC mundial o el deflactor. Debería buscarlo.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X