1.-Use la función muestradat2 revisada en clase para tomar unamuestra sin reemplazo de tamaño 150 del conjunto de 467 datosde lluvia en Suiza (archivo swissrain.txt). Guarde los 317 datosrestantes (los que no se incluyeron en la muestra) paraverificación (validación). Compute un variograma empírico para lamuestra de 150 datos que seleccionó usando la funciónvgramemp ya revisada en tareas anteriores.
setwd("C:/Users/Rolando Tamayo/Desktop/")
swissrain<-read.table(file="swissrain.txt",sep=",",col.names=c("loc","u","v","rain"),skip=1)
muestrasmodver<-muestradat2(swissrain,150)
muestra150<-muestrasmodver[[1]]
muestraverif<-muestrasmodver[[2]]
result150<-vgramemp(muestra150[,4],muestra150[,2],muestra150[,3],15,medist=1)
2.-Ajuste el variograma empírico computado en parte 1 a losmodelos exponencial, esférico y onda haciendo uso de la funciónvgramfit. Guarde las estimaciones de los parámetros en cada casopara su uso con kriging ordinario en la parte 3. Presente gráficasque muestren el ajuste de los tres modelos.
esfericofit<-vgramfit(result150[,2],result150[,1],result150[,3],vgesferico,
c(0,15000,80000))
esfericofit
## [[1]]
## [1] 946.099 10619.306 71796.722
##
## [[2]]
## [1] 78.16611
esfericofitvals<-vgesferico(esfericofit[[1]],result150[,2])
esfericofitvals
## [1] 2080.189 4302.144 6385.427 8237.589 9766.183 10878.761 11482.874
## [8] 11565.405 11565.405 11565.405 11565.405 11565.405 11565.405 11565.405
## [15] 11565.405
plot(result150[,2],result150[,3],xlab="distancia (metros)",ylab="valor de semivariograma",
main="semivariograma empirico vs semivariograma esferico")
lines(result150[,2],esfericofitvals)
exponencialfit<-vgramfit(result150[,2],result150[,1],result150[,3],vgexponencial,
c(0,15000,80000))
exponencialfit
## [[1]]
## [1] -242.6712 12163.7104 26763.8621
##
## [[2]]
## [1] 132.8824
exponencialfitvals<-vgexponencial(exponencialfit[[1]],result150[,2])
exponencialfitvals
## [1] 1875.383 5069.269 7247.700 8733.528 9746.955 10438.177 10909.634
## [8] 11231.197 11450.523 11600.118 11702.151 11771.743 11819.210 11851.585
## [15] 11873.667
plot(result150[,2],result150[,3],xlab="distancia (metros)",ylab="valor de semivariograma",
main="semivariograma empirico vs semivariograma exponencial")
lines(result150[,2],exponencialfitvals)
ondafit<-vgramfit(result150[,2],result150[,1],result150[,3],vgonda,
c(3000,15000,80000))
ondafit
## [[1]]
## [1] 2989.598 8133.865 16556.066
##
## [[2]]
## [1] 38.59639
ondafitvals<-vgonda(ondafit[[1]],result150[,2])
ondafitvals
## [1] 3118.647 4107.399 5865.069 8010.174 10099.188 11739.105 12681.397
## [8] 12872.079 12446.160 11671.364 10860.455 10279.558 10079.304 10266.979
## [15] 10724.257
plot(result150[,2],result150[,3],xlab="distancia (metros)",ylab="valor de semivariograma",
main="semivariograma empirico vs semivariograma onda")
lines(result150[,2],ondafitvals)
3.-Use los parámetros estimados de los variogramas ajustados en laparte 2 para generar predicciones en las 317 localidades de laparte 1 que no fueron usadas para el ajuste de los tresvariogramas teóricos. Use la función krigingord para generar estas predicciones bajo cada uno de los tres modelos ajustados.
esfepredicciones<-krigingord(muestra150[,4],muestra150[,c(2,3)],
muestraverif[,c(2,3)],vgesferico,esfericofit[[1]])
expopredicciones<-krigingord(muestra150[,4],muestra150[,c(2,3)],
muestraverif[,c(2,3)],vgexponencial,exponencialfit[[1]])
ondapredicciones<-krigingord(muestra150[,4],muestra150[,c(2,3)],
muestraverif[,c(2,3)],vgonda,ondafit[[1]])
4.- Use las predicciones de la parte 3 y los valores reales (observados)en las 317 localidades para computar el error cuadrado medio depredicción de cross-validación \(\sigma^2_{cv}\), \[\sigma^2_{cv}=\dfrac{1}{n}\sum_{i=1}^n\{Z(s_i)-\hat{Z}(s_{0i})\}^2\] Compute \(\mathbf{\sigma^2_{cv}}\) para cada uno de los tres modelos de variograma ajustados en la parte 2 y compare. ¿Cuál es el modelo más apropiado para sus datos como base en este criterio?
ecm<-function(z0,pz0){
cm<-sum((z0-pz0)^2)/length(z0)
cm
}
#Error cuadrado medio para el variograma de esferico
ecm(muestraverif[,4],esfepredicciones[,3])
## [1] 3035.745
#Error cuadrado medio para el variograma de onda
ecm(muestraverif[,4],ondapredicciones[,3])
## [1] 3445.152
#Error cuadrado medio para el variograma de exponencial
ecm(muestraverif[,4],expopredicciones[,3])
## [1] 3332.907