################################################################################ ### TALLER FUNDAMENTOS DE R ### ### EJERCICIO 6.2 ### ### ### ### Center for Conservation and Sustainable Development ### ### Missouri Botanical Garden ### ### Sitio en la red: rbasicsworkshop.weebly.com ### ################################################################################ ## OBJETIVO: ## El objetivo de este ejercicio es familiarizarse con representaciones ## simples de datos espaciales basadas en vectores, matrices y marcos de datos. ## Además, algunas tareas de este ejercicio introducen clases de objetos que han ## sido específicamente diseñadas para realizar análisis espaciales. # El siguiente código crea un vector, llamado "s.A", que representa puntos # espaciados regularmente a lo largo de un transecto a través de una región # hipotética "A": s.A <- seq(0, 18.850, 0.1) # El siguiente código crea un vector, llamado "y.A", que representa la variación # espacial de una variable ambiental "y" a lo largo del transecto que cruza la # región "A": y.A <- sin(s.A) ## TAREA 1: Haga una gráfica de la variación geográfica de la variable "y" ## a lo largo del transecto espacial que cruza la región "A", utilizando ## la función *plot*. Note la variación sinusoidal (en ondas) de la variable ## "y". ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 2: cree un vector, llamado "s.B", que represente las cordenadas ## geográficas de un transecto a través de una región hipotética "B". Los ## valores de este vector deben ser iguales a aquellos en el vector "s.A". ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 3: Cree un vector llamado "y.B" que represente la variación espacial ## de la variable "y" a lo largo del transecto que cruza la región hipotética ## "B". Hágalo usando la función *sort* para ordenar los valores de "y.A" ## de menor a mayor, y asignando el resultado de esta función al vector "y.B". ## Lea la página de ayuda de la función *sort* si es necesario. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 4: Haga una gráfica de la variación geográfica de la variable "y" a ## lo largo del transecto espacial que cruza la región "B", utilizando la ## función *plot*. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 5: use la función "points" para adicionar a la gráfica anterior la ## representación de la variación geográfica de la variable "y" a lo largo ## del transecto espacial que cruza la región "A". Asegurese de utilizar la ## simbolos de color distinto a los de la gráfica anterior, para diferenciar ## las regiones "A" y "B". ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 6: cree una leyenda para la gráfica que acaba de construir, utilizando ## la función *legend*. Asegúrese de leer la página de ayuda de la función ## *legend*. La leyenda debe indicar qué simbolos se utilizan para representar ## cada región ("A" y "B"). ## ESCRIBA SU RESPUESTA AQUÍ: # El contraste entre las regiones "A" y "B" en la patrón espacial de la # variable ambiental "y" ilustra un concepto central en el análisis de datos # espaciales: la diferencia entre dos tipos de heterogeneidad (Wiens, 2000, # Ecological heterogeneity: an ontogeny of concepts and approaches; # Jiménez & Ricklefs, 2014, Diversity anomalies and spatial climate # heterogeneity, Global Ecology and Biogeography 23: 988-999): # i) heterogeneidad en constitución ó heterogeneidad espacialmente implícita: # variación entre diferentes sitios, sin considerar la distancia que separa # los sitios. # ii) heterogeneidad en disposición espacial ó heterogeneidad espacialmente # explícita: distribución espacial de sitios con diferentes características. ## TAREA 7: confirme que la heterogeneidad en constitución (espacialmente ## implícita) de la variable "y" en la región "A" es idéntica a aquella de la ## región "B", utilizando las funciones *var*, *range* y *IQR* para calcular ## la varianza, el rango y el rango intercuartil de la variable "y" en ambas ## regiones. ## ESCRIBA SU RESPUESTA AQUÍ: # En las siguientes tareas comparará la heterogeneidad distribucional # (espacialmente explícita) de la variable "y" en la región "A" con aquella de # la región "B", utilizando la función *dist* para examinar gráficamente la # relación entre la distancia geográfica y el cambio en la variable "y". Lea la # ayuda para la función *dist*. Con el siguiente código se obtiene un objeto de # clase "dist" que contiene la distancia espacial entre todos los puntos del # transecto a lo largo de la región "A": dist(s.A) # de forma similar, con el siguiente código se obtiene un objeto de clase # "dist" que contiene la diferencia en la variable "y" entre todos los puntos # del transecto a lo largo de la región "A": dist(y.A) ## TAREA 8: grafique la relación entre la distancia geográfica, dist(s.A), y el ## cambio en la variable "y", dist(y.A), en la región "A", utilizando la ## función *plot*. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 9: grafique la relación entre la distancia geográfica y el cambio en ## la variable "y" en la región "B", utilizando la función *plot*. ## ESCRIBA SU RESPUESTA AQUÍ: # para comparar más facilmente las regiones "A" y "B" en términos de la relación # entre la distancia geográfica y el cambio en la variable "y", puede utilizar # la función *dev.new* para abrir una ventana gráfica adicional. Empieze por # graficar la relación entre la distancia geográfica y el cambio en la variable # "y" para la región "A". Despué corra este código para abrir una nueva ventana # gráfica: dev.new() # ahora grafique la relación entre la distancia geográfica y el cambio en la # variable "y" para la región "B". Ahora puede comparar fácilmente ambos # gráficos. Visite la página de ayuda de la función *dev.new* para # familiarizarse con esta y otras funciones que controlan las ventanas gráficas. # Por ejemplo, la función *dev.set* determina cuál ventana gráfica está activa # (es decir, lista para graficar). El siguiente código hace que la ventana # gráfica número 2 esté activa: dev.set(2) ## TAREA 10: la instalación de R incluye varias bases de datos, entre ellas ## una descripción topográfica del volcán Maunga Whau, en el Mt Eden, localizado ## en Auckland (Nueva Zelanda). Esta base de datos, llamada "volcano", es un ## ejemplo de cómo la información espacial puede representarse de forma simple ## en un objeto de clase matriz. Cargue la base de datos "volcano" con este ## código: data(volcano) ## imprima la base de datos en la consola con este código: volcano ## Utilice la función *dim* para determinar el ## número de filas y columnas de la matriz "volcano". ## ESCRIBA SU RESPUESTA AQUÍ: # La función *image* puede utilizarse para crear un mapa topográfico del volcán # Maunga Whau: image(volcano) # y la función *contour* puede utilizarse para adicionar a la gráfica anterior # lineas que muestren cota de elevaciones particulares: contour(volcano, levels=c(140), add=T) ## TAREA 11: el mapa topográfico del volcán Maunga Whau construido con la ## función *image* es una cuadrícula en la que cada cuadrado (o celda) ## representa una posición geográfica en el volcán. Visite la página de ayuda de ## la base de datos "volcano" para averiguar la escala espacial de tal ## cuadrícula. Después utilice la función *image* para crear un mapa topográfico ## del volcán Maunga Whau a la escala espacial correcta. Note que el código ## arriba (image(volcano)) no tiene la escala espacial correcta, porque utiliza ## los valores por defecto de los argumentos "x" y "y" de la función *image*. ## Visite la página de ayuda de la función "image" para entender el uso de estos ## argumentos. Además, utilice el argumento "xlab" para darle al eje horizontal ## el nombre "Oriente - Occidente (m)", y el argumento "ylab" para darle al eje ## vertical el nombre "Sur - Norte (m)". ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 12: Adicione al mapa anterior (el que creó en la TAREA 11) cotas de ## elevación de las siguientes altitudes: 100, 120, 140, 160 y 180 metros sobre ## el nivel del mar. Asegurese de utilizar la escala espacial correcta. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 13: instale el paquete "sp" y cárguelo en su sesión de R. Este es uno ## de los paquetes más importantes para análisis espaciales en R. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 14: el paquete "sp" incluye una base de datos llamada "meuse.riv", ## que es un objeto de clase matriz con las coordenadas geográficas del contorno ## del río Meuse en los alrededores de Stein (Holanda). Cargue esta base de ## datos en su sesión de R, cerciorese de la clase del objeto utilizando la ## función *class* y examine sus dimensiones con la función *dim* ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 15: use la función *plot* para dibujar el contorno del río Meuse, ## utilizando los argumentos "type" y "col" para representar el contorno del río ## como líneas (no puntos) azules. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 16: use la función *polygon* para dibujar el contorno del río Meuse, ## utilizando los argumentos "border" y "col" para representar el río como un ## polígono azul. Si es necesario, visite la página de ayuda para la función ## *polygon* y estudie sus argumentos. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 17: el paquete "sp" incluye una base de datos llamada "meuse", ## que es un objeto de clase "marco de datos" con información espacial sobre ## la concentración de metales pesados, características del suelo y uso de la ## tierra en el valle del río Meuse cerca de Stein (Holanda). Cargue esta base ## de datos en su sesión de R, cerciorese de la clase del objeto utilizando ## la función *class* y examine sus dimensiones con la función *dim*. ## ESCRIBA SU RESPUESTA AQUÍ: # El siguiente código produce un mapa de los sitios muestreados que se incluyen # en la base de datos "meuse", y después adiciona al mapa el contorno del río # Meuse: plot(meuse$x, meuse$y, col="gray90", pch=21, xlab = "Coordenadas hacia el Este en el sistema Rijksdriehoek (m)", ylab = "Coordenadas hacia el Norte en el sistema Rijksdriehoek (m)") polygon(meuse.riv, col="blue", border="blue") ## TAREA 18: utilice la función *points* para adicionar al mapa anterior ## simbolos redondos de color rojo (argumentos pch=19 y col="red") que ## indiquen la posición de sitios con agricultura de maíz. Para hacer esta ## tarea, visite la página de ayuda de la la base de datos "meuse", y lea ## la descripción de la variable sobre el uso de la tierra ("landuse"). ## La sección del taller sobre indexación lógica es útil para hacer esta ## tarea. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 19: utilice la función *points* para adicionar al mapa anterior ## simbolos redondos verdes (argumentos pch=19 y col="green") que ## indiquen la posición de sitios con pasto. Visite la página de ayuda de ## la base de datos "meuse", y lea la descripción de la variable sobre el ## uso de la tierra ("landuse"). La sección del taller sobre indexación ## lógica es útil para hacer esta tarea. ## ESCRIBA SU RESPUESTA AQUÍ: # El siguiente código adiciona una leyenda al mapa que acaba de crear, # visite la página de ayuda de la función *legend* para familiarizarse # con los argumentos de esta función: legend(x=178530, y=333710, c("Maíz", "Pasto", "Otros"), pch=c(19, 19, 21), col=c("red", "green", "gray70")) # El siguiente código adiciona un título al mapa que acaba de crear, visite # la página de ayuda de la función *mtext* para familiarizarse con el uso # de tal función: mtext(side=3, "Distribución de cultivos de maíz y pastos", line=2.5, cex=1.3) mtext(side=3, "en el valle del río Meuse", line=1, cex=1.3) ## TAREA 20: ¿Cuál es la concentración promedio de plomo (en unidades de ## mg/kg, o ppm) en el suelo de los sitios muestreados que se incluyen en ## la base de datos "meuse"? Para hacer esta tarea, visite la página de ayuda ## de la base de datos "meuse", y lea la descripción de la variable sobre la ## concentración de plomo ("lead"). Utilice la función *mean* para calcular ## el promedio. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 21: ¿Cuál es la concentración promedio de cadmio (en unidades de ## mg/kg, o ppm) en el suelo de los sitios muestreados que se incluyen en ## la base de datos "meuse"? Para hacer esta tarea, visite la página de ayuda ## de la base de datos "meuse", y lea la descripción de la variable sobre la ## concentración de cadmio ("cadmium"). Utilice la función *mean* para ## calcular el promedio. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 22: Cree, de nuevo, un mapa de los sitios muestreados que se incluyen ## en la base de datos "meuse", y después adicione al mapa el contorno del río ## Meuse. Utilice código muy similar al que está justo antes de la TAREA 18, ## con las funciones *plot* y *polygon*, pero usando puntos grises "llenos" ## (argumento pch=19 de la fuinción *plot*) para representar los puntos ## muestreados. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 23: utilice la función *points* para adicionar al mapa anterior ## simbolos redondos de color naranja (argumentos pch=19 y col="orange") ## que indiquen la posición de sitios que con una concentración de plomo ## superior al promedio para todos los sitios muestreados. La sección del ## taller sobre indexación lógica es útil para hacer esta tarea. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 24: utilice la función *points* para adicionar al mapa anterior ## simbolos abiertos, redondos y de color rojo (argumentos pch=21 y ## col="red") que indiquen la posición de sitios con una concentración de ## cadmio superior al promedio para todos los sitios muestreados. Utilice ## el argumento "cex" para asegurese que los símbolos son de mayor tamaño ## que los que empleó en la TAREA 23, por ejemplo, puede darle un valor de ## 1.5 al argumento "cex" (cex=1.5). La sección del taller sobre indexación ## lógica es útil para hacer esta tarea. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 25: ¿Cuál es el percentil septuagésimo quinto de la concentración ## de plomo (en unidades de mg/kg, o ppm) en el suelo de los sitios muestreados ## que se incluyen en la base de datos "meuse"? Utilice la función *quantile* ## para calcular el septuagésimo quinto percentil. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 26: ¿Cuál es el percentil septuagésimo quinto de la concentración ## de cadmio (en unidades de mg/kg, o ppm) en el suelo de los sitios muestreados ## que se incluyen en la base de datos "meuse"? Utilice la función *quantile* ## para calcular el septuagésimo quinto percentil. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 27: Cree, de nuevo, un mapa de los sitios muestreados que se incluyen ## en la base de datos "meuse", y después adicione al mapa el contorno del río ## Meuse. Utilice el mismo código que utilizó en la TAREA 22. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 28: utilice la función *points* para adicionar al mapa anterior ## simbolos redondos de color naranja (argumentos pch=19 y col="orange") ## que indiquen la posición de sitios con una concentración de plomo ## superior al percentil septuagésimo quinto de los sitios muestreados. ## La sección del taller sobre indexación lógica es útil para hacer esta tarea. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 29: utilice la función *points* para adicionar al mapa anterior ## simbolos abiertos, redondos y de color rojo (argumentos pch=21 y ## col="red") que indiquen la posición de sitios con una concentración de ## cadmio superior al percentil septuagésimo quinto de los sitios muestreados. ## Utilice el argumento "cex" para asegurese que los símbolos son de mayor ## tamaño que los que empleó en la TAREA 28. La sección del taller sobre ## indexación lógica es útil para hacer esta tarea. ## ESCRIBA SU RESPUESTA AQUÍ: # Los mapas de variables continuas, como la concentración de plomo o cadmio # en el suelo del valle del río Meuse, son comunes en análisis espaciales. # Los mapas creados en las TAREAS 22-24 y 27-29 son ejemplos de tales mapas. # Como un ejemplo adicional, el siguiente código crea un vector de colores # para elaborar un mapa de la concentración de plomo en el valle del río # Meuse. En particular, el vector asigna color azul a valores de la # concentración de plomo menores o iguales a la mediana de los sitios # muestreados, y color rojo al resto de sitios: color.mitades.plomo <- rep("green", times=length(meuse$lead)) color.mitades.plomo[meuse$lead > quantile(meuse$lead, probs=c(0.5))] <- "red" # el siguiente código utiliza el vector que acaba de crear, # "color.mitades.plomo" para elaborar un mapa de la concentración de plomo: plot(meuse$x, meuse$y, col="gray90", pch=21, xlab = "Coordenadas hacia el Este en el sistema Rijksdriehoek (m)", ylab = "Coordenadas hacia el Norte en el sistema Rijksdriehoek (m)") polygon(meuse.riv, col="blue", border="blue") points(meuse$x, meuse$y, col=color.mitades.plomo, pch=19) # el código enseguida adiciona la leyenda del mapa legend(178530, 333710, c( paste("(", quantile(meuse$lead, probs=c(0.5)), ",", max(meuse$lead), "]", sep=""), paste("[", min(meuse$lead), ",", quantile(meuse$lead, probs=c(0.5)), "]", sep="") ), pch=19, col=c("red", "green")) # y por último, el siguiente código agrega el título del mapa: mtext(side=3, "Concentración de plomo en el suelo (ppm)", line=2.5, cex=1.3) mtext(side=3, "del valle del río Meuse", line=1, cex=1.3) ## TAREA 30: cree un vector de colores para elaborar un mapa que muestre ## cuatro categorías de la concentración de plomo en el valle del río ## Meuse, según los cuartiles de esta variable. Las categorías deben ## representarse, de menor a mayor, por los colores: verde, amarillo, naranja ## y rojo. Empiece por crear un vector de colores en el que todos los valores ## son verde: color.cuartiles.plomo <- rep("green", times=length(meuse$lead)) ## ahora asigne color amarillo a los valores mayores al primer cuartil: color.cuartiles.plomo[meuse$lead > quantile(meuse$lead, probs=c(0.25))] <- "yellow" ## enseguida asigne color naranja a los valores mayores a la mediana: color.cuartiles.plomo[meuse$lead > quantile(meuse$lead, probs=c(0.5))] <- "orange" ## por último asigne color rojo a los valores mayores al tercer cuartil: ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 31: utilice el vector de colores que acaba de crear, ## "color.cuartiles.plomo" para elaborar un mapa de la concentración de plomo. ## El mapa debe mostrar el contorno del río Meuse en azul. Asegurese de incluir ## los nombres y unidades de los ejes horizontal y vertical. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 32: adicione la leyenda (utilizando la función "legned") y el título ## (utilizando la función *mtext*) al mapa que acaba de crear. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 33: cree un vector de colores para elaborar un mapa que muestre ## cuatro categorías de la concentración de cadmio en el valle del río ## Meuse, según los cuartiles de esta variable. Las categorías deben ## representarse, de menor a mayor, por los colores: verde, amarillo, naranja ## y rojo. Utilice la función *quantile* para crear este vector. El vector ## debe llamarse "color.cuartiles.cadmio" ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 34: utilice el vector de colores que acaba de crear, ## "color.cuartiles.cadmio", para elaborar un mapa de la concentración de cadmio. ## El mapa debe mostrar el contorno del río Meuse en azul. Asegurese de incluir ## los nombres y unidades de los ejes horizontal y vertical. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 35: adicione la leyenda (utilizando la función "legned") y el título ## (utilizando la función *mtext*) al mapa que acaba de crear. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 36: grafique la relación entre la concentración de plomo y cadmio ## en el suelo de los sitios muestreados en el valle del río Meuse. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 37: utilice la función *cor.test* para estimar la correlación entre ## la concentración de plomo y cadmio en el valle del río Meuse. Mida la ## la correlación con base en el coeficiente de Pearson. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 38: utilice la función *pairs* para graficar la relación entre la ## concentración de todos los pares de metales pesados incluidos en la base ## de datos "meuse": cadmio, cobre, plomo, y zinc. Visite la página de ayuda ## de esta función para familiarizarse con sus argumentos. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 39: utilice la función *cor* para estimar la matriz de correlación ## entre la concentración de todos los pares de metales pesados incluidos en ## la base de datos "meuse": cadmio, cobre, plomo, y zinc. Evite escribir ## la función *cor* multiples veces (i.e., una vez para cada par de metales ## pesados). El código en su respuesta debe utilizar la función *cor* una ## sola vez. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 40: grafique la relación entre la distancia al río Meuse (eje horizontal) ## y la concentración de plomo en el suelo del valle del río Meuse (eje vertical). ## Visite la página de ayuda de la base de datos "meuse" para ver qué columna(s) ## tiene(n) información sobre distancia al río Meuse. Utilice los argumentos ## "xlab" y "ylab" para indicar los nombres y unidades de las variables ## representadas por el eje horizontal y vertical, respectivamente. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 41: grafique la relación entre la distancia al río Meuse (eje horizontal) ## y la concentración de cadmio en el suelo del valle del río Meuse (eje vertical). ## Utilice los argumentos "xlab" y "ylab" para indicar los nombres y unidades de ## las variables representadas por el eje horizontal y vertical, respectivamente. ## ESCRIBA SU RESPUESTA AQUÍ: # las gráficas anteriores (TAREAS 40 y 41) sugieren que la concentración de # metales pesados en el suelo disminuye con la distancia al río Meuse, tal cual # sugieren algunos de los mapas elaborados en las tareas anteriores. Además, las # dos graficas anteriores sugieren que la relación entre distancia y # concentración de metales pesados no es lineal: la disminución de la # concentración de metales pesados en el suelo es muy rápida a distancias # relativamente cortas, y menos pronunciada a distancias mayores. Por lo tanto, # es posible que una transformación logaritmica de la distancia resulte en una # relación aproximadamente lineal entre distancia al río y concentración de # metales pesados. ## TAREA 42: grafique la relación entre el logaritmo de la distancia al río Meuse ## (eje horizontal) y la concentración de plomo en el suelo del valle del río # Meuse (eje vertical). Utilice los argumentos "xlab" y "ylab" para indicar los ## nombres y unidades de las variables representadas por el eje horizontal y ## vertical, respectivamente. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 43: use la función *lm* para ajustar un modelo de regresión lineal en ## el que la variable de respuesta (variable dependiente) es la concentración ## de plomo en el suelo del valle del río Meuse y la variable independiente es ## el logaritmo de la distancia al río Meuse. Asigne el resultado (utilizando ## el operador "<-") a un objeto llamado "modelo.plomo", y utilice la función ## *summary* para examinar la magnitud, precisión (el error estandar) y ## significancia estadística de los coeficientes de regresión. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 44: utilice la función *abline* para adicionar la linea de regresión ## del "modelo.plomo" a la figura que creó en la TAREA 42. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 45: grafique la relación entre el logaritmo de la distancia al río Meuse ## (eje horizontal) y la concentración de cadmio en el suelo del valle del río ## Meuse (eje vertical). Utilice los argumentos "xlab" y "ylab" para indicar los ## nombres y unidades de las variables representadas por el eje horizontal y ## vertical, respectivamente. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 46: use la función *lm* para ajustar un modelo de regresión lineal en ## el que la variable de respuesta (variable dependiente) es la concentración de ## cadmio en el suelo del valle del río Meuse y la variable independiente es el ## logaritmo de la distancia al río Meuse. Asigne el resultado (utilizando el ## operador "<-") a un objeto llamado "modelo.cadmio", y utilice la función ## *summary* para examinar la magnitud, precisión (el error estandar) y ## significancia estadística de los coeficientes de regresión. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 47: utilice la función *abline* para adicionar la linea de regresión del ## "modelo.cadmio" a la figura que creo en la TAREA 45. ## ESCRIBA SU RESPUESTA AQUÍ: # La correlación espacial es una medida de heterogeneidad en disposición espacial # ó heterogeneidad espacialmente explícita (ver texto bajo la TAREA 6). En # particular, la correlación espacial mide la relación entre valores observados ## en sitios próximos o vecinos (Legendre and Legendre 2012, Numerical Ecology. # Elsevier). Una medida de la correlación espacial es la I de Moran. Lea la # ecuación 7.3 en la página 232 de Bocard et al. (2011, Numerical Ecology. # Springuer), disponible en: # http://rbasicsworkshop.weebly.com/books.html # Asegurese de leer el texto al final de la página 232 y reflexione sobre el # significado de la ecuación 7.3. El código abajo calcula la correlación espacial # en la concentración de plomo en el suelo del valle del río Meuse. Para ello, # es necesario instalar y cargar el paquete "spdep" en su sesión de R: install.packages("spdep") library(spdep) # Para tener una idea de la frecuencia de las distancias geográficas entre # los puntos de muestreo a las que queremos calcular la I de Moran, puede # utilizar las funciones *dist* e *hist*: hist(dist(meuse[,1:2]), breaks=100, main="", xlab="Distancia entre puntos de muestreo (m)", ylab="Frecuencia (pares de puntos de muestreo)") # este histograma sugiere que puede calcular la I de Moran definiendo sitios de # muestreo próximos (o vecinos) como aquellos a distancias menores o iguales a # 500 metros. Visite la página de ayuda de la función *dnearneigh* del paquete # "spdep", que utilizará para definir sitios de muestreo vecinos. Note que el # primer argumento "x" debe ser una matriz (o un objeto de clase "SpatialPoints", # especializado para análisis espaciales) con las coordenadas de los sitios de # muestreo. Note que al indexar las coordenadas de los sitios de muestreo se # produce un marco de datos ("data frame") y no una matriz: class(meuse[,1:2]) # por lo tanto es necesario utilizar la función *as.matrix* para definit el # valor del argumento "x" de la función *dnearneigh*: sitios.vecinos <- dnearneigh(x=as.matrix(meuse[,1:2]), d1=0, d2=500) # El objeto resultante, sitios.vecinos, es de clase "nb" que es una clase de # objetos especializada en representar relaciones de proximidad (vecindad) # espacial entre sitios: class(sitios.vecinos) summary(sitios.vecinos) str(sitios.vecinos) # El resultado de la función *str* revela que la clase "nb" es una lista con # una estructura particular. El primer elemento de la lista contiene los # sitios vecinos al sitio representado en la primera fila del marco de datos # "meuse". Estos vecinos se identifican por la fila en la que se encuentran # en el marco de datos "meuse": sitios.vecinos[[1]] # para afianzar esta idea, estudie el siguiente código, que muestra en un # mapa de todos los sitios muestreados en el valle del río Meuse, resaltando # en rojo un sitio focal y en gris los sitios vecinos al sitio focal: plot(meuse$x, meuse$y, col="gray90", pch=21, xlab = "Coordenadas hacia el Este en el sistema Rijksdriehoek (m)", ylab = "Coordenadas hacia el Norte en el sistema Rijksdriehoek (m)") polygon(meuse.riv, col="blue", border="blue") points(meuse$x[1], meuse$y[1], col="red", pch=19) points(meuse$x[sitios.vecinos[[1]]], meuse$y[sitios.vecinos[[1]]], col="gray70", pch=19) ## TAREA 48: modifique el código anterior para mostrar los sitios vecinos al ## sitio que está en la fila 50 del marco de datos "meuse". Para empezar, ## el siguiente código identifica los vecinos de este sitio: sitios.vecinos[[50]] ## ahora modifique el código inmediatamente anterior a esta tarea para ## elaborar un mapa que resalte en rojo el sitio focal (que está en la ## fila 50 del marco de datos "meuse") y en gris sus vecinos. ## ESCRIBA SU RESPUESTA AQUÍ: # Enseguida utilizara el objeto "sitios.vecinos" para estimar la correlación # espacial, medida con la I de Moran. Para ello el siguiente código usa la # función *sp.correlogram*. El argumento "order" determina la distancia hasta # la cual se calcula la correlación espacial. Si "order=1", la correlación se # calcula sólo para los vecinos inmediatos, definidos en el objeto de clase # "nb"; si "order=2", la correlación espacial se calcula para los vecinos # inmediatos y, también, para sitios que están más distantes, dos veces la # distancia de los vecinos inmediatos. Y así sucesivamente. Visite la página # de ayuda de la función *sp.correlogram* para familiarizarse con sus # argumentos y después estudie este código: correlograma.plomo <- sp.correlogram(neighbours=sitios.vecinos, var=meuse$lead, order = 5, method = "I") # El objeto resultante, "correlograma.plomo", es de clase "spcor". Esta es una # clase de objetos especializada para análisis espaciales. Cerciorese de la # clase del objeto "correlograma.plomo" y examine su estructura utilizando las # funciones *str* y *attributes*: class(correlograma.plomo) str(correlograma.plomo) attributes(correlograma.plomo) # el resultado de la función *str* permite observar que la clase "spcor" es un # tipo particular de lista. La estructura de esta lista está descrita en la # sección "Value" de la página de ayuda para la función "sp.correlogram". El # siguiente código imprime en la consola los valores calculados de la I de Moran # para cinco categorías de vecinos ("estimate"), el valor esperado bajo la # hipótesis nula de no correlación espacial ("expectation") y su varianza # ("variance"), el grado en el que el valor observado se desvia de la hipótesis # nula ("standard deviate") y el valor de significancia estadística ("Pr(I) two # sided"): print(correlograma.plomo) # el siguiente códifo grafica estos resultados para las cinco categorías de # vecinos: plot(correlograma.plomo) ## TAREA 49: La correlación espacial de los residuos de análisis de regresión ## basados en datos espaciales, como aquellos contenidos en "modelo.plomo" y ## "modelo.cadmio", es importante en análisis espaciales (ver página 9 en ## Legendre & Legendre 1998, disponible en: ## http://rbasicsworkshop.weebly.com/books.html). Calcule y grafique la ## correlación espacial entre los residuos del "modelo.plomo", utilizando la ## I de Moran. Para empezar puede utilizar la función *residuals* para obtener ## los residuos del "modelo.plomo": residuals(modelo.plomo) ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 50: elabore un mapa que muestre los residuos del "modelo.plomo", ## utilizando cuatro colores para mostrar cuatro particiones de los residuos ## según los cuartíles. Asegurese de incluir los nombres y unidades de los ejes ## horizontal y vertical, el título de la gráfica (podría utilizar la función ## *mtext*), y una leyenda. El código de las TAREAS 30-35 le ayudará a hacer ## esta tarea. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 51: Calcule y grafique la correlación espacial entre los residuos del ## "modelo.cadmio", utilizando la I de Moran. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 52: elabore un mapa que muestre los residuos del "modelo.cadmio", ## utilizando cuatro colores para mostrar cuatro particiones de los residuos ## según los cuartíles. El mapa debe mostrar el contorno del río Meuse. ## Asegurese de incluir los nombres y unidades de los ejes horizontal y vertical, ## el título de la gráfica (podría utilizar la función *mtext*), y una leyenda. ## El código de las TAREAS 30-35 le ayudará a hacer esta tarea. ## ESCRIBA SU RESPUESTA AQUÍ: