Tomamos 2000 datos aleatorios de la base de datos original
library(ape)
library(ggplot2)
library(clhs)
library(readxl)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
BD_MORAN<- read_excel("BD_MORAN (1).xlsx")
Datamodelado<-as.data.frame(BD_MORAN)
data<-sample_n(Datamodelado,size = 2000)
Luego de hacer la matriz con los datos, se calcula el Índice de Moran, para cada una de las distancias del suelo a la medición.
Mide la autocorrelación espacial basada en las ubicaciones y los valores de las entidades simultáneamente. Dado un conjunto de entidades y un atributo asociado, evalúa si el patrón expresado está agrupado, disperso o es aleatorio [1].
Para la estadística I de Moran global, la hipótesis nula establece que el atributo que se analiza está distribuido en forma aleatoria entre las entidades del área de estudio; es decir, los procesos espaciales que promueven el patrón de valores observado constituyen una opción aleatoria.
plot(data$X_WGS84,data$Y_WGS84,cex=0.5,col=data$CEa_075,pch=19, main="Conductividad eléctrica aparente a 75 cm de profundidad ", xlab="Longitud", ylab="Latitud")
ce.dists <- as.matrix(dist(cbind(data$X_WGS84,data$Y_WGS84)))#Matriz de distancias
ce.dists.inv.75 <- 1/ce.dists #inverso de la matriz de las distancias
diag(ce.dists.inv.75) <- 0 #pasar la diagonal de infinito a cero
ce.dists.inv.75[1:10, 1:10]
## 1 2 3 4 5 6 7
## 1 0.0000 631.6157 630.4557 985.7474 449.8275 1043.7044 1578.8164
## 2 631.6157 0.0000 319.7249 1330.6357 319.2538 414.5198 481.9528
## 3 630.4557 319.7249 0.0000 384.7194 369.2367 754.8127 698.3727
## 4 985.7474 1330.6357 384.7194 0.0000 416.8187 585.9216 723.9754
## 5 449.8275 319.2538 369.2367 416.8187 0.0000 663.9808 599.5702
## 6 1043.7044 414.5198 754.8127 585.9216 663.9808 0.0000 2921.2331
## 7 1578.8164 481.9528 698.3727 723.9754 599.5702 2921.2331 0.0000
## 8 344.9765 248.3512 347.5632 304.9994 1033.3091 499.7398 439.5552
## 9 630.4755 320.4622 23531.2057 384.5997 364.5747 740.5261 690.2166
## 10 1118.4905 493.8852 768.5857 581.1509 334.0436 652.6644 753.9555
## 8 9 10
## 1 344.9765 630.4755 1118.4905
## 2 248.3512 320.4622 493.8852
## 3 347.5632 23531.2057 768.5857
## 4 304.9994 384.5997 581.1509
## 5 1033.3091 364.5747 334.0436
## 6 499.7398 740.5261 652.6644
## 7 439.5552 690.2166 753.9555
## 8 0.0000 342.6953 283.7153
## 9 342.6953 0.0000 783.0227
## 10 283.7153 783.0227 0.0000
Moran.I(data$CEa_075, ce.dists.inv.75) #indice de moran
## $observed
## [1] 0.3712975
##
## $expected
## [1] -0.0005002501
##
## $sd
## [1] 0.003607206
##
## $p.value
## [1] 0
El valor P es estadísticamente significativo y la puntuación z es positiva, igual a 0,37. Se rechaza la hipótesis nula. La distribución espacial de los valores altos y los valores bajos en el dataset está más agrupada espacialmente de lo que se esperaría si los procesos espaciales subyacentes fueran aleatorios. índice calculado nos da una idea de dependencia espacial entre los datos analizados.
plot(data$X_WGS84,data$Y_WGS84,cex=0.6,col=palette("default"),pch=19, main="Conductividad eléctrica aparente a 150 cm de profundidad", xlab="Longitud", ylab="Latitud")
ce.dists.150 <- as.matrix(dist(cbind(data$X_WGS84, data$Y_WGS84)))#Matriz de distancias
ce.dists.inv.150 <- 1/ce.dists #inverso de la matriz de las distancias
diag(ce.dists.inv.150) <- 0 #pasar la diagona de infinito a cero
ce.dists.inv.150[1:10, 1:10]
## 1 2 3 4 5 6 7
## 1 0.0000 631.6157 630.4557 985.7474 449.8275 1043.7044 1578.8164
## 2 631.6157 0.0000 319.7249 1330.6357 319.2538 414.5198 481.9528
## 3 630.4557 319.7249 0.0000 384.7194 369.2367 754.8127 698.3727
## 4 985.7474 1330.6357 384.7194 0.0000 416.8187 585.9216 723.9754
## 5 449.8275 319.2538 369.2367 416.8187 0.0000 663.9808 599.5702
## 6 1043.7044 414.5198 754.8127 585.9216 663.9808 0.0000 2921.2331
## 7 1578.8164 481.9528 698.3727 723.9754 599.5702 2921.2331 0.0000
## 8 344.9765 248.3512 347.5632 304.9994 1033.3091 499.7398 439.5552
## 9 630.4755 320.4622 23531.2057 384.5997 364.5747 740.5261 690.2166
## 10 1118.4905 493.8852 768.5857 581.1509 334.0436 652.6644 753.9555
## 8 9 10
## 1 344.9765 630.4755 1118.4905
## 2 248.3512 320.4622 493.8852
## 3 347.5632 23531.2057 768.5857
## 4 304.9994 384.5997 581.1509
## 5 1033.3091 364.5747 334.0436
## 6 499.7398 740.5261 652.6644
## 7 439.5552 690.2166 753.9555
## 8 0.0000 342.6953 283.7153
## 9 342.6953 0.0000 783.0227
## 10 283.7153 783.0227 0.0000
Moran.I(data$CEa_150, ce.dists.inv.150) #indice de moran
## $observed
## [1] 0.2321877
##
## $expected
## [1] -0.0005002501
##
## $sd
## [1] 0.003606256
##
## $p.value
## [1] 0
El valor P es estadísticamente significativo y la puntuación z es positiva, igual a 0,24. Se rechaza la hipótesis nula. La distribución espacial de los valores altos y los valores bajos en el dataset está más agrupada espacialmente de lo que se esperaría si los procesos espaciales subyacentes fueran aleatorios. índice calculado nos da una idea de dependencia espacial entre los datos analizados
set.seed(12345)
MO=rnorm(n = 150,mean = 3,sd = 0.5)
xy=expand.grid(x=seq(0,10),y=seq(0,15))
plot(xy,col=MO,pch=19)
#Para entregar :Calcular el indice de moran con los anteriores datos
data.dists <- as.matrix(dist(cbind(xy$x, xy$y)))#Matriz de distancias
dim(data.dists)
## [1] 176 176
data.dists.inv <- 1/data.dists #inverso de la matriz de las distancias
diag(data.dists.inv) <- 0 #pasar la diagona de infinito a cero
data.dists.inv[1:10, 1:10]
## 1 2 3 4 5 6 7
## 1 0.0000000 1.0000000 0.5000000 0.3333333 0.2500000 0.2000000 0.1666667
## 2 1.0000000 0.0000000 1.0000000 0.5000000 0.3333333 0.2500000 0.2000000
## 3 0.5000000 1.0000000 0.0000000 1.0000000 0.5000000 0.3333333 0.2500000
## 4 0.3333333 0.5000000 1.0000000 0.0000000 1.0000000 0.5000000 0.3333333
## 5 0.2500000 0.3333333 0.5000000 1.0000000 0.0000000 1.0000000 0.5000000
## 6 0.2000000 0.2500000 0.3333333 0.5000000 1.0000000 0.0000000 1.0000000
## 7 0.1666667 0.2000000 0.2500000 0.3333333 0.5000000 1.0000000 0.0000000
## 8 0.1428571 0.1666667 0.2000000 0.2500000 0.3333333 0.5000000 1.0000000
## 9 0.1250000 0.1428571 0.1666667 0.2000000 0.2500000 0.3333333 0.5000000
## 10 0.1111111 0.1250000 0.1428571 0.1666667 0.2000000 0.2500000 0.3333333
## 8 9 10
## 1 0.1428571 0.1250000 0.1111111
## 2 0.1666667 0.1428571 0.1250000
## 3 0.2000000 0.1666667 0.1428571
## 4 0.2500000 0.2000000 0.1666667
## 5 0.3333333 0.2500000 0.2000000
## 6 0.5000000 0.3333333 0.2500000
## 7 1.0000000 0.5000000 0.3333333
## 8 0.0000000 1.0000000 0.5000000
## 9 1.0000000 0.0000000 1.0000000
## 10 0.5000000 1.0000000 0.0000000
Moran.I(xy$x,data.dists.inv)
## $observed
## [1] 0.3095416
##
## $expected
## [1] -0.005714286
##
## $sd
## [1] 0.006743932
##
## $p.value
## [1] 0
El valor P es estadísticamente significativo y la puntuación z es positiva, igual a 0,309. Se rechaza la hipótesis nula. La distribución espacial de los valores altos y los valores bajos en el dataset está más agrupada espacialmente de lo que se esperaría si los procesos espaciales subyacentes fueran aleatorios. índice calculado nos da una idea de dependencia espacial entre los datos analizados
[1] ArcMap. 2020. Cómo funciona Autocorrelación espacial (I de Moran global). Recuperado de :https://desktop.arcgis.com/es/arcmap/latest/tools/spatial-statistics-toolbox/h-how-spatial-autocorrelation-moran-s-i-spatial-st.htm