R Markdown

1.1. Responder con F si es falso o V si es verdadero los siguientes enunciados:

  1. F

  2. V

  3. F

1.2.

Varigrama: El varigrama se enfoca en analizar la varianza de una variable en la medida en la que esta se observa en una distacia h sobre el espacio, entendiendose como esa diferencia existente en la variable en relación a la distancia de la misma.

Kriging: Es una tecnica estadística que permite predecir el comportamiento de una variable de interés sobre un espacio geografico no mapeado. Para ello, se requiere de información de la misma variable sobre un espacio.

Autocorrelación: La autocorrelación se puede entender como la relación que posee una variable de estudio con ella misma pero en una cordenada espacial diferente o en un área diferente.

Uso en geoestadística: En geoestadística, estos 3 conceptos son fundamentales, ya que permiten entender no solo el comportamiento de una variable sino observar la relación de esta sobre el espacio geografico, esto se puede apreciar en algunos campos, como lo son: La epidemiología, La econometría, la agronomía, la agricultura, flujos vehicular, entre otras.

2. Para los datos nc.sids encontrar lo siguiente:

Analísis descriptivo

Para efectos del desarrollo de este ejercicio el enfoque abarcará unicamente la variable de muertes subitas en el último periodo de tiempo observado ya que son los datos más recientes, el cúal es desde 1979-84. La variable se encuentra registrada como SID79.

Por consiguiente observamos:

Estructura de la base de datos:

library(sp)
library(sf)
library(spData)
library(spdep)
library(gstat)
library(ggplot2)
library(raster)
library(spData)
library(tmap)



data("nc.sids")
head(nc.sids)
str(nc.sids)
'data.frame':   100 obs. of  15 variables:
 $ CNTY.ID: num  1825 1827 1828 1831 1832 ...
 $ BIR74  : num  1091 487 3188 508 1421 ...
 $ SID74  : num  1 0 5 1 9 7 0 0 4 1 ...
 $ NWBIR74: num  10 10 208 123 1066 ...
 $ BIR79  : num  1364 542 3616 830 1606 ...
 $ SID79  : num  0 3 6 2 3 5 2 2 2 5 ...
 $ NWBIR79: num  19 12 260 145 1197 ...
 $ east   : num  164 183 204 461 385 411 453 421 344 233 ...
 $ north  : num  176 182 174 182 176 176 173 177 177 175 ...
 $ x      : num  -81.7 -50.1 -16.1 406 281.1 ...
 $ y      : num  4052 4060 4044 4035 4030 ...
 $ lon    : num  -81.5 -81.1 -80.8 -76 -77.4 ...
 $ lat    : num  36.4 36.5 36.4 36.5 36.4 ...
 $ L.id   : num  1 1 1 1 1 1 1 1 1 1 ...
 $ M.id   : num  2 2 2 4 4 4 4 4 3 2 ...
dim(nc.sids)
[1] 100  15

Se puede observar que la cantidad de observaciones presentes son 100 y se analizan solo 15 variables de estas, ahora bien, como se mencionó anteriormente, el enfoque se realizará solo en un unico periodo de tiempo, por lo que solo tomaremos el registro de nacidos y nacidos no blancos en ese periodo como variables que en una hipotesis inicial brinden información para la variable de interés que es la muerte subita.

Estadísticas descriptivas

summary(nc.sids[,5:7])
     BIR79           SID79          NWBIR79       
 Min.   :  319   Min.   : 0.00   Min.   :    3.0  
 1st Qu.: 1336   1st Qu.: 2.00   1st Qu.:  250.5  
 Median : 2636   Median : 5.00   Median :  874.5  
 Mean   : 4224   Mean   : 8.36   Mean   : 1352.8  
 3rd Qu.: 4889   3rd Qu.:10.25   3rd Qu.: 1406.8  
 Max.   :30757   Max.   :57.00   Max.   :11631.0  

Se puede apreciar que la de la variable de interés se encuentra en 8.36 muertes subitas por condados, y tambien se observa que el rango se encuentra determinado entre 0 y 57, lo que indica que algunos condados no presentarón ningúna muerte subita durante el periodo de tiempo de observación.

par(mfrow = c(1, 3))
names(nc.sids)
 [1] "CNTY.ID" "BIR74"   "SID74"   "NWBIR74" "BIR79"   "SID79"   "NWBIR79"
 [8] "east"    "north"   "x"       "y"       "lon"     "lat"     "L.id"   
[15] "M.id"   
boxplot(nc.sids[,5],col = "white", 
        border = 4, xlab="BIR79")
boxplot(nc.sids[,6],col = "white", 
        border = 4, xlab = "SID79")
boxplot(nc.sids[,7],col = "white", 
        border = 4, xlab = "NWBIR79")

par(mfrow = c(1, 1))

Es de observar que para las 3 variables se presenta una gran cantidad de outliers, además de que su composición no parece ser a la de una distribución normal, sino por el contrario parece ser a una distribución exponencial. Por otro lado, si observamos la variable de interes SID79 podemos apreciar que la variable presenta una mayor dispersión entre el rango determinado en la media y el cuarto cuartil.

Note que los promedios observados anteriormente, pueden estar influenciados por la cantidad de datos atipicos presentes.

Patrones y tendencias

Para el desarrollo de esta, se observará la correlación de la variable de interés con las otras de observación:

correlation <- cor(nc.sids[,5:7])
correlation
            BIR79     SID79   NWBIR79
BIR79   1.0000000 0.8952923 0.9215580
SID79   0.8952923 1.0000000 0.8586045
NWBIR79 0.9215580 0.8586045 1.0000000

Se puede apreciar como su correlación es considerablemente alta y positiva, lo que puede indicar que la variable de muerte subita SID79 puede relacionarse facilmente por medio de las otras variables de manera proporcional, por lo que en la medida en la que las demas variables aúmenten también lo hará esta, esto es logíco en la naturaleza de los datos, ya que a mayor población nacida, mayor probabilidad existe de que ocurra una muerte en infantes, pues la población aumenta en tamaño.

Grafica de dispersión
plot( nc.sids[,5:7])

Es de observar que la relación por medio de la visualización grafica al pensar en un modelo lineal, no parece ser tan evidente, esto puede ser gracias a que los valores atipicos presentes en cada una de las variables observadas con anterioridad. Por esto en el desarrollo del variograma lo considerable es aplicar un modelo nulo en primer instancia, ya que la variable no presenta de manera clara una tendencia respecto a las otras variables, solo especifica su relación e impide una poredicción con estas mismas.

Visualización de la variable SID79 en el espacio (MAPA)

library(ggplot2)
library(sf)
library(spData)
library(dplyr)
library(conflicted)

setwd("C:/Users/brial/OneDrive/Documentos/Yefri/Semestre VIII/Estadistica_Espacial/Archivos_R")
data("nc.sids")

#Shapefile de North Carolina
caroShape <- st_read("North_Carolina_State_and_County_Boundary_Polygons/North_Carolina_State_and_County_Boundary_Polygons.shp",
                     quiet = TRUE)

conflict_prefer("select", "dplyr")
county <- row.names(nc.sids)
data <- nc.sids %>%
  mutate(county = county) %>% 
  right_join(caroShape, by = c('county' = 'County')) %>%
  select(CNTY.ID, BIR74, SID74, NWBIR74, BIR79, SID79, NWBIR79, OBJECTID,
         county, geometry) %>%
  st_as_sf()

pos_simbolos <- st_centroid(data, of_largest_polygon = TRUE)

meuse_sf <- st_as_sf(nc.sids, coords = c("x", "y"))
class(meuse_sf)
[1] "sf"         "data.frame"
dim(meuse_sf)
[1] 100  14
class(data)
[1] "sf"         "data.frame"
dim(data)
[1] 100  10
#######
tmap_mode("view")
tm_shape(data) +
  tm_dots(col = "SID79", style = "quantile", palette = "viridis", size = 0.08, title = "Muerte súbita") +
  tm_basemap("OpenStreetMap") + 
  tm_layout(title = "Muerte súbita por condados en el periodo 1979-84")

Acá se puede apreciar como los datos se encuentran ubicadas en el mapa de Carolina del Norte, por otro lado, tambien se puede apreciar que la agrupación de valores superiores a 13 en relación a las muertes subitas no es tan evidente, por lo que una hipotesis inicial es que no existirá autocorrelación en la variable de interes, la cual es SID79.

Variograma

En este apartado, observaremos dos casos, como se explicó en la observación estadísticas los datos pueden indicar una distribución exponencial, por lo cúal se intentará reescalar para normalizar la variable y aplicar el variograma, y por otro lado se aplicará con los datos originales aplicando en relación a esto un modelo exponencial.

Caso 1.

data(nc.sids)
coordinates(nc.sids)=~x+y
v <- variogram(log(SID79+1)~1, data=nc.sids)

# Visualización del variograma
plot(v)

vfit_e <- fit.variogram(v, model = vgm(1, "Exp", 40, 1))
plot(v, vfit_e, main = "Modelo Exponencial")

Se puede apreciar como el modelo se ajusta adecuadamente a los datos, cabe considerar que en este caso el rango estipulado es de 40, ya que apartir de allí se empieza a estabilizar la varianza de la variable.

Caso 2.

data(nc.sids)

#proj4string(meuse) = CRS("+init=epsg:28992")

# Crear una semivariogram NULOOOOOO
coordinates(nc.sids)=~x+y
v <- variogram(SID79~1, data=nc.sids)

vfit_e <- fit.variogram(v, model = vgm(1, "Exp", 40, 1))
plot(v, vfit_e, main = "Modelo Exponencial")

Note el comportamiento del modelo ajustado, esto indica que el ajuste con la estandarización parece ser adecuada para su porterios uso en la predicción. Ahora bien, al comparar y analizar podemos apreciar que para las distancias menores la varianza es considerablemente grande, ya que es donde el modelo crece con mayor rapidez, sin embargo, a una distancia de 40 se empieza a estabilizar, no difiriendo mucho.

Predicción usando kriging

#cargar la base de datos
data("nc.sids")

#convertir a un objeto sf
nc_sids_sf<-st_as_sf(nc.sids, coords = c("lon", "lat"), crs = 4326)

#Crear una cuadricula donde hacer la interpolación
nc_sids_grid <- st_make_grid(nc_sids_sf, n= c(100, 100), what = "centers")

# Aplicación del kriging
Kriging_result <- krige(log(SID74+1) ~ 1, as(nc_sids_sf, "Spatial"), as(nc_sids_grid, "Spatial"), model = vfit_e)
[using ordinary kriging]
mi_paleta <- colorRampPalette(c("blue", "red"))

# Visualización
spplot(Kriging_result["var1.pred"], main = "Predicción kriging de SID79", col.regions = mi_paleta(250))

# Crear una matriz de pesos espaciales

Al considerar el grafico, podemos apreciar que el rango de muertes de la variable definida como log(SID79) en (2.48-3.04] no se presenta con mucha frequencia en el espacio. Esto se pudo observar en los casos anteriores, ya que este intervalo hace referencia a los mayores registros de muertes subitas. Esto indica que si bien estan presentes un rango alto de muertes no abarca mucho espacio dentro del area cartografica de estudio, por otro lado, si observamos la mayor area, podemos apreciar que la abarca el inetervalo (1.376, 1.931], que corresponde a un rango aproximado de [4, 7) muertes subitas por el espacio geografico. Cabe resaltar que este analisís se enfoca en un periodo de tiempo de 5 años, por lo que esta cantidad estimada para este periodo de tiempo y que aparezca con mayor frecuencia indica que los valores no son alarmantes, pero si se puede considerar aplicar algunas restricciones de salubridad que permita reducir las muertes subitas en infantes en periodo de lactancia.

Autocorrelación

# Se considerarán 4 vecinos 

nb <- knn2nb(knearneigh(coordinates(nc.sids), k = 4))

# Calculo de los pesos 
lw <- nb2listw(nb, style = "W")

# Calculo del índice de Moran
moran_test <- moran.test(nc.sids$SID74, lw)
moran_test

    Moran I test under randomisation

data:  nc.sids$SID74  
weights: lw    

Moran I statistic standard deviate = 8.9506, p-value < 2.2e-16
alternative hypothesis: greater
sample estimates:
Moran I statistic       Expectation          Variance 
      0.548722413      -0.010101010       0.003898033 

Finalmente, podemos observar la autocorrelación, recordando la hipotesis nula en este caso, la cúal indica que no existe autocorrelación presente en la variable SID79. Por lo que para analizar esto, podemos apreciar el p-valor, la cual al ser generado se evidencia que es menor a 2.2e-16, esto indica que existe una evidencia con un nivel de confianza del 95% para rechazar la hipotesis nula; es decir se puede rechazar la ausencia de autocorrelación. Finalmente, esto puede inducir a que hay autocorrelación en la variable de SID79.