Librerías

## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
## Install package "strengejacke" from GitHub (`devtools::install_github("strengejacke/strengejacke")`) to load all sj-packages at once!
## To access larger datasets in this package, install the spDataLarge
## package with: `install.packages('spDataLarge',
## repos='https://nowosad.github.io/drat/', type='source'))`
## Linking to GEOS 3.6.2, GDAL 2.2.3, proj.4 4.9.3
## [[1]]
## [1] TRUE
## 
## [[2]]
## [1] TRUE
## 
## [[3]]
## [1] TRUE
## 
## [[4]]
## [1] TRUE
## 
## [[5]]
## [1] TRUE
## 
## [[6]]
## [1] TRUE
## 
## [[7]]
## [1] TRUE
## 
## [[8]]
## [1] TRUE
## 
## [[9]]
## [1] TRUE

Descargamos la EPA

¡ El INE tiene un ftp accesible!

Leemos la EPA usando la función epa2005del paquete MicroDatosEs

Seleccionamos solo las variables que nos interesan

## # A tibble: 6 x 7
##   prov  edad        nforma       aoi   factorel nforma3        gedad      
##   <chr> <chr>       <chr>        <fct>    <dbl> <fct>          <fct>      
## 1 Álava de 45 A 49… Educación s… o        22506 Est. Universi… De 35 a 54 
## 2 Álava de 45 A 49… Educación s… o        22506 Est. Universi… De 35 a 54 
## 3 Álava de 35 A 39… Educación s… o        23231 Est. Universi… De 35 a 54 
## 4 Álava de 35 A 39… Educación p… i        23231 Est primarios… De 35 a 54 
## 5 Álava de 5 A 9 a… <NA>         <NA>     23414 <NA>           "15 años o…
## 6 Álava de 5 A 9 a… <NA>         <NA>     23414 <NA>           "15 años o…

Añadimos el código de provincia para poder unir posteriormente con un shapefile.

En los ficheros internos del paquete MicroDatosEs vienen metadatos útiles que nos sirven para este propósito.

##     var tipo nulo llave                    valor
## 1 CICLO    N   NA  <NA>                         
## 2  CCAA    D   NA     1                Andalucía
## 3  CCAA    D   NA     2                   Aragón
## 4  CCAA    D   NA     3 Asturias (Principado de)
## 5  CCAA    D   NA     4         Baleares (Islas)
## 6  CCAA    D   NA     5                 Canarias
## # A tibble: 161,506 x 8
##    prov  edad      nforma      aoi   factorel nforma3      gedad     llave
##    <chr> <chr>     <chr>       <fct>    <dbl> <fct>        <fct>     <chr>
##  1 Álava de 45 A … Educación … o        22506 Est. Univer… De 35 a … 1    
##  2 Álava de 45 A … Educación … o        22506 Est. Univer… De 35 a … 1    
##  3 Álava de 35 A … Educación … o        23231 Est. Univer… De 35 a … 1    
##  4 Álava de 35 A … Educación … i        23231 Est primari… De 35 a … 1    
##  5 Álava de 5 A 9… <NA>        <NA>     23414 <NA>         "15 años… 1    
##  6 Álava de 5 A 9… <NA>        <NA>     23414 <NA>         "15 años… 1    
##  7 Álava de 45 A … Educación … o        20807 Est. Univer… De 35 a … 1    
##  8 Álava de 40 A … Educación … o        20807 Est. Univer… De 35 a … 1    
##  9 Álava de 0 A 4… <NA>        <NA>     20808 <NA>         "15 años… 1    
## 10 Álava de 40 A … Educación … o        20146 Est. Univer… De 35 a … 1    
## # ... with 161,496 more rows

Cálculo de la tasa de paro

Eliminamos los menores de 16 años y los inactivos.

## [1] "De 16 a 34" "De 35 a 54" "55 o más"

Modelo de efectos aleatorios

La forma usual de calcular la tasa de paro es dividiendo el número de personas en paro entre el total de personas activas. Si hacemos esto teniendo en cuenta la provincia, la formación y el grupo de edad se obtienen resultados no creíbles. Esto es debido a la falta de personas (en la EPA) en esas categorías.

¿Nos creemos que la tasa de paro en Zamora en el grupo de edad de 16 a 34 años de edad son estudios primarios es del 16% y en Alava en ese mismo grupo de edad es del 100%, cuándo en la encuesta sólo hay 1 parado sobre 3 encuestados en Zamora y 2 parados sobre 2 encuestados en Álava?

Los modelos mixtos permiten hacer “partial pooling” compartiendo información entre los grupos, y obtener estimaciones utilizando el estimador BLUP). Un excelente libro para aprender más sobre esto y otras cosas es uno de Gelman enlace

Ajustamos un modelo mixto muy sencillo, dónde consideramos como efectos aleatorios la provincia, el grupo de edad y la educación.

Extra. Mapa

Lectura shapefile. Se puede descargar el shapefile del ine, del paquete SIANE o de mi dropbox público. En este último caso, me he permitido la licencia de acercar un poco las Islas Canarias. enlace

Para leer el mapa utilizo la función st_read del paquete sf que es un paquete nacido bajo el paraguas del R-Consortium. Este paquete permite leer shapefiles y guardar su geometría en un objeto de tipo data.frame, lo cual facilita mucho su tratamiento.

## Reading layer `spain_provinces_ind_2' from data source `/home/jose/Dropbox/Public/shapefile_spain/spain_provinces_ind_2.shp' using driver `ESRI Shapefile'
## Simple feature collection with 116 features and 10 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -389564.9 ymin: 3826792 xmax: 1127057 ymax: 4859444
## epsg (SRID):    NA
## proj4string:    NA
## [1] "sf"         "data.frame"
## Simple feature collection with 6 features and 10 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -13952 ymin: 4589271 xmax: 603260 ymax: 4859444
## epsg (SRID):    NA
## proj4string:    NA
##   OBJECTID         AREA    PERIMETER P20099_ P20099_ID   NOMBRE99
## 1        1 7.980748e+09 1032580.0333       2         1 Coruña (A)
## 2        2 1.979346e+09  284275.3736       3        12  Guipúzcoa
## 3        3 1.241556e+03     425.0905       4         0       <NA>
## 4        4 1.963521e+07   21810.3954       5        15  Cantabria
## 5        5 1.559045e+10  821443.1246       6        16       León
## 6        6 1.399732e+10  994635.4371       7        19     Burgos
##     Shape_Leng   Shape_Area PROV  COM                       geometry
## 1 1032579.9729 7.980748e+09   15   12 POLYGON ((91555 4756380, 90...
## 2  284275.4018 1.979346e+09   20   16 POLYGON ((603213 4794695, 6...
## 3     425.0838 1.241235e+03 <NA> <NA> POLYGON ((568823.4 4793617,...
## 4   21810.4169 1.963520e+07   39   06 POLYGON ((479862 4789888, 4...
## 5  821443.0056 1.559045e+10   24   07 POLYGON ((187928 4685080, 1...
## 6  994635.4222 1.399732e+10   09   07 POLYGON ((497093 4759050, 4...
##   [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17
##  [18]  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34
##  [35]  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51
##  [52]  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68
##  [69]  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85
##  [86]  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102
## [103] 103 104 105 106 107 108 109 110 111 112 113 114 115 116
## [1] "sf"         "data.frame"
##   [1] "Coruña (A)"             "Guipúzcoa"             
##   [3] "Cantabria"              "León"                  
##   [5] "Burgos"                 "Palencia"              
##   [7] "Vizcaya"                "Pontevedra"            
##   [9] "Palencia"               "Palencia"              
##  [11] "Palencia"               "Burgos"                
##  [13] "Zaragoza"               "Burgos"                
##  [15] "Pontevedra"             "Ourense"               
##  [17] "Pontevedra"             "Rioja (La)"            
##  [19] "Coruña (A)"             "Girona"                
##  [21] "Burgos"                 "Burgos"                
##  [23] "Girona"                 "Pontevedra"            
##  [25] "Pontevedra"             "Navarra"               
##  [27] "Navarra"                "Pontevedra"            
##  [29] "Pontevedra"             "Valladolid"            
##  [31] "Zamora"                 "Valladolid"            
##  [33] "Girona"                 "Barcelona"             
##  [35] "Palencia"               "Soria"                 
##  [37] "Valladolid"             "Palencia"              
##  [39] "Lleida"                 "Segovia"               
##  [41] "Tarragona"              "Salamanca"             
##  [43] "Ávila"                  "Madrid"                
##  [45] "Castellón / Castelló"   "Madrid"                
##  [47] "Guadalajara"            "Cáceres"               
##  [49] "Toledo"                 "Balears (Illes)"       
##  [51] "Valencia / València"    "Balears (Illes)"       
##  [53] "Balears (Illes)"        "Ciudad Real"           
##  [55] "Ciudad Real"            "Badajoz"               
##  [57] "Albacete"               "Balears (Illes)"       
##  [59] "Balears (Illes)"        "Balears (Illes)"       
##  [61] "Balears (Illes)"        "Balears (Illes)"       
##  [63] "Balears (Illes)"        "Murcia"                
##  [65] "Córdoba"                "Jaén"                  
##  [67] "Huelva"                 "Sevilla"               
##  [69] "Granada"                "Almería"               
##  [71] "Murcia"                 "Murcia"                
##  [73] "Córdoba"                "Málaga"                
##  [75] "Palmas (Las)"           "Palmas (Las)"          
##  [77] "Palmas (Las)"           "Ceuta"                 
##  [79] "Santa Cruz de Tenerife" "Palmas (Las)"          
##  [81] "Santa Cruz de Tenerife" "Melilla"               
##  [83] "Santa Cruz de Tenerife" "Palmas (Las)"          
##  [85] "Santa Cruz de Tenerife" "Lugo"                  
##  [87] "Asturias"               "Cantabria"             
##  [89] "Vizcaya"                "Navarra"               
##  [91] "Álava"                  "Huesca"                
##  [93] "Lleida"                 "Barcelona"             
##  [95] "Tarragona"              "Teruel"                
##  [97] "Guadalajara"            "Cuenca"                
##  [99] "Valencia / València"    "Alicante /Alacant"     
## [101] "Cádiz"
##   [1] "15" "20" "39" "24" "09" "34" "48" "36" "34" "34" "34" "09" "50" "09"
##  [15] "36" "32" "36" "26" "15" "17" "09" "09" "17" "36" "36" "31" "31" "36"
##  [29] "36" "47" "49" "47" "17" "08" "34" "42" "47" "34" "25" "40" "43" "37"
##  [43] "05" "28" "12" "28" "19" "10" "45" "07" "46" "07" "07" "13" "13" "06"
##  [57] "02" "07" "07" "07" "07" "07" "07" "30" "14" "23" "21" "41" "18" "04"
##  [71] "30" "30" "14" "29" "35" "35" "35" "51" "38" "35" "38" "52" "38" "35"
##  [85] "38" "27" "33" "39" "48" "31" "01" "22" "25" "08" "43" "44" "19" "16"
##  [99] "46" "03" "11"

Hago 6 intervalos “bonitos” de la tasa de paro estimada por el modelo mixto utilizando la función classIntervals y con la función findInterval se lo asigno a cada combinación de provincia, edad y nivel de estudios del data frame

## style: pretty
##   [0,0.1) [0.1,0.2) [0.2,0.3) [0.3,0.4) [0.4,0.5) [0.5,0.6] 
##       119       155       103        59        22        10

Para poder unir los polígonos con el mapa necesitamos que el código de provincia se llame igual en ambos datasets.

## # A tibble: 6 x 9
##   provincia prov  gedad nforma3     n n_parado tasa_estim_dire…
##   <fct>     <fct> <fct> <fct>   <int>    <int>            <dbl>
## 1 Álava     01    De 1… Est pr…     1        0           0     
## 2 Álava     01    De 1… Est. S…    68       13           0.180 
## 3 Álava     01    De 1… Est. U…    51        5           0.115 
## 4 Álava     01    De 3… Est pr…     7        1           0.122 
## 5 Álava     01    De 3… Est. S…   167       20           0.125 
## 6 Álava     01    De 3… Est. U…   231       14           0.0621
## # ... with 2 more variables: tasa_estim_mixto <dbl>, intervalos <fct>