R

Función de R para geolocalizar IP

R

El proyecto freegeoip tiene su propia función en R para poder crea un data frame con la geolocalización de las ips. La función la podéis encontrar en este enlace y tiene un funcionamiento muy sencillo:

[source languaje=»R»]
library(rjson)

localizacion1<-freegeoip(‘23.89.204.150’)

localizacion2<-freegeoip(c(‘106.78.232.100′,’174.6.153.88’))
[/source]

Resulta que no recordaba su existencia y ya tenía algo parecido en XML… pero siempre hay alguien que lo ha hecho antes con R. Saludo.

Aprende #rstats de forma presencial por muy poco

R

Ha llegado al Grupo de Usuarios de R de Madrid el siguiente curso de R:

Os anuncio el siguiente curso de análisis de estadístico de datos en R.

I Jornadas de Análisis Estadísticos de Datos en R: Un enfoque práctico.

A celebrarse:

del 14-17 de Noviembre de 2016
en Fuenlabrada (Madrid)
de 16:00 a 19:00.
Plazo de preinscripción: 20 de octubre al 4 de noviembre.

Precio matrícula 35 €

Existe la posibilidad de beca para conseguir matrículas de 10 €

El parámetro gamma, el coste, la complejidad de un SVM

letra_o_svm_r

Cuando clasificamos datos con SVM es necesario fijar un margen de separación entre observaciones, si no fijamos este margen nuestro modelo sería tan bueno tan bueno que sólo serviría para esos datos, estaría sobrestimando y eso es malo. El coste C y el gamma son los dos parámetros con los que contamos en los SVM. El parámetro C es el peso que le

damos a cada observación a la hora de clasificar un mayor coste implicaría un mayor peso de una observación y el SVM sería más estricto (este link aclara mejor las cosas). Si tuvieramos un modelo que clasificara observaciones en el plano como una letra O podemos ver como se modifica la estimación en esta secuencia en la que se ha modificado el parámetro C:

Mapas municipales de Argentina con R

Municipios Buenos Aires

En respuesta a un lector del blog he elaborado de forma rápida una nueva entrada que nos permite realizar mapas por municipalidades para Argentina, ya hay entradas similares pero está bien que este mapa tenga su propia entrada para facilitar las búsquedas. El ejemplo es rápido y es probable que el código tenga algún fallo o error, si es así lo comentáis y lo solvento. Como es habitual nos dirigimos a la web del proyecto Global Administrative Areas (http://www.gadm.org/country) y nos descargamos el mapa de Argentina por municipios que es el nivel 2, una vez descargado pocas líneas de R:
[sourcecode language=»r»]library(sp)
library(RColorBrewer)

El #brexit con #rstats o como mover spatial data con R

bye_england

Animación con R para ilustrar el uso de la función de maptools elide de código «insultantemente» sencillo:

library(maptools)
library(animation)

#Mapa descargado de:
#http://www.arcgis.com/home/item.html?id=6d611f8d87d54227b494d4c3becef6a0

ub_shp = "/Users/raulvaquerizo/Desktop/R/mapas/world/MyEurope.shp"
europa = readShapeSpatial(ub_shp)
plot(europa)

europa_sin_uk = europa[europaFIPS_CNTRY != "UK",]
uk = europa[europaFIPS_CNTRY == "UK",]

saveGIF(
for (i in seq(0,5,by=0.1)){
plot(europa_sin_uk)
uk = elide(uk,shift=c(-i,1))
plot(uk,add=TRUE)},
interval=.3,
movie.name="/Users/raulvaquerizo/Desktop/R/animaciones/brexit/bye_england.gif")

Nos descargamos el mapa del link que os pongo y poco más que leer el shape con readShapeSpatial y crear dos objetos uno con Europa sin la isla y otro con la isla, elide nos permite desplazar un objeto de spatial data dentro del gráfico y lo metemos en un bucle y bye England. Ahora el que me mueva las Canarias en un shape file con más de 2 líneas de código me paga una cervecita. Saludos.

El paquete de R weatherData para la obtención de datos meteorológicos en España

Tenía pendiente un proyecto con modelos de Lee Carter y el paquete weatherData de R (¡toma!) pero como no lo voy a llevar a cabo nunca os traigo a estas líneas un paquete más que interesante de R que nos permite obtener datos de las estaciones meteorológicas de los aeropuertos del mundo (https://www.wunderground.com/history/airport/) y encima te lo pone como un objeto de R, qué más podemos pedir. En github tenéis una completa batería de ejemplos de uso. En el caso de que necesitemos descargar información meteorológica de España tenemos que irnos a http://weather.rap.ucar.edu/surface/stations.txt donde están listados todos los aeropuertos que recoge este sistema de información, buscamos SPAIN y nos interesa el «ICAO» que es el International Civil Aviation Organization , el código del aeropuerto vamos. Con estas premisas si quiero recoger las temperaturas de 2015 del aeropuerto de Albacete:

Truco SAS. Como leer PC Axis con SAS

Estoy leyendo información del INE que tiene que terminar cargándose en SAS y estos datos están en formato PC Axis. Existen macros en SAS para generar datasets a partir de PC Axis pero la verdad es que no he llegado a entender muy bien como funcionan y tras varios errores la mejor opción que he encontrado es emplear R y el paquete pxR que han creado algunos miembros de la Comunidad de R-Hispano. Como realizo esta tarea es más que sencillo:

Cartografía digitalizada de España por sección censal

Por si no lo sabéis tenemos disponible en la web del INE un mapa de España por sección censal que podéis descargaros y realizar mapas con R de una forma que es más que conocida para los lectores del blog:

#mapas con secciones censales
library(maptools)
ub_shp = "/Users/raulvaquerizo/Desktop/R/mapas/cartografia_censo2011_nacional/SECC_CPV_E_20111101_01_R_INE.shp"
seccion_censal = readShapeSpatial(ub_shp)
barcelona = seccion_censal[seccion_censal$NMUN=="Barcelona",]
plot(barcelona)

Barcelona_mapa_seccion_censal

A ver si me animo y preparo una BBDD para que podáis acceder desde QGIS a una serie de mapas como este, además de los mapas por código postal. Aunque necesitaría un poco de ayuda técnica (ahí lo dejo). Saludos.

Adyacencia de polígonos con el paquete spdep de R

Cuando trabajamos con zonificación o geolocalización la adyacencia entre los elementos del estudio es relevante. En este caso quería trabajar con la adyacencia entre los polígonos que componen un archivo de datos espaciales shapefile y para entender mejor como podemos obtener la adyancecia entre polígonos creo que lo mejor es hacer un ejemplo con un mapa, en este caso un mapa de municipios de Barcelona. El primer paso es disponer del objeto con los datos espaciales, de esto ya he escrito mucho en el blog y por eso no me detengo mucho:

Resolución del juego de modelos con R

Hace mucho planteé un juego de identificación de modelos con R y ya se me había olvidado daros la solución. Pensando en el Grupo de Usuarios de R y en hacer algo parecido en una presentación recordé que había que solucionar el ejercicio. Lo primero es la creación de los datos, se me ocurrió una función sencilla y una nube de puntos alrededor de ella:

#Variable independiente
indep = runif(500,100,500)
#Función para crear la variable dependiente
foo = function(x){ mean(x)*(1-sin(-0.006042*x))
}
dep = sapply(indep,foo)

dep=dep+(runif(length(dep),-100,100))
datos = data.frame(cbind(indep,dep))
plot(datos)

juego_modelos1

Reunión del Grupo de Usuarios de R de Madrid 12/05/2016

R

Nueva reunión del Grupo de Usuarios de R de Madrid en MediaLab Prado. No está publicado en la web por temas de cerrar definitivamente las agendas. De momento las propuestas son:

• Iñaki Úcar: «Presentación de simmer (Discrete Event Simulation in R)». Iñaki nos presentará simmer. Un paquete que ha creado para poder realizar análisis y simulaciones de eventos discretos (DES) en R. Con este paquete se pueden realizar simulaciones para el estudio de la evolución de sistemas teniendo en cuenta diferentes tipos de gestión de colas.

Valor atípico o pocos registros. Animación con R

outlier¿Cómo influye un solo punto en una recta de regresión? Evidentemente cuanto menos observaciones tengo más puede «descolocar» la recta de regresión. Sin embargo, cuantos más puntos tengo más complicado es encontrar ese punto con una recta de regresión, sin analizar los residuos podríamos hasta pasarlo por alto, aunque puede ser que nos interese ese punto. El código de R que genera la animación es:

library(animation)
saveGIF(
for (i in c(100,50,25,10,5,1)){
x <- seq(-500,500, by = i )
y=sin(x)+x/100
y[10]=y[10]+10
plot (y,x,main=paste(«Regresión lineal con «,1000/i,» observaciones»))
reg <- lm(y~x)
points( fitted.values(reg),x, type=»l», col=»red», lwd=2)},
interval = .85, ,movie.name=»/Users/raulvaquerizo/Desktop/R/animaciones/outlier.gif»)

Reunión del Grupo de Usuarios de R de Madrid 14/04/2016

R

Nueva reunión del Grupo de Usuarios de R de Madrid este jueves día 14 de abril de 2016, para más detalles:

http://madrid.r-es.org/34-jueves-14-de-abril-2016/

La agenda de la reunión será:

  • Pedro Concejero: “Análisis de datos de accidentes de tráfico – DGT“.
  • Miguel Ángel Gómez: “Análisis de Sentimiento – Aplicación a noticias Financieras”
  • Carlos J. Gil Bellosta: “Posibilidades de interacción entre R y Python a través del nuevo paquete feather”

Si el tiempo me lo permite por allí estaré. Saludos