Cargar datos en R

… y ajustar un modelo GLM

Introducción

Este post quiere ser un pequeño acordeon (chuleta) de ciertas funciones y paquetes en R para hacer análisis espaciales.
Si, he aceptado que hay un montón de cosas que valen la pena en R y este es mi intento de volverme a acercar a ese lenguaje que sigo considerado obscuro y sucio. Sin embargo, a la comunidad de estadística le gusta. Supongo que por razones históricas y la típica ley de potencia de Winners take all… Yo

Supuestos

  • Datos extraidos de Biospytial y guardados en CSV en el backend de Redis.
    • > (Actualizado. el objeto en redis es un pickle de un DataFrame de Pandas. No he encontrado forma trivial de portar estos objetos en R. Se utiliza entonces un formato CSV (estandar) guardado con antelación)
  • Command-line. No hay interfáz gráfica

Preparación

  • Seleccionar un repositorio CRAN (alguno de los dos)
    chooseCRANmirror(graphics=FALSE)
    options(repos='http://cran.rstudio.com/')
  • Cargar driver de Redis
    • library('rredis')
  • Conectar a BD redis
  • redisConnect(host='redis',password='biospytial.')
     
  • Read data from CSV
    TDF = read.csv("/outputs/training_data_sample_puebla_p2_abies_pinophyta.csv")
    PDF = read.csv('/outputs/presence_only_models/predictors/dataset100x100-puebla-p2/0-pred.csv')
     

Definir el modelo

$$ Y(x) = Dist.Road + Pop.denst + vegtype$$ Se procederá a ajustar un modelo GLM con supuestos de independencia en los residuales (i.e. estandard GLM). formula = ‘Pinophyta ~ Dist.to.road_m + Population_m + tipos’ mod_sig = glm(formula, data=TDF, family=binomial()) summary(mod_sig) confint(mod_sig)    


			

Visualizar correlaciones en Python

En este post veremos como graficar correlaciones de una matrix de diseño multidimensional usando un correlograma con Python, Pandas y Seaborn.

Seaborn es una biblioteca para visualizar datos. Posee similares características a R.

Calcular correlaciones

Para hacer esto basta con utilizar el método ‘pandas.DataFrame.corrs()’. El método regresa un dataframe de salida. Esta estructura será utilizada por la funcion ‘heatmap’ de Seaborn.

Código:

Supongamos que tenemos un Pandas DataFrame llamado TDF.

Nota de actualización: Por alguna razón se perdió la imagen original. La estoy sustituyendo por otro correlograma. Este sin embargo no proviene de una “Matríz de diseño” si no de un modelo condicional de autocorrelación espacial. Aquí simplemente convertí la matriz generada por MCMC  que representa regiones geográficas como columnas y muestras (iteraciones) como renglones. El patrón es muy hermoso, da una apariencia textil, aunque no esta relacionado a esto en absoluto pues solo muestra la correlación entre regiones geográficas de un modelo CAR.

El código para desarrollar esto fue hecho en STAN y tengo pensado subirlo pronto. Por lo pronto, aquí les dejo la imágen y el código para visualizarlo.

import seaborn as sb
## El objecto cadenaMCMC fue generado por STAN (extract) 
phidf = pd.DataFrame(cadenaMCMC['phi'])
correlaciones = phidf.corr()
sb.heatmap(correlaciones)