La productividad laboral es un indicador clave para evaluar el desempeño económico de los países, ya que refleja la eficiencia con la que se utilizan los recursos humanos en la generación de bienes y servicios. En este sentido, el GDP per person employed (constant 2017 PPP $) permite aproximar el valor agregado que produce cada trabajador, facilitando comparaciones entre economías con diferentes niveles de desarrollo y estructuras productivas. Desde esta perspectiva, la productividad no depende únicamente de la cantidad de trabajadores, sino también de la forma en que estos se distribuyen entre los distintos sectores económicos, como la industria y los servicios, los cuales presentan diferencias importantes en términos de tecnología, capital y generación de valor. Asimismo, las condiciones del mercado laboral, como el nivel de trabajo independiente y la participación laboral masculina y femenina, pueden influir en este comportamiento.
En este contexto, el presente trabajo tiene como objetivo estimar y analizar un modelo de regresión lineal múltiple que permita explicar la productividad laboral en función de la estructura sectorial del empleo y de las condiciones laborales, utilizando información correspondiente al año 2017 proveniente de la base de datos World Development Indicators. A partir de este modelo, se busca identificar la relación entre dichas variables, así como evaluar la dirección e intensidad de su impacto sobre la productividad laboral, con el fin de aportar evidencia sobre los factores que influyen en el desempeño económico de los países.
library(tidyverse)
library(readxl)
library(ggplot2)
library(ggcorrplot)
library(plotly)
library(knitr)
library(car)
library(googlesheets4)
library(kableExtra)
BD <- read_excel("Taller_1_Data.xlsx")
Se extrajeron los datos que están contenidos en el año 2017.
BD_2017 <- BD %>%
filter(Time == "2017")
Luego se seleccionaron variables relacionadas con la estructura del empleo y su posible impacto en la productividad:
Tabla1 <- BD_2017 %>%
select(
`Time`, `Country Name`,
GDP = `GDP per person employed (constant 2017 PPP $) [SL.GDP.PCAP.EM.KD]`,
industria= `Employment in industry (% of total employment) (modeled ILO estimate) [SL.IND.EMPL.ZS]`,
servicios= `Employment in services (% of total employment) (modeled ILO estimate) [SL.SRV.EMPL.ZS]`,
trabajadores_ind= `Self-employed, total (% of total employment) (modeled ILO estimate) [SL.EMP.SELF.ZS]`,
trabajadores_fem= `Employment to population ratio, 15+, female (%) (national estimate) [SL.EMP.TOTL.SP.FE.NE.ZS]`,
trabajadores_mas= `Employment to population ratio, 15+, male (%) (modeled ILO estimate) [SL.EMP.TOTL.SP.MA.ZS]`
)
Partiendo de esto, realizaremos el Análisis descriptivo de las variables:
data <- read_sheet("https://docs.google.com/spreadsheets/d/1kANd20rvpMDPzkOkw0X1BmBwveMgJ49U8Lqb0v8v0qw/edit?gid=0#gid=0")
data %>%
head() %>%
kable(caption = "Tabla 1") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "bordered"))
| VARIABLES | DESCRIPCIÓN | TIPO DE VARIABLE | NOMBRE DE LA VARIABLE EN R |
|---|---|---|---|
| Employment in industry (% of total employment) (modeled ILO estimate) [SL.IND.EMPL.ZS] | Indica el porcentaje de trabajadores empleados en el sector industrial, que incluye manufactura, construcción y actividades productivas. | Cuantitativa | industria |
| Employment to population ratio, 15+, famale (%) (modeled ILO estimate) [SL.EMP.TOTL.SP.FA.ZS] | Representa el porcentaje de mujeres mayores de 15 años que se encuentran empleadas en relación con la población total femenina en ese grupo de edad. | Cuantitativa | trabajadores_fem |
| Employment in services (% of total employment) (modeled ILO estimate) [SL.SRV.EMPL.ZS] | Mide el porcentaje de la población ocupada en el sector de servicios, como comercio, transporte, educación, salud y actividades financieras. | Cuantitativa | servicios |
| Self-employed, total (% of total employment) (modeled ILO estimate) [SL.EMP.SELF.ZS] | Representa el porcentaje de trabajadores que se encuentran en condición de empleo independiente o por cuenta propia, sin relación laboral formal con un empleador. | Cuantitativa | trabajadores_ind |
| Employment to population ratio, 15+, male (%) (modeled ILO estimate) [SL.EMP.TOTL.SP.MA.ZS] | Indica el porcentaje de hombres mayores de 15 años que se encuentran empleados en relación con la población total masculina en ese grupo de edad. | Cuantitativa | trabajadores_mas |
| Región | Demuestra una clasificación de los países según su ubicación geográfica dividiéndose en:Latinoamérica y el caribe, Europa y AsDPia central. | Categórica | region |
Para poder clasificar los países en las regiones de Latinoamérica y el Caribe, Europa y Asia Central, primero fue necesario identificar qué países pertenecen a cada una de estas zonas. Para ello se realizó una búsqueda y se tomó como referencia la información disponible en el sitio web de ThoughtCo, donde se listan oficialmente los países por región.
Con base en esa información, se creó en R una nueva columna llamada Región utilizando la función mutate(). Posteriormente, se empleó case_when() para asignar a cada país el nombre de la región correspondiente. De esta manera, en lugar de mostrar el nombre individual de cada país, la base de datos queda organizada por la región a la que pertenece cada uno.
CG <- Tabla1 %>%
mutate(Region = case_when(
`Country Name` %in% c("Argentina","Bolivia","Brazil","Chile","Colombia","Costa Rica","Cuba",
"Dominican Republic","Ecuador","El Salvador","Guatemala","Haiti",
"Honduras","Jamaica","Mexico","Nicaragua","Panama","Paraguay",
"Peru","Uruguay","Venezuela") ~ "Latinoamérica y el Caribe",
`Country Name` %in% c("Germany","France","Spain","Italy","United Kingdom","Netherlands",
"Belgium","Sweden","Norway","Finland","Denmark","Portugal",
"Austria","Switzerland","Poland","Czech Republic","Greece",
"Hungary","Ireland","Romania","Bulgaria","Serbia","Croatia",
"Slovakia","Slovenia","Ukraine","Russia") ~ "Europa",
`Country Name` %in% c("Kazakhstan","Uzbekistan","Turkmenistan","Kyrgyz Republic","Tajikistan") ~ "Asia Central",
TRUE ~ "Otros"
))
CG$Region <- as.factor(CG$Region)
Con el fin de analizar los determinantes de la productividad laboral, se estimó un modelo de regresión lineal múltiple utilizando información correspondiente al año 2017. La variable dependiente del modelo es el GDP per person employed (constant 2017 PPP $), la cual mide la productividad promedio de los trabajadores en cada país. Como variables explicativas, se incluyeron indicadores relacionados con la estructura sectorial del empleo y las condiciones del mercado laboral.
De esta forma, el modelo estimado puede expresarse como:
\[ GDP_i = \beta_0 + \beta_1 \, servicios_i + \beta_2 \, industria_i + \beta_3 \, trabajadores\_mas_i + \beta_4 \, trabajadores\_fem_i + \beta_5 \, trabajadores\_ind_i + \gamma_1 \, Region_{America,i} + \gamma_2 \, Region_{Asia,i} + \gamma_3 \, Region_{Europa,i} + \varepsilon_i \]
Donde:
tabla_industria <- CG %>%
summarize(
Promedio = mean(industria, na.rm = TRUE),
Mediana = median(industria, na.rm = TRUE),
Minimo = min(industria, na.rm = TRUE),
Maximo = max(industria, na.rm = TRUE),
Desv = sd(industria, na.rm = TRUE)
)
tabla_industria %>%
kable(caption = "Tabla 2: Estadísticas descriptivas de Industria") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| Promedio | Mediana | Minimo | Maximo | Desv |
|---|---|---|---|---|
| 21.82012 | 20.075 | 6.72 | 38.73 | 6.04504 |
tabla_servicios <- CG %>%
summarize(
Promedio = mean(servicios, na.rm = TRUE),
Mediana = median(servicios, na.rm = TRUE),
Minimo = min(servicios, na.rm = TRUE),
Maximo = max(servicios, na.rm = TRUE),
Desv = sd(servicios, na.rm = TRUE)
)
tabla_servicios %>%
kable(caption = "Tabla 3: Estadísticas descriptivas de Servicios") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| Promedio | Mediana | Minimo | Maximo | Desv |
|---|---|---|---|---|
| 65.53707 | 67.105 | 37.89 | 87.85 | 11.49462 |
tabla_ind <- CG %>%
summarize(
Promedio = mean(trabajadores_ind, na.rm = TRUE),
Mediana = median(trabajadores_ind, na.rm = TRUE),
Minimo = min(trabajadores_ind, na.rm = TRUE),
Maximo = max(trabajadores_ind, na.rm = TRUE),
Desv = sd(trabajadores_ind, na.rm = TRUE)
)
tabla_ind %>%
kable(caption = "Tabla 4: Estadísticas descriptivas de Trabajadores Independientes") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| Promedio | Mediana | Minimo | Maximo | Desv |
|---|---|---|---|---|
| 26.02402 | 23.905 | 4.37 | 73.7 | 15.76061 |
tabla_mas <- CG %>%
summarize(
Promedio = mean(trabajadores_mas, na.rm = TRUE),
Mediana = median(trabajadores_mas, na.rm = TRUE),
Minimo = min(trabajadores_mas, na.rm = TRUE),
Maximo = max(trabajadores_mas, na.rm = TRUE),
Desv = sd(trabajadores_mas, na.rm = TRUE)
)
tabla_mas %>%
kable(caption = "Tabla 5: Estadísticas descriptivas de Trabajadores Masculinos +15") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| Promedio | Mediana | Minimo | Maximo | Desv |
|---|---|---|---|---|
| 63.85882 | 63.5015 | 42.843 | 82.961 | 8.787615 |
tabla_trabajadores_fem <- CG %>%
summarize(
Promedio = mean(trabajadores_fem, na.rm = TRUE),
Mediana = median(trabajadores_fem, na.rm = TRUE),
Minimo = min(trabajadores_fem, na.rm = TRUE),
Maximo = max(trabajadores_fem, na.rm = TRUE),
Desv = sd(trabajadores_fem, na.rm = TRUE)
)
tabla_trabajadores_fem %>%
kable(caption = "Tabla 6: Estadísticas descriptivas de Trabajadoras Femeninas +15") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| Promedio | Mediana | Minimo | Maximo | Desv |
|---|---|---|---|---|
| 48.47843 | 50.415 | 10.93 | 76.75 | 9.932112 |
tabla_region <- CG %>%
group_by(Region) %>%
summarize(
Promedio_GDP = mean(GDP, na.rm = TRUE),
Mediana_GDP = median(GDP, na.rm = TRUE),
Min_GDP = min(GDP, na.rm = TRUE),
Max_GDP = max(GDP, na.rm = TRUE),
Desv_GDP = sd(GDP, na.rm = TRUE)
)
tabla_region %>%
kable(caption = "Tablas 7: promedios por región ")%>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| Region | Promedio_GDP | Mediana_GDP | Min_GDP | Max_GDP | Desv_GDP |
|---|---|---|---|---|---|
| Asia Central | 28343.04 | 16995.59 | 13152.006 | 52372.73 | 19177.85 |
| Europa | 91917.08 | 100210.97 | 26143.285 | 171519.15 | 32283.05 |
| Latinoamérica y el Caribe | 32838.22 | 26746.98 | 8363.455 | 69735.83 | 17321.61 |
| Otros | 62509.28 | 53120.74 | 17280.982 | 244475.33 | 43253.16 |
Comparando las regiones se observa que Europa tiene un mayor GDP promedio en comparación con las demás regiones, también tiene una variabilidad mucho más amplia entre países, lo que puede sugerir que entre los países de esta región la economía varía mucho. En cambio, Latinoamérica y el Caribe muestra valores más concentrados y menores niveles de productividad. El grupo “Otros” muestra una mezcla más heterogénea, con países que pueden tener tanto niveles muy bajos como extremadamente altos de GDP.
Sin embargo, es fundamental recordar que este tipo de análisis correlacional no permite establecer una relación causal directa”. Estos gráficos se van a analizar a partir de 3 aspectos: Forma, dirección y fuerza.
CG2 <- CG %>% drop_na(GDP, industria, servicios, trabajadores_ind, trabajadores_fem, trabajadores_mas)
grafico1<- ggplot(CG2, aes(x = industria, y = GDP)) +
geom_point(color = "#54197D") +
geom_smooth(method = "lm", color = "red") +
labs(title = "Grfico 1: Relación entre GDP y Industria",
x = "Industria",
y = "GDP")
ggplotly(grafico1)
La variable “industria” muestra una relación débil con el Producto Interno Bruto (GDP) por persona empleada, ya que la dispersión de los datos alrededor de la línea de regresión es alta. Esta significativa dispersión sugiere la ausencia de una regresión lineal clara entre ambas variables; analizando el gráfico y la tendencia obtenida, se podría decir que la dirección se mantiene plana con ligeros cambios debido a la alta dispersión, por lo que presenta una asociación de baja intensidad entre ambas variables.
grafico2<- ggplot(CG2, aes(x = servicios, y = GDP)) +
geom_point(color = "#54197D") +
geom_smooth(method = "lm", color = "red") +
labs(title = "Grfico 2: Relación entre GDP y Servicios",
x = "Servicios",
y = "GDP")
ggplotly(grafico2)
La variable “servicios” muestra una relación fuerte positiva entre el Producto Interno Bruto (GDP) por persona empleada, ya que la pendiente ascendente (positiva) de la línea de regresión indica que, a medida que la participación de los servicios aumenta, el GDP muestra una tendencia a incrementarse de forma más consistente, por lo que presenta una asociación significativa del sector servicios con el crecimiento económico.
grafico3<- ggplot(CG2, aes(x = trabajadores_ind, y = GDP)) +
geom_point(color = "#54197D") +
geom_smooth(method = "lm", color = "red") +
labs(title = "Grfico 3: Relación entre GDP y Trabajadores independientes",
x = "Trabajadores Independientes",
y = "GDP")
ggplotly(grafico3)
La variable “trabajadores independientes” presenta una asociación directa, lo cual se evidencia en la línea de regresión. Esta línea muestra una relación negativa y de fuerza moderada con el Producto Interno Bruto (GDP) por persona empleada, debido a una leve dispersión en los datos. La pendiente es negativa conforme aumenta la participación del sector servicios.
grafico4<-ggplot(CG2, aes(x = trabajadores_mas, y = GDP)) +
geom_point(color = "#54197D") +
geom_smooth(method = "lm", color = "red") +
labs(title = "Grfico 4: Relación entre GDP y Trabajadores sex masculinos +15",
x = "Trabajadores del sexo masculinos +15",
y = "GDP")
ggplotly(grafico4)
La variable “Trabajadores del sexo masculino +15” exhibe una asociación débil e inversa con el Producto Interno Bruto (GDP) por persona empleada. Se observa una tendencia, aunque ligera, a la disminución del PIB a medida que el número de trabajadores masculinos aumenta. Esto se refleja en la línea de regresión con una pendiente negativa, pero muy poco pronunciada (plana).
grafico5<- ggplot(CG2, aes(x = trabajadores_fem, y = GDP)) +
geom_point(color = "#54197D") +
geom_smooth(method = "lm", color = "red") +
labs(title = "Grfico 5: Relación entre GDP y trabajadores sex femenino +15",
x = "Trabajadores del sexo femenino +15",
y = "GDP")
ggplotly(grafico5)
La variable “Trabajadores del sexo femenino +15”. El gráfico evidencia una relación positiva débil entre el número de trabajadoras del sexo femenino (+15) y el Producto Interno Bruto (GDP) por persona empleada. Esto se debe a la distancia que presentan algunos datos frente a la línea de regresión, la cual provocaría una fuerza débil; sin embargo, a mayor participación femenina, el GDP por persona empleada tiende a incrementarse.
g_región <- ggplot(CG, aes(x = Region, y = GDP, fill = Region)) +
geom_boxplot() +
labs(title = "Grafico 6: Distribución del GDP por Región",
x = "Región",
y = "GDP")
ggplotly(g_región)
modelo <- lm(GDP ~ servicios+industria+trabajadores_mas+trabajadores_fem+trabajadores_ind+Region, data = CG)
summary(modelo)
##
## Call:
## lm(formula = GDP ~ servicios + industria + trabajadores_mas +
## trabajadores_fem + trabajadores_ind + Region, data = CG)
##
## Residuals:
## Min 1Q Median 3Q Max
## -60234 -12496 -56 10899 129626
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -70773.0 83831.3 -0.844 0.4020
## servicios 1775.8 695.3 2.554 0.0133 *
## industria -584.4 1021.3 -0.572 0.5694
## trabajadores_mas 572.6 677.8 0.845 0.4017
## trabajadores_fem -345.6 531.9 -0.650 0.5185
## trabajadores_ind -385.3 562.0 -0.686 0.4956
## RegionEuropa 40509.2 22504.8 1.800 0.0771 .
## RegionLatinoamérica y el Caribe -2753.1 22985.3 -0.120 0.9051
## RegionOtros 23239.3 21596.9 1.076 0.2864
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 28100 on 58 degrees of freedom
## (36 observations deleted due to missingness)
## Multiple R-squared: 0.6025, Adjusted R-squared: 0.5476
## F-statistic: 10.99 on 8 and 58 DF, p-value: 2.791e-09
Lo que interpretamos de los resultados del modelo de regresión lineal es que la variable servicios es significativa, la variable trabajadores independientes es marginal y las faltantes no son relevantes. Al observar el p-value, observamos que es muy pequeño; por lo tanto, el modelo es significativo, ya que por lo menos una de las variables es significativa.
res1 <- residuals(modelo)
plot(modelo$fitted.values, res1,
xlab = "Valores ajustados",
ylab = "Residuos",
main = "Grafico 7: Residuos vs Ajustados")
abline(h = 0, col = "red")
El gráfico 7 muestra una relación directa entre las variables. Dado que los puntos se dispersan aleatoriamente alrededor de la línea de regresión sin formar patrones discernibles, se infiere que el modelo se ajusta bien a los datos. La dispersión constante de los puntos sugiere también el cumplimiento del supuesto de homocedasticidad.
qqnorm(res1, main = "Gráfico 8: Q-Q plot de los residuos")
qqline(res1, col = "red")
El gráfico 8 nos muestra que los datos están sumamente alineados a la línea de regresión por lo que el modelo predice bien.
vars_cor <- CG %>%
select(GDP, industria, servicios, trabajadores_ind, trabajadores_fem, trabajadores_mas)
matriz <- cor(vars_cor, use = "complete.obs")
ggcorrplot(matriz,
type = "lower",
lab = TRUE,
lab_size = 3,
colors = c("#B2182B", "white", "#2166Ac"),
title = "Grafico 9: Matriz de Correlación")
La matriz de correlación permite observar la relación lineal entre las variables explicativas y el GDP per person employed. Se evidencia que la variable empleo en el sector servicios presenta la mayor correlación positiva con el GDP (0.68), lo que sugiere que los países con mayor participación del empleo en servicios tienden a mostrar mayores niveles de productividad laboral. En contraste, el empleo independiente presenta una correlación negativa relativamente alta con el GDP (-0.62), lo que indicaría que una mayor proporción de trabajadores independientes se asocia con menores niveles de productividad.
Por su parte, las demás variables muestran relaciones débiles con el GDP, dado que sus coeficientes de correlación se encuentran cercanos a cero: trabajadores femeninos (0.16), trabajadores masculinos (-0.27) e industria (-0.07). Esto sugiere que, de manera individual, estas variables no presentan una relación lineal fuerte con la variable dependiente.
Adicionalmente, no se observan correlaciones extremadamente altas entre las variables explicativas, por lo que no se evidencia, en principio, un problema grave de multicolinealidad.
vif(modelo)
## GVIF Df GVIF^(1/(2*Df))
## servicios 4.918644 1 2.217802
## industria 2.885387 1 1.698643
## trabajadores_mas 2.879858 1 1.697014
## trabajadores_fem 1.921985 1 1.386357
## trabajadores_ind 6.522170 1 2.553854
## Region 3.486186 3 1.231379
En estos resultados se observa que todas las variables presentan valores de VIF menores a 10, lo que significa que no existen problemas graves de multicolinealidad. Aunque la variable trabajadores independientes presenta el valor más alto (5.16), este sigue estando dentro de un rango aceptable, posiblemente debido a su relación con la variable servicios.
En general, se concluye que no existe un problema importante de multicolinealidad en el modelo.
A partir del modelo estimado, se concluye que la productividad laboral, medida a través del GDP por persona empleada, está influenciada principalmente por la estructura sectorial del empleo. En particular, la participación del empleo en el sector servicios presenta una relación positiva y estadísticamente significativa, indicando que los países con mayor peso en este sector tienden a tener mayores niveles de productividad.
Por otro lado, el trabajo independiente muestra una relación negativa con el GDP, lo cual sugiere que mayores niveles de autoempleo están asociados con menores niveles de eficiencia económica, posiblemente debido a la informalidad. En contraste, variables como la participación del empleo en el sector industrial y las tasas de empleo por género no resultaron estadísticamente significativas, por lo que su efecto sobre la productividad no es concluyente dentro del modelo.
Con base en los resultados obtenidos, se recomienda fomentar políticas que impulsen el desarrollo del sector servicios, dado su impacto positivo sobre la productividad. Asimismo, es importante implementar estrategias orientadas a reducir el trabajo independiente informal, promoviendo la formalización del empleo y el acceso a oportunidades laborales más productivas.
Adicionalmente, se sugiere fortalecer la calidad del empleo mediante inversiones en educación, capacitación y tecnología, con el fin de facilitar la transición hacia sectores económicos con mayor generación de valor agregado.
A la luz de los resultados obtenidos, se considera que el modelo ajustado sí logró responder al objetivo de la investigación, ya que permitió identificar la relación entre la estructura del empleo y la productividad laboral, así como determinar cuáles variables tienen un impacto significativo sobre el GDP.
No obstante, estos resultados deben interpretarse con cautela, dado que no todas las variables incluidas resultaron significativas y podrían existir otros factores relevantes no considerados en el modelo. En este sentido, aunque el modelo proporciona evidencia consistente con la teoría económica, su capacidad explicativa podría mejorarse mediante la inclusión de variables adicionales en futuros análisis.
Briney, A. (s.f.). Official listing of countries by world region. ThoughtCo. https://www.thoughtco.com/official-listing-of-countries-world-region-1435153
Banco de la República (s.f.). Producto Interno Bruto (PIB). https://www.banrep.gov.co/es/banrep-educa/econo-cimientos/producto-interno-bruto-pib?utm_source
World Bank (s.f.). World Development Indicators. https://databank.worldbank.org/source/world-development-indicators
Organisation for Economic Co-operation and Development (OECD) (s.f.). Productivity and economic growth. https://www.oecd.org
Gujarati, D. N., & Porter, D. C. (2010). Econometría. McGraw-Hill. https://biblioteca.ucuenca.edu.ec/digital/s/biblioteca-digital/ark:/25654/654
Wooldridge, J. M. (2013). Introductory Econometrics: A Modern Approach. Cengage Learning.
Kuznets, S. (1973). Modern economic growth: Findings and reflections.