1.1. Responder con F si es falso o V si es verdadero los siguientes enunciados:
F
V
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
#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.
# 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.