Processing math: 100%

5 votos

Creación del variograma para un conjunto de datos de 10.000

Estoy intentando crear un variograma para un conjunto de datos con 10.000 puntos. Sin embargo, si intento calcular la distancia de cada punto con el otro, tendré 10.000*9999/2 pares. De estos pares de distancias puedo redondear los valores de las distancias a, digamos, 2 decimales. Entonces puedo encontrar las distancias que tienen valores iguales. Entonces puedo tomar la media de las varianzas que tienen distancias iguales para encontrar la varianza de esa distancia en particular. Entonces puedo obtener el variograma experimental.

Este proceso será definitivamente muy lento. ¿Hay alguna forma eficiente? Es decir, en lugar de crear el variograma a partir de todos los puntos de observación, puedo tomar sólo un subconjunto de ellos que rodee el punto en el que quiero interpolar el valor. Puedo crear un variograma a partir de este subconjunto. Luego puedo tomar k vecinos del punto de destino y utilizar este subconjunto variograma para interpolar. ¿Será esto más eficiente y correcto?

4voto

jldugger Puntos 7490

El geoR paquete lo hará de forma eficiente:

n <- 10^4 # Number of points
v <- list(coords=matrix(runif(2*n),ncol=2), data=rnorm(n)) # Random data
system.time(v.vario <- variog(v))                          # Compute a variogram object

Tiempo transcurrido en esta máquina: 5,21 segundos.

Para obtener más puntos, puede submuestrear los datos. (Un procedimiento estratificado que obtenga colecciones de puntos cercanos es mejor que una simple muestra aleatoria, porque es importante caracterizar con precisión el variograma cerca del origen). Sin embargo, es mejor dividir el área de estudio en "mosaicos" o subregiones y evaluar los variogramas dentro de esas subregiones: es una buena manera de evaluar la hipótesis de estacionariedad.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X