Función de Correlación Matérn

Una función muy común de correlación definida en geoestadística es la función Matérn definida como:

\[\rho(u;\phi,\kappa)=\{2^{\kappa-1} \Gamma(\kappa)\}^{-1} (u/ \phi)^\kappa K_\kappa (u/ \phi)\]

Donde \(K_\kappa(.)\) es una función de Bessel modificada de segunda clase, de orden \(\kappa\). El parámetro \(\phi > 0\) determina la tasa a la cual decae a cero la correlación en la medida que decrece \(u\). El parámetro \(k > 0\) es el orden del modelo Matérn y está asociado a la forma del descenso de la función.

Se tienen dos situaciones muy comunes de funciones de correlación que se derivan de la función Matérn:

Función de correlación exponencial:

Si \(\kappa=\cfrac{1}{2}\) entonces se tiene que la función queda reducida a:

\[\rho(u;\phi,\kappa)=\mathit{e}^{-\cfrac{u}{\phi}}\]

Función de correlación gausiana:

Si \(\kappa \to \infty\) entonces la función Matérn tiene como límite:

\[\rho(u;\phi,\kappa)=\mathit{e}^{- \left( \cfrac{u}{\phi} \right)^2}\]

Rangos prácticos

El rango práctico se define como el valor de \(u\) en donde la función \(\rho(u)\) tiene un valor de \(0.05\). O en otras palabras es el valor de u a partir del cual se puede considerar que \(\rho(u) \approx 0\).

  • Para la función exponencial se tiene el rango práctico es: \(\approx 3\phi\).
  • Para la función gausiana se tiene que el rango práctico es: \(\approx \sqrt{3\phi}\).
#Vector de Distancias
u1<-seq(0,40,length.out = 1000)
u2<-seq(0,25,length.out = 1000)

#Correlación Exponencial
fExp<-function(u,p) exp(-(u/p))

#Rango práctico fcn Exponencial
Rexp1<-u1[which.max(fExp(u1,1)<=0.05)]
Rexp3<-u1[which.max(fExp(u1,3)<=0.05)]
Rexp5<-u1[which.max(fExp(u1,5)<=0.05)]
Rexp10<-u1[which.max(fExp(u1,10)<=0.05)]
Rexp<-data.frame(cbind(Phi_1=Rexp1,Phi_3=Rexp3,Phi_5=Rexp5,Phi_10=Rexp10),row.names="Exponencial")

#Correlación Gaussiana
fGaus<-function(u,p) exp(-(u/p)^2)

#Rango práctico fcn Gaussiana
Rgau1<-u2[which.max(fGaus(u2,1)<=0.05)]
Rgau3<-u2[which.max(fGaus(u2,3)<=0.05)]
Rgau5<-u2[which.max(fGaus(u2,5)<=0.05)]
Rgau10<-u2[which.max(fGaus(u2,10)<=0.05)]
Rgau<-data.frame(cbind(Phi_1=Rgau1,Phi_3=Rgau3,Phi_5=Rgau5,Phi_10=Rgau10),row.names="Gaussiana")

knitr::kable(rbind(Rexp,Rgau),align = 'l')
Phi_1 Phi_3 Phi_5 Phi_10
Exponencial 3.003003 9.009009 15.015015 29.98999
Gaussiana 1.751752 5.205205 8.658659 17.31732
par(mfrow=c(1,2))

#Gráfico Función Exponencial
plot(u1,fExp(u1,1),type='l',ylab='Correlación',xlab='Distancias',ylim=c(0,1),
     main = "Función Exponencial",lwd=2)
lines(u1,fExp(u1,3),col=2,lwd=2)
lines(u1,fExp(u1,5),col=3,lwd=2)
lines(u1,fExp(u1,10),col=4,lwd=2)

#Rangos prácticos
abline(h=0.05,lty=3)
abline(v=c(Rexp1,Rexp3,Rexp5,Rexp10),lty=2,col=1:4)
text(c(Rexp1,Rexp3,Rexp5,Rexp10),0.9,col=1:4,cex=1,lwd=2,
     as.expression(c(bquote(u==.(round(Rexp1,2))),bquote(u==.(round(Rexp3,2))),
                     bquote(u==.(round(Rexp5,2))),bquote(u==.(round(Rexp10,2))))))
legend("topright",col=1:4,lty=1,lwd=2,
       legend=c(expression(phi==1),expression(phi==3),
                expression(phi==5),expression(phi==10)))

#Gráfico Función Gaussiana
plot(u2,fGaus(u2,1),type='l',ylab='Correlación',xlab='Distancias',ylim=c(0,1),
     main = "Función Gaussiana",lwd=2)
lines(u2,fGaus(u2,3),col=2,lwd=2)
lines(u2,fGaus(u2,5),col=3,lwd=2)
lines(u2,fGaus(u2,10),col=4,lwd=2)

#Rangos prácticos
abline(h=0.05,lty=3)
abline(v=c(Rgau1,Rgau3,Rgau5,Rgau10),lty=2,col=1:4)
text(c(Rgau1,Rgau3,Rgau5,Rgau10)+1,1,col=1:4,cex=1,lwd=2,
     as.expression(c(bquote(u==.(round(Rgau1,2))),bquote(u==.(round(Rgau3,2))),
                     bquote(u==.(round(Rgau5,2))),bquote(u==.(round(Rgau10,2))))))
legend("topright",col=1:4,lty=1,lwd=2,
       legend=c(expression(phi==1),expression(phi==3),
                expression(phi==5),expression(phi==10)))

Temperatura en Espacios de Ciudad

Debido al crecimiento urbano, el uso de materiales de construcción (cemento, grava, ladrillo, acero, entre otros) ha causado un aumento de temperatura en la ciudades considerable, a este fenómeno se le conoce como “Isla de Calor Urbana”. Para mitigar las alzas súbitas de temperatura, sobretodo en épocas de verano, las planeaciones urbano-regionales emplean diversas estrategias como: Techos reflectivos, espacios de alta densidad de vegetación como párques y arboretum, etc…

Si se mide la temperatura en una ciudad en las que se han empleado las estrategias anteriores, se pueden encontrar temperaturas desde 65(°F) hasta 89(°F), en un perímetro de 2.4 km (600m X 600m), además cada 120 mts se establece el límite de realción que tiene la temperatura con el entorno, es decir en términos de la función \(\rho(u)\), el rango práctico es de 120 y se propone una función Matérn Gaussiana, por lo tanto:

\[\phi=\cfrac{120}{\sqrt{3}} = 69.28203\]

DisTemp<-seq(0,200,length.out=10000)
RangoPract<-120
Phi<-RangoPract/sqrt(3)

#Gráfico Función Gaussiana
plot(DisTemp,fGaus(DisTemp,Phi),type='l',ylab='Correlación',
     xlab='Distancias',ylim=c(0,1),lwd=2,col=2,
     main = "Función Gaussiana\nDistancias Temperatura Urbana")

#Rangos prácticos
abline(h=0.05,lty=3)
abline(v=120,lty=3,col=2)

text(120+1.5,.4,labels = "u=120",col=2)
legend("topright",legend=c(as.expression(bquote(Phi==.(Phi)))))