Este código de R corresponde a la figura 6.12 del libro Análisis de datos con el programa estadístico R: una introducción aplicada de Salas-Eljatib (2021). | |
Última actualización de esta web: 13 noviembre, 2022
Ocuparemos la dataframe pspLlancahue del paquete datana.
> library(datana)
> data(pspLlancahue)
> df <- pspLlancahue
> tail(df) #ultimas seis filas
> nrow(df) #numero de filas de la dataframe
Esta dataframe contiene la informacion de coordenadas cartesianas de arboles en una parcela de muestreo de 10.000 m\(^2\) (1 hectárea, de 70 \(\times\) 130 m) en un bosque maduro de Coihue en el predio Llancahue (Depresión intermedia de la región de los Rios, Chile). Los datos fueron recolectados por Soto et al. (2010).
Un gráfico de contorno muestra la relacion entre tres variables, \(X\) e \(Y\), y la variable \(Z\) representada por curvas que tienen los mismos valores. Es decir, se representan isolineas. Es la misma idea empleada en mapas donde se representan las curvas de nivel, es decir curvas o lineas del mismo valor de altitud sobre el nivel del mar.
Para el ejemplo se emplearan las coordenadas cartesianas de los arboles y como variable \(Z\) a la estimación de la densidad a traves de una función de Kernel. Mayores detalles sobre este tipo de analisis en estadistica espacial pueden ser revisados en Schabenberger and Gotway (2005).
Para realizar esta figura del libro es necesario tambien cargar los siguientes paquetes
> require(spatstat)
> library(splancs)
> library(spatial)
> library(spatstat)
> coords.h <- as.matrix(df[, c("x.coord", "y.coord")])
> #dando las dimensiones de la parcela
> dim.y<-70;dim.x<-130
> dim.plot<-c(dim.x,dim.y)
> owin<-owin(c(0,dim.x), c(0,dim.y))
> range.y <- c(0,dim.y); range.x <- c(0,dim.x)
> #generando el objeto ppp
> df.ppp<-ppp(df$y.coord, df$x.coord, marks=df$dbh,window=owin)
> head(df.ppp)
Marked planar point pattern: 6 points
marks are numeric, of storage type 'double'
window: rectangle = [0, 130] x [0, 70] units
> # estimar la funcion Kernel
> den<-density(df.ppp,kernel="gaussian",edge=T,diggle=T,adjust=0.6)
> #graficar la densidad
> plot(den,main='')#,col=viridis)
> #aplicar contornos
> contour(den,asp=1,add=T)