• ¿Quieres apoyar a nuestro foro haciendo una donación?, entra aquí.

Data Science politica

Oscar Leon

Hincha Huevas
Registrado
2018/12/09
Mensajes
12
Sexo
Macho
Hay algunos informáticos en el foro y algunas mentes curiosas. Que tal si en este tema usamos las bases de datos publicas para entender mejor la realidad socioeconomica del país y zanjar discusiones en base a evidencia?


EDIT: Se realizaron importantes modificaciones al post original.

En este primer post, partamos con algo simple, calculemos algunos estadísticos descriptivos de una base de datos de ingresos.


1)R es un paquete estadístico de código abierto, si no lo tienes, descargarlo e instalalo desde:
https://cloud.r-project.org/



2)Como ejemplo usemos la base de datos de la encuesta casen 2015
Descargamos el siguiente archivo y lo descomprimimos:
http://observatorio.ministeriodesar...tidimensional/casen/docs/casen_2015_stata.rar



3)Leer la base de datos
Ejecuamos R (el programa que instalaron en el primer paso), la interfaz grafica es una simple consola donde se ingresan comandos.
Para leer los datos importamos la librería "foreign":

Código:
library(foreign)

Luego obtenemos el path de la base de datos casen, el siguiente comando abre el selector de archivos:
Código:
file.choose()

Elegimos el archivo Casen 2015.dta que descomprimimos anteriormente y como resultado aparecerá el path completo del archivo en la consola de R.
Luego reemplazamos el "path" completo en el siguiente comando:

Código:
cas15 <- read.dta("path")

Si funciona, los datos de la casen están en la variable cas15 listos para ser consultados



4)Estudiar la estructura de la base de datos
El siguiente comando lista las columnas de la casen, son 776 columnas:
Insertar CODE, HTML o PHP:

La descripción de las columnas esta en el documento:
http://observatorio.ministeriodesar...al/casen/docs/Libro_de_Codigos_Casen_2015.pdf




5)Calculemos el ingreso de la actividad principal
La columna "yoprcor" representa el ingreso de la actividad principal. Sin embargo, para calcular totales regionales o a nivel de país debemos ponderarlo por el factor de expansión "expr". El factor de expansión indica a cuanta población representa cada observación de la encuesta, este factor hace la encuesta realmente representativa.

La media nacional, sin ponderar por factor de expansión, es 432071.2:

Código:
mean(cas15$yoprcor, na.rm=TRUE)

La media nacional ponderada por factor de expansión es 461916.1:

Código:
weighted.mean(cas15$yoprcor, cas15$expr, na.rm=True)

La diferencia es considerable. Por lo tanto, de aquí en adelante siempre usaremos el factor de expansión.

Ahora calculemos los deciles de ingreso:
Para esto debemos instalar la libreria "Hmisc" con el siguiente comando:

Código:
install.packages("Hmisc")

Las librerias se instalan una sola vez y quedan guardadas en el computador, pero cada vez que queramos usarlas debemos importarlas:

Ahora podemos usar la funcion wtd.quantile() para calcular los deciles de ingresos:

Código:
wtd.quantile(cas15$yoprcor, p = seq(0, 1, length = 11), na.rm = FALSE, weight=cas15$expr)

el p50 es la mediana: $300.000




como andamos con los cálculos de la fundación hoyo negro?
http://www.fundacionsol.cl/wp-content/uploads/2017/04/Salarios-al-Límite.pdf

Llegamos exactamente al mismo resultado en la mediana y el p70
En la media hay una pequeña diferencia $461.916 vs $461.951.
 
Continuando con el ejemplo anterior, calcularemos la media de ingresos filtrando por región y tipo de actividad.

Primero filtramos la base de datos "cas15" dejando solo las filas de la región de tarapaca y asignamos el resultado a la variable reg01. Luego calculamos la media sobre esta base de datos filtrada (resultado 544792.3):

Código:
reg01 <- cas15[cas15$region == "región de tarapacá",]
weighted.mean(reg01$yoprcor, reg01$expr, na.rm=TRUE)

Para filtrar por tipo de actividad es similar, la variable o15 contiene los cogidos de tipo de actividad.

Código:
#Empleador
emp <- cas15[cas15$o15 == "patrón o empleador",]
weighted.mean(emp$yoprcor, emp$expr, na.rm=TRUE)

Como vamos comparado con la Fundacion Hoyo Negro? Casi idénticos, aunque persisten algunas leves diferencias y seria interesan saber por que. De todas forma, todo indica que tenemos un instrumento solido para seguir explorando los datos.

Tarapaca
Nosotros: $544.792
Hoyo negro: $544.792

Antofagasta
Nosotros: $586.828
Hoyo negro: $586.828

Metropolitana
Nosotros: $533.533
Hoyo negro: $533.573


Empleador
Nosotros: $967.825
Hoyo negro: $967.965

Cuenta propia
Nosotros: $336.291
Hoyo negro: $336.290

Asalariado privado
Nosotros: $460.473
Hoyo negro:$460.527

Hay un IDE gratuito para R que es mucho mejor que la consola. Descargar desde:
https://www.rstudio.com/products/rstudio/download/
 
Tiempo atrás hubo una controversia acerca de las diferencias de sueldos entre los trabajadores del sector publico y privado.
Algunos foristas argumentaron que los sueldos públicos solo eran mas altos en los cargos directivos y eso aumentaba el promedio, pero no eran mas altos en puestos de menos calificación. Veamos que evidencia aporta la encuesta CASEN.


Calculemos la media y los deciles de ingresos de los trabajadores asalariados públicos. En la Casen, la categoría de trabajadores públicos esta dividida en dos tipos: empleado de empresa publicas y empleado del sector publico.

Código:
apub <- cas15[!is.na(cas15$o15) & (cas15$o15 == "empleado u obrero de empresas públicas" | cas15$o15 == "empleado u obrero del sector público (gobierno central o municipal)"),]
mean_pub <- weighted.mean(apub$yoprcor, apub$expr, na.rm=TRUE)
quan_pub <- wtd.quantile(apub$yoprcor, p = seq(0, 1, length = 11), na.rm = TRUE, weight=apub$expr)

De la misma forma calculamos la media y deciles de los asalariados del sector privado.

Código:
apriv <- cas15[!is.na(cas15$o15) & cas15$o15 == "empleado u obrero del sector privado",]
mean_priv <- weighted.mean(apriv$yoprcor, apriv$expr, na.rm=TRUE)
quan_priv <- wtd.quantile(apriv$yoprcor, p = seq(0, 1, length = 11), na.rm = TRUE, weight=apriv$expr)

Resultados

Los trabajadores públicos ganan 35% mas en promedio que los privados
Media públicos: $622.722
Media privados: $460.473


Los trabajadores públicos ganan mas en todos los deciles de ingresos excepto en el mas alto. Lo que invalida el argumento esgrimido anteriormente. Si debo notar que la diferencia es un poco menor en los deciles mas bajos, aunque ya en torno al sueldo mínimo los publicos ganan un 20% mas y en la mediana ganan un 50% mas, lo cual es consistente con los datos de la encuesta ESI.

Código:
Asalariados públicos:
      0%      10%      20%      30%      40%      50%      60%      70%      80%      90%     100%
    8000   215143   250000   300000   370000   450000   520000   650000   850000  1200000 12500000

Asalariados privados:
      0%      10%      20%      30%      40%      50%      60%      70%      80%      90%     100%
    1197   200000   240000   250000   280000   300000   353166   443684   550000   800000 26000000

Comparación
      0%      10%      20%      30%      40%      50%      60%      70%      80%      90%     100%
    568%       8%       4%      20%      32%      50%      47%      47%      55%      50%     -52%

Los datos de la encuesta Casen arrojan evidencia contundente de que los empleados publico ganan mas que los privados en todo los niveles de ingresos excepto en el decil mas alto. En sueldos mayores que el mínimo el sobrepago esta entre 20% y 50%, lo cual constituye un importante desvió de recursos públicos que son capturados por ese grupo de interés.
 
Hay algunos informáticos en el foro y algunas mentes curiosas. Que tal si en este tema usamos las bases de datos publicas para entender mejor la realidad socioeconomica del país y zanjar discusiones en base a evidencia?


EDIT: Se realizaron importantes modificaciones al post original.

En este primer post, partamos con algo simple, calculemos algunos estadísticos descriptivos de una base de datos de ingresos.


1)R es un paquete estadístico de código abierto, si no lo tienes, descargarlo e instalalo desde:
https://cloud.r-project.org/



2)Como ejemplo usemos la base de datos de la encuesta casen 2015
Descargamos el siguiente archivo y lo descomprimimos:
http://observatorio.ministeriodesar...tidimensional/casen/docs/casen_2015_stata.rar



3)Leer la base de datos
Ejecuamos R (el programa que instalaron en el primer paso), la interfaz grafica es una simple consola donde se ingresan comandos.
Para leer los datos importamos la librería "foreign":

Código:
library(foreign)

Luego obtenemos el path de la base de datos casen, el siguiente comando abre el selector de archivos:
Código:
file.choose()

Elegimos el archivo Casen 2015.dta que descomprimimos anteriormente y como resultado aparecerá el path completo del archivo en la consola de R.
Luego reemplazamos el "path" completo en el siguiente comando:

Código:
cas15 <- read.dta("path")

Si funciona, los datos de la casen están en la variable cas15 listos para ser consultados



4)Estudiar la estructura de la base de datos
El siguiente comando lista las columnas de la casen, son 776 columnas:
Insertar CODE, HTML o PHP:

La descripción de las columnas esta en el documento:
http://observatorio.ministeriodesar...al/casen/docs/Libro_de_Codigos_Casen_2015.pdf




5)Calculemos el ingreso de la actividad principal
La columna "yoprcor" representa el ingreso de la actividad principal. Sin embargo, para calcular totales regionales o a nivel de país debemos ponderarlo por el factor de expansión "expr". El factor de expansión indica a cuanta población representa cada observación de la encuesta, este factor hace la encuesta realmente representativa.

La media nacional, sin ponderar por factor de expansión, es 432071.2:

Código:
mean(cas15$yoprcor, na.rm=TRUE)

La media nacional ponderada por factor de expansión es 461916.1:

Código:
weighted.mean(cas15$yoprcor, cas15$expr, na.rm=True)

La diferencia es considerable. Por lo tanto, de aquí en adelante siempre usaremos el factor de expansión.

Ahora calculemos los deciles de ingreso:
Para esto debemos instalar la libreria "Hmisc" con el siguiente comando:

Código:
install.packages("Hmisc")

Las librerias se instalan una sola vez y quedan guardadas en el computador, pero cada vez que queramos usarlas debemos importarlas:

Ahora podemos usar la funcion wtd.quantile() para calcular los deciles de ingresos:

Código:
wtd.quantile(cas15$yoprcor, p = seq(0, 1, length = 11), na.rm = FALSE, weight=cas15$expr)

el p50 es la mediana: $300.000




como andamos con los cálculos de la fundación hoyo negro?
http://www.fundacionsol.cl/wp-content/uploads/2017/04/Salarios-al-Límite.pdf

Llegamos exactamente al mismo resultado en la mediana y el p70
En la media hay una pequeña diferencia $461.916 vs $461.951.


acciones sin convicciones son ciegas, sin razón asertiva :sisi3:
 
Le dare una bueeeeeena revision sisterioso.....

De todas formas estoy revisando si me conviene mas R o Python para un motor de text mining
 
Parece que soy extremadamente Bubalón, porque no entendí ninguna hueá.

:ohno:

Es fácil, sólo debes mentalizarte como Fonola y decir "soy un data science" frente al espejo 3 veces y podrás serlo como él :sisi:

R es un programa de código libre que va realizando tareas según como tu lo programes con líneas de códigos, aquí el usuario te dejó una BBDD que debes subir como él dijó o con otro comando tipo "read.xxx" y luego comenzar a analizar lo que plazca :sisi:

Si lo quieres intentar, debes pegar el código que dejó el socito en los cuadros y aplicar "CTRL + Enter" para ir ejecutando cada línea de código.
 
Tiempo atrás hubo una controversia acerca de las diferencias de sueldos entre los trabajadores del sector publico y privado.
Algunos foristas argumentaron que los sueldos públicos solo eran mas altos en los cargos directivos y eso aumentaba el promedio, pero no eran mas altos en puestos de menos calificación. Veamos que evidencia aporta la encuesta CASEN.


Calculemos la media y los deciles de ingresos de los trabajadores asalariados públicos. En la Casen, la categoría de trabajadores públicos esta dividida en dos tipos: empleado de empresa publicas y empleado del sector publico.

Código:
apub <- cas15[!is.na(cas15$o15) & (cas15$o15 == "empleado u obrero de empresas públicas" | cas15$o15 == "empleado u obrero del sector público (gobierno central o municipal)"),]
mean_pub <- weighted.mean(apub$yoprcor, apub$expr, na.rm=TRUE)
quan_pub <- wtd.quantile(apub$yoprcor, p = seq(0, 1, length = 11), na.rm = TRUE, weight=apub$expr)

De la misma forma calculamos la media y deciles de los asalariados del sector privado.

Alguna base de datos de migrantes oficial ... para pasar a reir un rato con mineria de datos ..

Código:
apriv <- cas15[!is.na(cas15$o15) & cas15$o15 == "empleado u obrero del sector privado",]
mean_priv <- weighted.mean(apriv$yoprcor, apriv$expr, na.rm=TRUE)
quan_priv <- wtd.quantile(apriv$yoprcor, p = seq(0, 1, length = 11), na.rm = TRUE, weight=apriv$expr)

Resultados

Los trabajadores públicos ganan 35% mas en promedio que los privados
Media públicos: $622.722
Media privados: $460.473


Los trabajadores públicos ganan mas en todos los deciles de ingresos excepto en el mas alto. Lo que invalida el argumento esgrimido anteriormente. Si debo notar que la diferencia es un poco menor en los deciles mas bajos, aunque ya en torno al sueldo mínimo los publicos ganan un 20% mas y en la mediana ganan un 50% mas, lo cual es consistente con los datos de la encuesta ESI.

Código:
Asalariados públicos:
      0%      10%      20%      30%      40%      50%      60%      70%      80%      90%     100%
    8000   215143   250000   300000   370000   450000   520000   650000   850000  1200000 12500000

Asalariados privados:
      0%      10%      20%      30%      40%      50%      60%      70%      80%      90%     100%
    1197   200000   240000   250000   280000   300000   353166   443684   550000   800000 26000000

Comparación
      0%      10%      20%      30%      40%      50%      60%      70%      80%      90%     100%
    568%       8%       4%      20%      32%      50%      47%      47%      55%      50%     -52%

Los datos de la encuesta Casen arrojan evidencia contundente de que los empleados publico ganan mas que los privados en todo los niveles de ingresos excepto en el decil mas alto. En sueldos mayores que el mínimo el sobrepago esta entre 20% y 50%, lo cual constituye un importante desvió de recursos públicos que son capturados por ese grupo de interés.


Por ahi contertulio, baja una libreria de graficos para R. La gallada no va a entender las cifras brutas, no por que sean todos gerentes, sino que en este basurero mejor escribes un grafico.

Notable que justamente los puestos mas altos, que son los de confianza, son los que tienen mayor desviacion del nivel del mercado.

Yo lo apaño, ... podriamos hacer informes onda el nuevo El Antro Tank, para pasear a Chile y dar a conocer cifras que los diarios no quieren publicar ..
 
@Oscar Leon : Oye viejo, no tendrás por ahí algún código para analizar lo que ocurre ahora en redes sociales con el famoso rechazo al pacto de la inmigración de la ONU.

Quiero ver como se mueven los jesuitas y el guaton CTM de rodrigo sandoval.
 
yo igual tengo mis codigos....y dicen que te vas reportado.

tenor.gif
 
Volver
Arriba