1. Introducción

El Indicador de Tamaño Económico, desarrollado por la Secretaría de Demarcación y Organización Territorial, permite la incorporación de una variable de representación de la dinámica económica local como insumo relevante para el análisis de Jerarquización de centros y núcleos poblados en el marco De los estudios de Diagnóstico y Zonificación (EDZ).

2. Objetivo

Obtener un indicador de productividad económica a nivel subnacional mediante un método de estimación indirecta Del Producto Bruto Interno (PBI).

3. Supuestos

El método de estimación indirecta implica el uso de variables proxy, un método de escalonamiento (Fórmula adaptada de Geary & Stark, 2002) y la adopción de una función cúbica de producción (Método de Seminario & Palomino, 2022), bajo los siguientes supuestos:

4. Limitaciones

El indicador está construido sobre la base de datos espaciales en una sola temporalidad, tomando como año base el 2017. La selección Del año base responde a las fuentes de datos oficiales de ingresos y población, siendo necesario replicar el modelo ante actualizaciones futuras de las fuentes de datos.

5. Metodología

La estimación del PBI se basa en la metodología de Seminario y Palomino (2022) el cual tiene como objetivo proponer una metodología alternativa para etimar el PIB a nivel subnacional (provincia, distrital y hasta centros poblados) utilizando información de censos y encuestas, estadísticas de cuentas nacionales y datos satelitales de luminocidad analizándolo en un periodo de 1993-2018 con el cual pueden brindar un análisis de las tendencias recientes de desarrollo regional en el Perú.Sin embargo, para los fines del presente estudio, se realizó una adaptación a la metodología para que sea aplicable solo a un año de análisis 2017, que es el año del último censo.

5.1. Estructura metodológica



Figura 1: Proceso para calcular el PBI subnacional)
Fuente: Elaboración propia



  1. Obtención de los Datos de Luminosidad, Ingresos y Densidad Poblacional.
  2. Aplicación de la fórmula adaptada de Geary & Stark, para la estimación Del PBI provincial, utilizando el proxy Ingresos de Hogares.
  3. Aplicación de la fórmula de producción cúbica a nivel distrital, para la obtención de un índice de productividad a nivel distrital.
  4. Integración Del PBI estimado a nivel provincial, con el Índice de productividad a nivel distrital, para la obtención Del PIB estimado a nivel distrital.
  5. Aplicación de la fórmula adaptada de Geary & Stark, para la estimación Del PBI de Centros Poblados, utilizando el proxy de Población.

5.2. Variables

  • PBI: Indicador que mide el comportamiento de la economía. Se define como el valor total de los bienes y servicios generados en el territorio económico durante un perioro de tiempo, este indicador se encuentra a valores constantes.El PBI departamental se obtiene del INEI (2017).

  • Datos de luminosidad: se obtuvo partir de los datos de Day/Night Band (DNB) del instrumento Visible Infrared Imaging Radiometer Suite (VIIRS), estos datos son mensuales por lo cual se necesita calcular el promedio anual 2017.

  • Densidad Poblacional: Cantidad de población por kilómetro cuadrado (hab/km²) a nivel distrital, obtenido Del Censo Nacional de Población y Vivienda, realizado por el INEI (2017).

  • Población: Cantidad de habitantes que pertenecen a un centros poblado, obtenido Del Censo Nacional de Población y Vivienda, realizado por el INEI (2017).

  • Ingresos de Hogares: Estimación Del Promedio de ingresos de los hogares a nivel provincial, utilizado como insumo en la construcción Del IDH subnacional realizado por PNUD (2017).

5.3. Desarrollo metodológico

Paso 1: Preparación de insumos para la estimación del PBI subnacional

Primero, se obtiene los datos satelitales de luminosidad y densidad poblacional a escala distrital al año 2017 (Ver Figura 1 y 2).



Figura 1: Descarga del promedio anual de la luminosidad 2017)
Fuente: Google Earth Engine



Figura 2: Luminocidad al año 2017 , Figura 3: Densidad poblacional distrital 2017)
Fuente: Elaboración propia en base a VIIRS e INEI 2017



Paso 2: Estimación del PBI provincial con el método adaptado de Geory y Stark (2002)

Con la fórmula adaptada de Geory y Stark (2002)


Fórmula (1) de Geory y Stark (2002):

\[ y_{i,k,t_0} = y_{k,t_0} \cdot \frac{I_{i,k,t_0}}{\sum_{j=1}^{N} I_{j,k,t_0}} \] donde:

  • \(y_{i,k,t_0}\) corresponde al PIB estimado de la región territorial menor \(i\) (provincia o distrito) que pertenece a la región territorial mayor \(k\) en el año base \(t_0\).

  • \(y_{k,t_0}\) representa el PIB total de la región territorial mayor \(k\) (departamento o provincia, según el nivel de análisis) en el año base \(t_0\), obtenido a partir de información oficial.

  • \(I_{i,k,t_0}\) denota el ingreso de la región territorial menor \(i\) que pertenece a la región territorial mayor \(k\) en el año base \(t_0\).

  • \(\sum_{j=1}^{N} I_{j,k,t_0}\) corresponde a la suma total de los ingresos de todas las regiones territoriales menores \(j\) que pertenecen a la región territorial mayor \(k\) en el año base \(t_0\).

  • \(i\) identifica a la región territorial menor (provincia o distrito).

  • \(k\) identifica a la región territorial mayor (departamento o provincia).

  • \(t_0\) corresponde al año base del análisis.

  • \(N\) representa el número total de regiones territoriales menores que conforman la región territorial mayor \(k\).



Fórmula operativizada:

\[ PBI^{final}_{i,k} = PBI^{oficial}_{k} \cdot \frac{Ingreso_{i,k}}{\sum_{j=1}^{N_k} Ingreso_{j,k}} \]



Paso 3: Cálculo del índice del PBI distrital utilizando la función cúbica de Seminario y Palomino (2022)


Función de Seminario y Palomino (2022):

\[ \ln(\hat{y}_{i,k,t}) = \hat{\alpha}_0 + \hat{\alpha}_1 \ln(L_{i,k,t}) + \hat{\alpha}_2 \ln(L_{i,k,t})^2 + \hat{\alpha}_3 \ln(L_{i,k,t})^3 + \hat{\alpha}_4 \ln(D_{i,k,t}) \]


donde:

  • \(\ln(\hat{y}_{i,k,t})\) es el logaritmo natural del PIB estimado de la región territorial menor \(i\) (provincia o distrito) que pertenece a la región territorial mayor \(k\) en el período \(t\).

  • \(\hat{\alpha}_0\) es el término constante de la función de producción estimada.

  • \(\hat{\alpha}_1\), \(\hat{\alpha}_2\) y \(\hat{\alpha}_3\) son los coeficientes asociados al nivel de luminosidad nocturna promedio y a sus términos cuadrático y cúbico, respectivamente.

  • \(\hat{\alpha}_4\) es el coeficiente asociado a la densidad poblacional.

  • \(L_{i,k,t}\) representa el nivel de luminosidad nocturna promedio de la región territorial menor \(i\) que pertenece a la región territorial mayor \(k\) en el período \(t\).

  • \(D_{i,k,t}\) representa la densidad poblacional de la región territorial menor \(i\) que pertenece a la región territorial mayor \(k\) en el período \(t\).

  • \(i\) denota la región territorial menor (provincia o distrito).

  • \(k\) denota la región territorial mayor (departamento o provincia, según el nivel de análisis).

  • \(t\) corresponde al período de análisis (año base).



Los coeficientes asociados a la función cúbica son recogidos del resultado de la regresión elaborada por Seminario y Palominio (2022) como se puede observar en la Tabla 1.



Tabla 1: Estimación de una función cúbica de producción a nivel de distritos) Fuente: Seminario y Palomino (2022)



Función operativizada:

\[ \ln(PBI^{\text{índice distrital}}_{i,k,t}) = \hat{\alpha}_0 + 0.3813 \, \ln(L_{i,k,t}) + 0.0586 \, \ln(L_{i,k,t})^2 + 0.0025 \, \ln(L_{i,k,t})^3 + 0.2251 \, \ln(D_{i,k,t}) \]



Paso 4: Estimación del PBI distrital mediante escalonamiento


Fórmula de escalonamiento distrital:

\[ PBI^{final dist}_{i,k} = PBI^{estimado}_{k} \cdot \frac{PBI^{\text{índice est prov}}_{i,k}}{\sum_{j=1}^{N_k} PBI^{\text{índice est prov}}_{j,k}} \]


Paso 5: Estimación del PBI CCPP con la fórmula de escalonamiento de Seminario y Palomino (2022)

Fórmula de escalonamiento de Seminario y Palomino (2022):

\[ y^{cp}_{i,k,t_0} = y^{r,d}_{k,t_0} \cdot \frac{p^{cp}_{i,k,t_0}}{\sum_{j=1}^{N} p^{cp}_{j,k,t_0}} \]

Operativización de la fórmula:

\[ PBI^{final,cp}_{i,k} = PBI^{final}_{k} \cdot \frac{Pob^{cp}_{i,k}}{\sum_{j=1}^{N_k} Pob^{cp}_{j,k}} \]

donde:

\(PBI^{final,cp}_{i,k}\) corresponde al PBI final del centro poblado \(i\) perteneciente al distrito \(k\), \(PBI^{final}_{k}\) representa el PBI final del distrito \(k\), y \(Pob^{cp}_{i,k}\) denota la población del centro poblado \(i\) según el Censo de Población.

6. Resultados

6.1. Cálculo del PIB distrital


Cargar librerías

library(terra)
library(sf)
library(dplyr)
library(exactextractr)
library(units)

Cargar archivos

#cARGAR LUMINOCIDAD - PROMEDIO 2017
viirs <- rast("viirs_2017_avg_rad.tif") 
names(viirs) <- "avg_rad"

#CARGAR DENSIDAD POBLACIONAL DISTRITAL
dendist_pob <- st_read("Distritos_Densidad_18S/Distritos_Densidad_18S.shp", 
                    stringsAsFactors=TRUE, 
                    quiet = TRUE)
# Raster en UTM 18S (usa bilinear para variables continuas como radiancia)
viirs_utm <- project(viirs, "EPSG:32718", method = "bilinear")
dendist_pob <- st_make_valid(dendist_pob)

Revisar CRS y valores

crs(viirs)
st_crs(dendist_pob)

Extraer VIIRS por distrito

# Promedio de radiancia dentro de cada distrito
dendist_pob$viirs_mean <- exactextractr::exact_extract(
  viirs_utm,
  dendist_pob,
  fun = "mean"
)

# Revisión rápida
summary(dendist_pob$viirs_mean)
# Revisión de nombres
names(dendist_pob)
##  [1] "gid"        "ubigeo"     "nombdep"    "nombprov"   "nombdist"  
##  [6] "capital"    "region_nat" "tipo_norma" "numero"     "fecha_fin" 
## [11] "comentario" "Total_Pob"  "area"       "perimeter"  "Area_KM2"  
## [16] "Densidad"   "geometry"   "viirs_mean"

Coeficientes según Seminario y Palomino (2022)

# Coeficientes (columna 3)
a0 <- 0        # intercepto (no reportado → se calibra después)
a1 <- 0.3813   # ln(luz)
a2 <- 0.0586   # ln(luz)^2
a3 <- 0.0025   # ln(luz)^3
a4 <- 0.2251   # ln(densidad)

Preparar variables según función cúbica del paper Seminario y Palomino (2022)

dendist_pob <- dendist_pob %>%
  mutate(
    # Limpiar valores no válidos
    viirs_mean = ifelse(viirs_mean <= 0 | is.na(viirs_mean), NA_real_, viirs_mean),
    dens_pop   = ifelse(Densidad   <= 0 | is.na(Densidad),   NA_real_, Densidad),

    # Logs
    ln_luz  = log(viirs_mean),
    ln_dens = log(dens_pop),

    # Potencias de la luminosidad
    ln_luz2 = ln_luz^2,
    ln_luz3 = ln_luz^3,

    # Función de producción PIB (Seminario & Palomino)
    ln_pib_hat = a0 +
                 a1 * ln_luz +
                 a2 * ln_luz2 +
                 a3 * ln_luz3 +
                 a4 * ln_dens,

    pib_hat = exp(ln_pib_hat)
  )

# Revisión rápida
summary(dendist_pob$pib_hat)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
##   0.3300   0.9342   1.2098   3.8996   1.6529 168.9626        1

Verificación del índice del PIB distrital estimado

dendist_pob %>%
  st_drop_geometry() %>%
  arrange(desc(pib_hat)) %>%
  select(nombdist, pib_hat) %>%
  head(10)

Verificación del índice del PIB distrital estimado en relación a la densidad y luminocidad

dendist_pob %>%
  st_drop_geometry() %>%
  arrange(desc(pib_hat)) %>%
  select(nombdist, viirs_mean, Densidad, pib_hat) %>%
  head(15)

Exportar el índice del PIB estimado provincial

getwd()

st_write( dendist_pob, “PIB_distrital_VIIRS_2017.gpkg”, delete_dsn = TRUE )


6.2.Cálculo del índice del PIB provincial (OPCIONAL) no es necesario



Cargar archivos

#CARGAR DENSIDAD POBLACIONAL DISTRITAL
denprov_pob <- st_read("Provincias_Densidad_18S/Provincias_Densidad_18S.shp", 
                    stringsAsFactors=TRUE, 
                    quiet = TRUE)
denprov_pob <- st_make_valid(denprov_pob)
## Revisar CRS y valores
st_crs(denprov_pob)

Extraer VIIRS por distrito

# Promedio de radiancia dentro de cada distrito
denprov_pob$viirs_mean <- exactextractr::exact_extract(
  viirs_utm,
  denprov_pob,
  fun = "mean"
)

# Revisión rápida
summary(denprov_pob$viirs_mean)
names(denprov_pob)
##  [1] "gid"        "iddpto"     "nombdep"    "idprov"     "nombprov"  
##  [6] "capital"    "tipo_norma" "numero"     "fecha"      "Total_Pob" 
## [11] "area"       "perimeter"  "Area_KM2"   "Densidad"   "geometry"  
## [16] "viirs_mean"

Coeficientes según Seminario y Palomino (2022)

# Coeficientes (columna 3)
b0 <- 0        # intercepto (no hay/sabemos)
b1 <- 0.7249   # ln(luz)
b2 <- 0.0881   # ln(luz)^2
b3 <- 0.0042   # ln(luz)^3
b4 <- 0.0756   # ln(densidad)

Preparar variables según función cúbica del paper Seminario y Palomino (2022)

# Preparar variables según función cúbica del paper

denprov_pob <- denprov_pob %>%
  mutate(
    # Limpiar valores no válidos
    viirs_mean = ifelse(viirs_mean <= 0 | is.na(viirs_mean), NA_real_, viirs_mean),
    densprov_pop   = ifelse(Densidad   <= 0 | is.na(Densidad),   NA_real_, Densidad),

    # Logs
    ln_luz  = log(viirs_mean),
    ln_dens = log(densprov_pop),

    # Potencias de la luminosidad
    ln_luz2 = ln_luz^2,
    ln_luz3 = ln_luz^3,

    # Función de producción PIB (Seminario & Palomino)
    ln_pibprov_est = b0 +
                 b1 * ln_luz +
                 b2 * ln_luz2 +
                 b3 * ln_luz3 +
                 b4 * ln_dens,

    pibprov_est = exp(ln_pibprov_est)
  )

# Revisión rápida
summary(denprov_pob$pibprov_est)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.3026  0.4561  0.5215  1.2089  0.6185 95.4212

Verificación del índice del PIB provincial estimado

denprov_pob %>%
  st_drop_geometry() %>%
  arrange(desc(pibprov_est)) %>%
  select(nombprov, pibprov_est) %>%
  head(10)

Verificación del índice del PIB provincial estimado en relación a la densidad y luminocidad

denprov_pob %>%
  st_drop_geometry() %>%
  arrange(desc(pibprov_est)) %>%
  select(nombprov, viirs_mean, Densidad, pibprov_est) %>%
  head(15)

Exportar el índice del PIB estimado provincial

getwd()

st_write( denprov_pob, “PIB_prov_VIIRS_2017.gpkg”, delete_dsn = TRUE )


6.3.CALCULAR EL PIB DISTRITAL (ESTIMADO)

Este cálculo se realiza a partir del siguiente escalonamiento:

Paso 1: departamento - > provincia: con ingresos



PIBe_provincial (1) = PIBdepartamental * Ingresos (1) / Sumatoria (Ingresos 1->n)



Paso 2: provincia - > distritos

Con el PIB distrital estimado (el índice) y el PIB escalonado provincial que se hizo previamente con ingresos

PIBe_distrital (1) = PIBe_provincia * PIBi_est^/ sumatoria (PIBi_est^ 1->n)



Cargar el PIB estimado a nivel provincial (PIBe_Prov)

PIBe_Prov <- st_read("Provincias_PIBestimado/Provincias_PIBestimado.shp", 
                    stringsAsFactors=TRUE, 
                    quiet = TRUE)

PIBi_distrital <- st_read("PIB_distrital_VIIRS_2017.gpkg", 
                    stringsAsFactors=TRUE, 
                    quiet = TRUE)

Crear un nuevo campo de idprov

PIBi_distrital02 <- PIBi_distrital %>% 
  left_join(PIBe_Prov %>% 
              st_drop_geometry() %>%
              select(nombprov, idprov, PIBe_Prov),
                    by = "nombprov"
            )

Crear la sumatoria de todos los PIBi_est distritales que se encuentran en una misma provincia

PIBi_distrital02 <- PIBi_distrital02 %>% 
  group_by(idprov) %>%
  mutate(
    PIBest_sumdist = sum(PIBi_est)
  )

Calcular el PIB distrital

PIBi_distrital02 <- PIBi_distrital02 %>%
  mutate(
    PIB_dist = PIBe_Prov * PIBi_est / PIBest_sumdist
)

Descargar información del PIB estimado distrital

getwd()

st_write( PIBi_distrital02, “PIB_distrital.gpkg”, delete_dsn = TRUE )


6.4.Cálculo del PIB estimado CCPP (ESTIMADO)

Escalonamiento de DISTRITO -> CENTROS POBLADOS>150hab



Cargar la base de datos de centros poblados

ccpp <- st_read("CCPP_2017_HIBRIDO/CCPP_2017_HIBRIDO.shp", 
                    stringsAsFactors=TRUE, 
                    quiet = TRUE)

Añadir el campo de UBIGEO correspondiente al nivel distrital

ccpp02 <- ccpp %>% 
  left_join(PIBi_distrital02 %>% 
              st_drop_geometry() %>%
              select(nombdist, ubigeo, PIB_dist),
                    by = "ubigeo"
            )

Crear la sumatoria de todos los PIBi_est distritales que se encuentran en una misma provincia

ccpp02 <- ccpp02 %>% 
  group_by(ubigeo) %>%
  mutate(
    POB_sum = sum(POB)
  )

Calcular el PIB distrital

ccpp02 <- ccpp02 %>%
  mutate(
    PIB_ccpp = PIB_dist * POB / POB_sum
)

View(ccpp02)

Descargar información del PIB estimado a nivel de CCPP

getwd()

st_write( ccpp02, “PIB_ccpp.gpkg”, delete_dsn = TRUE )