scieee AI-readable full text Open interactive document viewer

IV Xornada de usuarios R en Galicia: programa e resumos

Ginzo Villamayor, María José

Abstract

A Oficina de Software Libre (OSL) do CIXUG comprácese en presentar a IV Xornada de Usuarios de R en Galicia. Pretende ser un punto de encontro para todas aquelas persoas interesadas en intercambiar as súas experiencias e atopar colaboracións co resto da comunidade, ademais trátase de promocionar e difundir o coñecemento libre da linguaxe estatística R e mostrar as súas aplicacións. O programa contempla doce relatorios ao longo de todo o día, ademais de dous obradoiros: Introdución a R e Web Scraping. Entre os participantes figuran especialistas da Oficina de Software Libre do CIXUG, do Instituto Galego de Estatística, da Consellaría de Sanidade e outros organismos da Xunta de Galicia, das tres universidades galegas, do Cesga e de empresas como INDRA ou SolidQ. Todo isto non sería posible sen o patrocinio de AMTEGA e a colaboración de da Facultade de Matemáticas, ás que agradecemos a súa contribución. Confiamos que os asistentes a xornada desfruten da mesma e dunha cidade que os acolle cos brazos abertos.

Full text

 IV XORNADA DE USUARIOS R EN GALICIA PROGRAMA E RESUMOS Santiago de Compostela 19 de Outubro de 2017 ORGANIZA: Oficina de Software Libre (OSL) do CIXUG  Editora: Mª José Ginzo Villamayor Outubro 2017 PRESENTACIÓN A Oficina de Software Libre (OSL) do CIXUG comprácese en presentar a IV Xornada de Usuarios de R en Galicia. Pretende ser un punto de encontro para todas aquelas persoas interesadas en intercambiar as súas experiencias e atopar colaboracións co resto da comunidade, ademais trátase de promocionar e difundir o coñecemento libre da linguaxe estatística R e mostrar as súas aplicacións. O programa contempla doce relatorios ao longo de todo o día, ademais de dous obradoiros: Introdución a R e Web Scraping. Entre os participantes figuran especialistas da Oficina de Software Libre do CIXUG, do Instituto Galego de Estatística, da Consellaría de Sanidade e outros organismos da Xunta de Galicia, das tres universidades galegas, do Cesga e de empresas como INDRA ou SolidQ. Todo isto non sería posible sen o patrocinio de AMTEGA e a colaboración de da Facultade de Matemáticas, ás que agradecemos a súa contribución. Confiamos que os asistentes a xornada desfruten da mesma e dunha cidade que os acolle cos brazos abertos. Santiago de Compostela, outubro de 2017 O Comité Organizador  COMITÉ ORGANIZADOR Roberto Martín Souto Oficina de Software Libre (CIXUG) Rafael Rodríguez Gayoso Concello de Santiago de Compostela Mª José Ginzo Villamayor Universidade de Santiago de Compostela COMITÉ CIENTÍFICO Mª José Ginzo Villamayor Universidade de Santiago de Compostela Miguel Ángel Rodríguez Muíños Dirección Xeral de Saúde Pública (Consellería de Sanidade) INFORMACIÓN XERAL  SEDE Facultade de Matemáticas Universidade de Santiago de Compostela C/ Lope Gómez de Marzoa s/n 15782, Santiago de Compostela DATAS 19 de outubro de 2017 ACCESO WIFI NA SEDE SSID: usuariosr Login: usuariosr Password: T4rqbzpx2? CERTIFICADOS Todos os certificados se enviarán en formato dixital por correo electrónico unha vez rematada a Xornada. UBICACIÓNS NA FACULTADE Relatorios: Aula Magna Talleres: Aulas 9 e 10 (nivel 4). Cafés: corredor nivel 3.  PROGRAMA  09:45 - 10:10 Utilización do software R na unión de rexistros administrativos Noa Veiguela Fernández (IGE) 10:10 - 10:35 Cálculo da adxudicación dos premios de fin de carreira(2017) Marcos Fernández Arias, Pablo Espido Noya (Xunta de Galicia) 10:35 - 11:00 Xeración de música determinista con R Miguel Ángel Rodríguez Muiños (Consellería de Sanidade); Alejandro Rodríguez Antolín 11:30 - 11:55 Novo entorno para Big Data con R: sparklyr Aurora Baluja González (CHUS); Javier Lopez Cacheiro (CESGA) 11:55 - 12:20 R en paralelo e HPC Diego Mairena Díaz, Andrés Gómez, Aurelio Rodríguez (CESGA); Santiago Cerviño (Instituto Español de Oceanografía) 12:20 - 12:45 R como pedra angular de proxectos de Data Science Daniel Prieto Rodríguez (Minsait by Indra) 12:45 - 13:10 Predición de Series Temporais en Datasets Multidimensionais de Situacións de Negocio Mediante Paralelización Agradable en R Server Antonio Soto Rodríguez (SolidQ) 13:10 - 13:35 Análise da incidencia da leucemia granulocítica empregando a estimación non paramétrica de conxuntos de nivel Paula Saavedra Nieves (UVigo) 13:35 - 14:00 RStudio como ferramenta para desenvolvemento de material docente interactivo y multimedia Alejandro Quintela del Río (UDC) 16:00 - 16:25 Debuxando curvas ROC en R Arís Fanjul Hevia (USC) 16:25 - 16:50 A ecoloxía na súa revolución da cantidade masiva de datos Miguel Branco (UVigo) 16:50 - 17:15 Web Scraping José Luis Juncal Pérez 18:0020:00 Obradoiro: Introdución a R Arís Fanjul Hevia, Mª José Ginzo Villamayor (USC) Obradoiro: Web Scraping José Luis Juncal Pérez Índice Utilización do software R na unión de rexistros administrativos. Noa Veiguela Fernández (IGE) ...................................................................................................... 2 Cálculo da adxudicación dos premios de fin de carreira (2017). Marcos Fernández Arias e Pablo Espido Noya (Xunta de Galicia) .................................................................... 4 Xeración de música determinista con R. Miguel Ángel Rodríguez Muiños (Consellería de Sanidade) e Alejandro Rodríguez Antolín .................................................................. 5 Novo entorno para Big Data con R: sparklyr. Aurora Baluja González (CHUS) e Javier Lopez Cacheiro (CESGA) .......................................................................................... 6 R en paralelo e HPC. Diego Mairena Díaz, Andrés Gómez, Aurelio Rodríguez (CESGA) e Santiago Cerviño (Instituto Español de Oceanografía) ............................................... 8 R como pedra angular de proxectos de Data Science Daniel Prieto Rodríguez (Minsait by Indra) .............................................................................................................. 12 Predición de Series Temporais en Datasets Multidimensionais de Situacións de Negocio Mediante Paralelización Agradable en R Server. Antonio Soto Rodríguez (SolidQ) ...... 15 Análise da incidencia da leucemia granulocítica empregando a estimación non paramétrica de conxuntos de nivel. Paula Saavedra Nieves (UVigo) e Alberto Rodríguez Casal .................................................................................................................... 16 RStudio como ferramenta para desenvolvemento de material docente interactivo y multimedia. Alejandro Quintela del Río (UDC) ......................................................... 17 Debuxando curvas ROC en R. Arís Fanjul Hevia (USC) ............................................. 20 A ecoloxía na súa revolución da cantidade masiva de datos. Miguel Branco (UVigo) .. 22 Web Scraping. José Luis Juncal Pérez ..................................................................... 25 AUTORES ............................................................................................................. 26  1 IV Xornada de Usuarios de R en Galicia Santiago de Compostela, 19 de outubro do 2017 R EN PARALELO E HPC Diego Mairena1, Andr´es G´omez1, Aurelio Rodr´ıguez3e Santiago Cervi˜no4 1Fundaci´on P´ublica Galega Centro Tecnol´oxico de Supercomputaci´on de Galicia (CESGA) 2Instituto Espa˜nol de Oceanograf´ıa Centro Oceanogr´afico de Vigo RESUMO O emprego de R en paralelo permite unha reduci´on considerable do tempo de execuci´on da maior´ıa dos programas. Se combinamos isto cos recursos dun centro HPC, podemos obter un gran rendemento, tanto na execuci´on de scripts propios de R, como no emprego de certas aplicaci´ons que fan uso de R. Palabras e frases chave: HPC, R en paralelo, Gadget. 1. INTRODUCI ´ ON O soporte de paquetes para o emprego de R en paralelo comezou ca versi´on 2.14.0[1], na que se inclu´ıa o paquete “parallel”, incorporando copias dos paquetes “multicore” e “snow”. Dende ent´on, os paquetes para o uso de R en centros HPC foron medrando ata o d´ıa de hoxe, onde existen tanto paquetes de paralelismo expl´ıcito (“foreach”, “snow”) e impl´ıcito (“parallel”, “Rdsm”), permitindo aproveitar ´o m´aximo os recursos dispo˜nibles neste tipo de centros. A versatilidade de R permite que poida adaptarse a calquera entorno computacional, de a´ı que apareceran paquetes para o uso de R en paralelo relacionados con big data (“RHIPE”, que proporciona unha interface entra Hadoop e R), computaci´on Grid, uso de GPUs, ou incluso paquetes para a integraci´on de R cos distintos sistemas de colas empregados en centros HPC (por exemplo, “rslurm”). ´ O mesmo tempo, son moitas as aplicaci´ons que fan uso de R para a s´ua execuci´on, incluso ata o punto de ter paquetes espec´ıficos para algunhas delas. Veremos o caso de Gadget[2] (un modelo de ecosistemas mari˜nos), onde o paquete Rgadget proporciona unha integraci´on completa ca propia aplicaci´on, permitindo incluso a s´ua execuci´on en paralelo. 2. PAQUETES PARA O EMPREGO DE R EN PARALELO ´ A hora de empregar R nun entorno HPC, hai que ter en conta tanto os recursos dispo˜nibles como as limitaci´ons dos propios paquetes. Paquetes como “doParallel” ou “foreach”, permiten a execuci´on de R nun entorno multicore, pero sempre dentro do mesmo nodo de c´alculo, xa que non est´an dese˜nados para facer uso de MPI. O uso destes paquetes permiten unha paralelizaci´on moi simple de certas estruturas de programaci´on, como poden ser os bucles tipo “for”. Sen embargo, paquetes como “snow” ou “Rmpi”, permiten o uso de varios nodos de c´alculo, o que aumenta considerablemente os recursos dispo˜nibles. Estes paquetes necesitan a maiores dunha ferramenta MPI que permita o env´ıo das mensaxes entre os diferentes nodos, e nalg´uns casos, a programaci´on empregando estes paquetes pode ser lixeiramente m´ais complicada ca no caso de paquetes que empregan o entorno multicore. ´ O mesmo tempo, hai que ter en conta a integraci´on dos diferentes paquetes co sistema de colas que se empregue no centro HPC. Paquetes como “parallel” ou “doParallel”, crean o seu propio entorno paralelo unha vez comeza a execuci´on do programa, e o sistema de colas lim´ıtase a xestionar os recursos solicitados para o traballo. Un exemplo b´asico do paquete “doParallel” combinado co paquete “foreach” ´e a paralelizaci´on dunha estrutura tipo “for”: 8 library(doParallel) registerDoParallel(cores=as.numeric(Sys.getenv(\SLURM_NTASKS"))) x <- iris [which(iris[,5] != \setosa"), c(1,5)] parallel_time <- system.time({ r <- foreach(icount(100000), .combine=cbind) \%dopar\% { ind <- sample(100, 100, replace=TRUE) result1 <- glm(x[ind,2]~x[ind,1], family=binomial(logit)) coefficients(result1)}}) parallel_time Os resultados do tempo necesario para a execuci´on deste script, en funci´on dos n´umeros de cores empregados, poden verse na Figura 1. Pode observarse unha r´apida diminuci´on do tempo ao pasar de 1 a 5 cores, sen embargo, ch´egase a unha estabilizaci´on ao superar os 12 cores, no que o tempo de execuci´on permanece case constante ata os 24 cores. Figura 1: Variaci´on do tempo de execuci´on en funci´on dos cores empregados ao utilizar o paquete doParallel. Tam´en existen certas funci´ons de R (como por exemplo as relacionadas ca ´alxebra lineal) que fan uso dun paralelismo impl´ıcito dado polas librer´ıas matem´aticas empregadas para a compilaci´on de R (MKL, OpenBlas, etc. . .). No seguinte exemplo, unha multiplicaci´on de matrices escala de forma considerable en funci´on dos recursos dispo˜nibles para a s´ua execuci´on: N <- 10000 system.time(x<- matrix(rnorm(N^2), N, N) %*% matrix(rnorm(N^2), N, N)) Neste caso, non se fai ningunha referencia expl´ıcita ´o n´umero de cores a empregar como no caso anterior, ´e a propio librer´ıa a encargada de paralelizar a operaci´on en funci´on dos recursos que ten dispo˜nibles. Os resultados de tempo en funci´on do n´umero de cores poden verse na Figura 2, onde pode observarse un comportamento similar ´o do paquete “doParallel”, onde a partir dos 6 cores a curva vaise aproximando a unha as´ıntota. Por outra banda, os paquetes como “Rmpi”, fan uso de funci´ons espec´ıficas como “mpi.spawn.Rslaves” ou “mpi.bcast.cmd”, que ´a s´ua vez dependen da ferramenta MPI que se empregue, e o sistema de colas ten que soportar o uso deste tipo de funci´ons. 9 Figura 2: Variaci´on do tempo de execuci´on en funci´on dos cores empregados na multiplicaci´on de matrices. Un exemplo claro deste caso pode verse con Slurm e os paquetes “Rmpi” e “snow”. Slurm emprega o comando “srun” para facer o env´ıo de traballos en paralelo e facer a integraci´on cos recursos solicitados. Este comando fai unha expansi´on de procesos que non est´a soportada por estos paquetes de R, polo que non ´e posible executar o programa. Sen embargo, co comando “mpirun‘” (que proporcionan as ferramentas MPI), si ´e posible expandir os procesos de forma correcta, a´ında cun pequeno matiz: independentemente dos procesos que necesitemos expandir ou os recursos solicitados, sempre ´e necesario lanzar “mpirun -np 1”. Un exemplo simple do paquete “Rmpi” ´e detectar os distintos procesos e o host no que que se executan: library(Rmpi) ns <- mpi.univese.size() -1 mpi.spawn.Rslaves(nslaves=ns) mpi.bcast.cmd( id <- mpi.comm.rank() ) mpi.bcast.cmd( ns <- mpi.comm.size() ) mpi.bcast.cmd( host <- mpi.get.processor.name() ) mpi.remote.exec(paste("I am", id, "of", ns, "running on", host)) mpi.close.Rslaves(dellog = FALSE) mpi.exit() Como pode verse, a sintaxe ´e moi similar ´as funci´ons propias de ferramentas MPI, e a programaci´on empregando este tipo de paquetes asem´ellase bastante ´a empregada por outras linguaxes como C ou Fortran no paradigma de MPI. Por ´ultimo, o emprego de certos paquetes de R desenvoltos especificamente para certas aplicaci´ons proporcionan una gran liberdade ´a hora da s´ua execuci´on. Gadget[2] ´e unha aplicaci´on que realiza simulaci´ons estad´ısticas de ecosistemas mari˜nos, e ´o mesmo tempo, emprega diversos paquetes como “mfdb” (para a xesti´on dos datasets empregados para estimar os par´ametros do modelo) ou Rgadget, que proporciona un conxunto de utilidades e an´alises espec´ıficos para a execuci´on de Gadget. A´ında que esta aplicaci´on en principio non est´a dese˜nada para a s´ua execuci´on en paralelo, empregando R podemos paralelizar certas partes e reducir considerablemente o tempo de execuci´on. ´ O mesmo tempo, non s´o podemos paralelizar as propias funci´ons de R, se non que tam´en podemos executar varias copias de Gadget, en funci´on do n´umero de cores dispo˜nibles. Neste caso, empre10 gando o paquete “parallel”, podemos crear un cluster cos cores solicitados, e en cada un deles, teremos acceso ´os ficheiros necesarios para a execuci´on, as´ı como o propio Gadget: ncores<-as.numeric(Sys.getenv("SLURM_NTASKS")) cluster <- makeCluster(ncores,type="FORK") clusterExport(cluster,c("input.file")) clusterExport(cluster,c("gadget.exe")) parSapply(cluster,ncases,gadget.boot.execute, ...) A execuci´on de cada un destes subprocesos real´ızase empregando a funci´on parSapply, unha versi´on paralela da funci´on “sappply”, que permite a execuci´on simult´anea dunha funci´on un n´umero determinado de veces, en funci´on do tama˜no do cluster. En conxunto, todo isto permite executar m´ultiples procesos simult´aneos de Gadget simplemente executando un script de R. 3. CONCLUSI ´ ONS Como puidemos comprobar, o emprego de paquetes para a paralelizaci´on de R permite unha reduci´on considerable de tempo ´a hora de executar, e se se empregan recursos dun centro HPC, ´e necesario co˜necer as limitaci´ons dos paquetes cando se combinan co sistema de colas dispo˜nible. E a´ında que esta reduci´on ´e considerable, tam´en se pode observar unha estabilizaci´on do tempo cando se chega a certo valor do n´umero de cores empregados. Por ´ultimo, o emprego de paquetes espec´ıficos para certas aplicaci´ons, permiten a execuci´on das mesmas en paralelo, sen necesidade dunha excesiva programaci´on adicional, e sempre sen sa´ır do entorno de R. Referencias [1] CRAN Task View: High-Performance and Parallel Computing with R. Dispo˜nible en: https://cran.rproject.org/web/views/HighPerformanceComputing.html. ´ Ultima visitia 10 Agosto 2017 [2] Gadget. Dispo˜nible en: https://github.com/Hafro/gadget. ´ Ultima visitia 10 Agosto 2017 11 IV Xornada de Usuarios de R en Galicia Santiago de Compostela, 19 de outubro do 2017 R COMO PIEDRA ANGULAR DE PROYECTOS DE DATA SCIENCE Daniel Prieto Rodr´ıguez1 1Minsait by Indra RESUMEN Los proyectos de Data Science se dividen en varias fases que van desde los estad´ıos iniciales de dise˜no de la modelizaci´on hasta la puesta en producci´on. En esta presentaci´on mostraremos como R convive con el resto de elementos del ecosistema de este tipo de proyectos en cada una de las fases. En otras palabras, se ver´a una peque˜na aproximaci´on al uso aplicado de R dentro del ecosistema de herramientas, en la realidad empresarial de una industria de distribuci´on. En primera instancia, librer´ıas tales como “RODBC”, “RJDBC”, “sparklyr” y “dplyr” permiten, por un lado conectarnos a distintas fuentes de datos y por otro, realizar procesados y an´alisis exploratorios de los datos. A continuaci´on, “caret” permite evaluar y parametrizar una gran cantidad de modelos de machine learning mientras que, cuando tenemos un volumen de datos muy elevado, ”sparklyr”nos proporciona una interfaz de cara a probar los algoritmos de aprendizaje autom´atico incluidos en las librer´ıas de Spark. De forma transversal a todas las fases, la librer´ıa “rmarkdown” nos permite generar informes de forma automatizada para contrastar las hip´otesis y resultados. Adem´as, este tipo de proyectos se engloban en librer´ıas propias de R en las que se hace uso de programaci´on orientada a objetos y patrones de dise˜no; a fin de llevar a cabo la implementaci´on de algoritmos de propiedad industrial. Finalmente, compartiremos la necesidad de apoyar los desarrollos en R sobre otras herramientas y plataformas que se requieren para conseguir la puesta en producci´on de proyectos empresariales. Palabras y frases clave: Data Science, R, Spark, sparklyr, distribuci´on. Referencias [1] JJ Allaire, Joe Cheng, Yihui Xie, Jonathan McPherson, Winston Chang, Jeff Allen, Hadley Wickham, Aron Atkins, Rob Hyndman, and Ruben Arslan. rmarkdown: Dynamic Documents for R, 2017. R package version 1.5. [2] Max Kuhn. Contributions from Jed Wing, Steve Weston, Andre Williams, Chris Keefer, Allan Engelhardt, Tony Cooper, Zachary Mayer, Brenton Kenkel, the R Core Team, Michael Benesty, Reynald Lescarbeau, Andrew Ziem, Luca Scrucca, Yuan Tang, Can Candan, and Tyler Hunt. caret: Classification and Regression Training, 2017. R package version 6.0-76. [3] Javier Luraschi, Kevin Ushey, JJ Allaire, and The Apache Software Foundation. sparklyr: R Interface to Apache Spark, 2017. R package version 0.6.1. [4] Brian Ripley and Michael Lapsley. RODBC: ODBC Database Access, 2017. R package version 1.3-15. 12 [5] Simon Urbanek. RJDBC: Provides access to databases through the JDBC interface, 2014. R package version 0.2-5. [6] Hadley Wickham and Romain Francois. dplyr: A Grammar of Data Manipulation, 2016. R package version 0.5.0. 13 IV Xornada de Usuarios de R en Galicia Santiago de Compostela, 19 de outubro do 2017 PREDICCI ´ ON DE SERIES TEMPORALES EN DATASETS MULTIDIMENSIONALES DE SITUACIONES DE NEGOCIO MEDIANTE PARALELIZACI ´ ON AGRADABLE EN R SERVER Antonio Soto1 1SolidQ RESUMEN La aplicaci´on de series temporales a la predicci´on de valores en situaciones de negocio est´a ampliamente extendida. T´ecnicas como regresiones multivariantes y autoregresiones vectoriales son usadas ampliamente, pero m´etodos m´as novedosos propios de la miner´ıa de datos, como SVMs, boosted trees y redes neuronales, se basan en modelos de tipo consultivos los cuales, a la hora de ser usados para predicciones de tipo 1-paso adelante, carecen de datos para poder ser alimentados y pronosticar la o las variables dependientes de inter´es. Este tipo de problemas se presentan en predicciones temporales en situaciones de negocio que suelen tener un valor espec´ıfico, c´omo puede ser el n´umero de reservas de hotel / piso en plataformas en l´ınea, asociadas a un conjunto de datos multidimensional, como geograf´ıa de origen y geograf´ıa destino, perfil de cliente, perfil de hotel, duraci´on de estancia, etc., siempre asociadas a un eje temporal. Ante este problema, hemos aplicado distintos modelos predictivos de series temporales para predecir a un horizonte finito un determinado valor haciendo n-particiones inconexas altamente paralelizables del conjunto de datos disponible con el uso de R Server, y generando una serie temporal ´unica para cada partici´on. Espec´ıficamente se predice el n´umero de recogidas de usuarios de taxi en la ciudad de Nueva York, por origen, destino, tipo de pago, duraci´on del trayecto y otras dimensiones, pero el problema es f´acilmente trasladado a otras situaciones de negocio. El conjunto de todas las series temporales es luego reagrupado generando una tabla multidimensional de futuros con valores predichos, distribuciones de las variables independientes coherentes con los valores hist´oricos y ejecutado todo dentro del entorno paralelizado de R Server. Nuestra aproximaci´on resuelve un problema espec´ıfico extenso dentro de la miner´ıa de datos, al mismo tiempo que mediante la utilizaci´on de R Server reducimos tiempos entrenamiento y predicci´on respecto a soluciones similares desarrolladas con foreach y paquetes de paralelizaci´on de R (snow, future). Palabras e frases clave: Series Temporales, Miner´ıa de Datos, Machine Learning, Microsoft R Server. 14 IV Xornada de Usuarios de R en Galicia Santiago de Compostela, 19 de outubro do 2017 AN ´ ALISE DA INCIDENCIA DA LEUCEMIA GRANULOC´ ITICA EMPREGANDO A ESTIMACI ´ ON NON PARAM´ ETRICA DE CONXUNTOS DE NIVEL Paula Saavedra-Nieves1e Alberto Rodr´ıguez-Casal2 1Universidade de Vigo 2Universidade de Santiago de Compostela RESUMO Un problema fundamental en epidemiolox´ıa ´e determinar se as zonas nas que se concentran os casos dunha enfermidade se corresponden coas rexi´ons m´ais poboadas ou, polo contrario, existen ´areas de risco nas que a s´ua incidencia ´e maior. A estimaci´on non param´etrica de conxuntos de nivel ´e unha ferramenta estat´ıstica ´util para abordar este tipo de cuesti´ons. A partir dun conxunto de datos reais, analizaremos a incidencia da leucemia granuloc´ıtica en Lancashire e Greater Manchester estimando conxuntos de nivel con R. Palabras e frases chave: Estimaci´on non param´etrica. Conxuntos de nivel. Par´ametro de suavizado. Leucemia granuloc´ıtica RESUMO AMPLIADO A incidencia de certas enfermidades var´ıa dunhas rexi´ons a outras debido ´a influencia de factores ambientais de risco. Na actualidade, este tipo de cuesti´ons poden ser estudadas a partir das cantidades masivas de datos epidemiol´oxicos dispo˜nibles. A Figura 1 cont´en 1221 pares de puntos sobre as rexi´ons de Lancashire e Greater Manchester. Corresp´ondense coas coordenadas xeogr´aficas de residencia para 233 casos de leucemia granuloc´ıtica diagnosticados entre 1982 e 1998, xunto con 988 controis. Para unha descrici´on detallada dos datos, ver Henderson et al. (2002). Figura 1: Rexi´ons de Lancashire e Greater Manchester sobre o Noroeste de Inglaterra (esquerda), distribuci´on de 233 casos de leucemia diagnosticada (centro) e 988 controis (dereita) sobre as d´uas rexi´ons de interese. Un problema fundamental en epidemiolox´ıa ´e determinar se as zonas nas que se concentran, por exemplo, os casos de leucemia corresp´ondense coas zonas m´ais poboadas ou se existen zonas nas que 15 a incidencia da enfermidade ´e maior. A estimaci´on non param´etrica de conxuntos de nivel ´e unha ferramenta estat´ıstica moi ´util neste contexto. Esta teor´ıa oc´upase de reconstru´ır os conxuntos G(t) = {x:f(x)≥t}a partir dunha mostra aleatoria X1, . . . , Xndun vector aleatorio X, onde f representa a funci´on de densidade de Xet, un nivel positivo. Os estimadores do conxunto de nivel G(t) son fexibles debido a que non se asume ningunha hip´otese param´etrica sobre a distribuci´on dos datos. A cambio, certos par´ametros de suavizado que non resultan tan determinantes nas reconstruci´ons dos conxuntos deben ser estimados. Ver Samworth e Wand (2010) ou Walther (1997). Figura 2: Estimadores non param´etricos dos conxuntos de nivel para as mostras de 322 casos de leucemia (primeira fila) e 988 controis (segunda fila). En la cada columna, t=ti, i = 1,2,3 (columna i) con t1< t2< t3. Neste traballo, empregaremos R para reconstru´ır conxuntos de nivel a partir das mostras de casos e controis de leucemia granuloc´ıtica presentadas previamente. Na Figura 2, m´ostranse estimaci´ons obtidas considerando distintos valores do nivel t. Dacordo cos resultados mostrados, obs´ervase que casos e controis distrib´uense de xeito claramente distinto, ver terceira columna na Figura 2. Na parte norte do mapa, os casos de leucemia presentan unha intesidade maior. Greater Manchester ´e unha das rexi´ons metropolitanas m´ais grandes de Inglaterra. Sen embargo, Lancashire ´e unha zona industrializada con niveis altos de contaminaci´on que poden ser determinantes na elevada incidencia da enfermidade. AGRADECEMENTOS Os autores agradecen o soporte econ´omico do Ministerio de Econom´ıa e Competitividade a trav´es do proxecto MTM2016-76969-P (AEI/FEDER, UE) e o soporte econ´omico da Xunta de Galicia a trav´es dos ERDF (Grupos de Referencia Competitiva) ED431C 2016-040. Referencias [1] Henderson R., Shimakura S., Gorst D. (2002). Modeling spatial variation in leukemia survival data. Journal of the American Statistical Association 97, 965-972. [2] Samworth R.J., Wand M. P. (2010). Asymptotics and optimal bandwidth selection for highest density region estimation. Annals of Statistics 38, 1767-1792. [3] Walther G. (1997). Granulometric smoothing. Annals of Statistics 25, 2273-2299. 16 IV Xornada de Usuarios de R en Galicia Santiago de Compostela, 19 de outubro do 2017 RStudio COMO HERRAMIENTA PARA DESARROLLO DE MATERIAL DOCENTE INTERACTIVO Y MULTIMEDIA Alejandro Quintela del R´ıo1 1Departamento de Matem´aticas, Universidad de A Coru˜na RESUMEN Adem´as de servir para la realizaci´on de programas y material cient´ıfico reproducible, se mostrar´a la versatilidad de Rstudio para la creaci´on de material docente (clases y apuntes). En ellos pueden incluirse elementos multimedia (videos, animaciones, tablas y gr´aficos interactivos), c´odigo html, c´odigo latex, y facilitar el proceso de aprendizaje creando tutoriales y preguntas. Al poder convertirse directamente en una p´agina web, los apuntes ser´an accesibles a trav´es de internet a los alumnos, adem´as de poder publicarse en pdf o word. Palabras y frases clave: R, Rstudio, Rmarkdown, html. 1. INTRODUCI ´ ON RyRstudio, junto con el paquete Rmarkdown[1], permiten producir documentos que pueden convertirse f´acilmente en un documento Word, PDF, o guardarse como un archivo HTML que se puede alojar en cualquier sitio web. El archivo .Rmd (Rmarkdown) puede contener s´olo texto, como un simple informe escrito, o un documento mucho m´as complejo, con c´odigo R para producir diagramas, mapas o cualquier gr´afico que se pueda generar mediante R. No es necesario producir los gr´aficos y las tablas, y luego a˜nadirlos a un documento word, odt o latex, sino que todo ese trabajo puede ser realizado de una sola vez. Si se requiere que el documento se reproduzca con nuevos datos, resulta muy sencillo actualizar las instrucciones para volver a ejecutar el c´odigo y producir una nueva versi´on del documento. Actualmente, estamos trabajando en la realizaci´on de unos apuntes gen´ericos de una asignatura de estad´ıstica b´asica (descriptiva, probabilidad, variables aleatorias e introducci´on a la inferencia) utilizando estas herramientas, y paulatinamente vamos descubriendo lo que parece un sinf´ın de posibilidades. 2. CONTENIDOS B ´ ASICOS Una de las grandes ventajas de Rmarkdown es la producci´on de documentos formateados mediante una sint´axis muy simple, la cual puede consultarse en la plantilla general de referencia (Cheat Sheet)[2]. Mediante el paquete knitr[3] es posible introducir trozos de c´odigo (chunks) que se ejecutar´an al producirse el documento (tanto en word, pdf o html), pudiendo cambiarlo cuando queramos y producir resultados iguales o diferentes. Al ejecutar estos trozos de c´odigo (que incluso pueden incluirse en medio de una l´ınea del documento, generando en ´el los resultados), produciremos gr´aficas, tablas de resultados o diagramas que autom´aticamente se incluir´an en el trabajo final. 3. ALGUNAS CARACTER´ ISTICAS DE INTER´ ES 17 [4] McMurdie, P. J., & Holmes, S. (2013). phyloseq: An R Package for Reproducible Interactive Analysis and Graphics of Microbiome Census Data. PLoS ONE, 8(4), e61217. http://doi.org/10.1371/journal.pone.0061217 [5] Roche, D. G., Kruuk, L. E. B., Lanfear, R., & Binning, S. A. (2015). Public Data Archiving in Ecology and Evolution: How Well Are We Doing? PLoS Biology, 13(11), e1002295. http://doi.org/10.1371/journal.pbio.1002295 [6] William K. Michener, Ecological data sharing, Ecological Informatics, Volume 29, 2015, Pages 33-44, ISSN 1574-9541, http://dx.doi.org/10.1016/j.ecoinf.2015.06.010. 24 IV Xornada de Usuarios de R en Galicia Santiago de Compostela, 19 de outubro do 2017 EXTRACCI ´ ON DE DATOS DA WEB (Web Scraping) CON R Jos´e Luis Juncal P´erez RESUMO Extracci´on de datos a un ficheiro CSV, con formato definido polo cliente, de diversas webs abertas ´o p´ublico. Palabras e frases chave: obtenci´on de datos, scraping web, rvest, tidyverse. 1. INTRODUCI ´ ON Expor´anse as capacidades de extracci´on de datos da web en R. Comezar´ıa co porqu´e da elecci´on dos paquetes utilizados (rvest) e a s´ua adaptaci´on e integraci´on coa filosof´ıa Tidyverse (http://style.tidyverse.org/). No campo da extracci´on de datos na web, fariase un breve repaso ´o DOM (http://www.w3.org/DOM/) e farramentas auxiliares para facilitar a localizaci´on dos ´ıtems a obter. 2. EXPOSICI´ ON Cada vez m´ais, necesitamos extraer datos da web. Como analistas, volt´amonos m´ais aut´onomos no noso traballo xa que non precisamos de t´aboas ou ficheiros preparados por outros, ou APIs dos servicios web que utilizamos. Logo de evaluar os paquetes dispo˜nibles (httr, xml2, rvest e Rselenium) dec´ıdese utilizar rvest, por tres raz´ons: potencia, permite realizar extracci´ons complexas utilizando CSS Selectors ou XPath, sinxeleza, non necesita recursos complexos coma no caso de Rselenium, curva de aprendizaxe, xeito de traballo coherente coa filosof´ıa Tidyverse. O traballo proposto ´e a extracci´on de caracter´ısticas das lanas ´a venda no eCommerce de Katia (https://katia.com/) e adaptalo ´o formato de importaci´on de produtos de Prestashop. Xa que todos os campos a rechear ser´ıan repetitivos para a sesi´on, s´o se comentar´ıan os m´ais singulares, con trucos e boas pr´acticas. Principalmente, tratariamos c´omo obter cada caracter´ıstica por separado ou varias ´a vez, e ver cal modo conv´en en cada situaci´on. C´omo gardala informaci´on, e que campos a maiores se poder´ıan gardar en previsi´on de usos futuros. Por ´ultimo, boas pr´acticas ´a hora de colleitar informaci´on en webs alleas. Tam´en comentar´ıase por riba as capacidades avanzadas que teriamos con Rselenium, xa que ser´ıa o referente ´a hora de facer traballos m´ais complexos. 3. CONCLUSI´ ONS Cada vez m´ais, necesitamos obter datos por nos mesmos. Depender de outros para a obtenci´on e preparaci´on dos datos, pode supor sem´as (experiencia propia) ou que nunca nolos fagan dispo˜nibles de xeito adecuado (ficheiro, APIs, etc). Para un analista, dispor libremente de grande cantidade de datos ´e un dos maiores apoios ´o seu traballo, por iso creo que o campo da obtenci´on de datos ´e m´ais importante que o post-proceso e limpeza de datos en ficheiros alleos. 25 AUTORES Baluja González, A. ................................................................................................. 6 Branco, M. ............................................................................................................ 22 Cerviño, S. .............................................................................................................. 8 Espido Noya, P. ....................................................................................................... 4 Fanjul Hevia, A. ..................................................................................................... 20 Fernández Arias, M. ................................................................................................. 4 Gómez, A. .............................................................................................................. 8 Juncal Pérez, J.L. .................................................................................................. 25 López Cacheiro, J. ................................................................................................... 6 Mairena, D. ............................................................................................................. 8 Prieto Rodríguez, D. .............................................................................................. 13 Quintela del Río, A. ............................................................................................... 17 Rodríguez, A. .......................................................................................................... 8 Rodríguez Antolín, A. ............................................................................................... 5 Rodríguez Muínos, M.A. ........................................................................................... 5 Rodríguez-Casal, A. ............................................................................................... 15 Saavedra Nieves, P. ............................................................................................... 15 Soto, A. ................................................................................................................ 14 Veiguela Fernández, N. ............................................................................................ 2    26 