(Entregar Lunes 28 Noviembre 2016 en clase)

  1. Use las funciones R explicadas en clase (vgramodels y vgramfit) para ajustar modelos de variograma teórico a valores de variograma empírico calculados de una muestra de tamaño 150 del conjunto de datos de lluvia en Suiza (archivo swissrain.txt). Ajuste los modelos de variograma exponencial, esférico y onda. Reporte los valores de las estimaciones de los parámetros en cada caso y presente gráficas que muestren el ajuste. Escriba su conclusión acerca del modelo de variograma teórico que a simple vista le parece a usted que mejor se ajusta a su variograma empírico.
muestra150<-muestradat(swissrain,150)
result150<-vgramemp(muestra150[,4],muestra150[,2],muestra150[,3],15,medist=1)
% latex table generated in R 3.3.0 by xtable 1.8-2 package % Sun Nov 27 17:40:11 2016

Grafico 7. Semivariogramas \(n=150\) y \(nreg=15\)

plot(result150[,2],result150[,3],pch=17,xlab="distancia",ylab="semivariograma empirico",main="semivariograma de Matheron (datos de lluvia)")

#points(result150[,2],result150[,4],pch=21,col="red")
#nom<-c("Materon","Cressie y Hawkins","n=200","R=25")
#legend(min(result150[,2])+1000,max(c(result150[,3],
#result150[,4]))-3000,nom,pch=c(17,21)
 #      ,col=c("black","red","blue","blue"),cex=.5)

Ajuste del variograma esferico.

esfericofit<-vgramfit(result150[,2],result150[,1],result150[,3],vgesferico,
                      c(0,15000,80000))
esfericofit
## [[1]]
## [1]   505.8838 10802.1832 74602.2142
## 
## [[2]]
## [1] 96.00199
 esfericofitvals<-vgesferico(esfericofit[[1]],result150[,2])
esfericofitvals
##  [1]  1631.653  3839.506  5916.303  7774.672  9327.243 10486.643 11165.503
##  [8] 11308.067 11308.067 11308.067 11308.067 11308.067 11308.067 11308.067
## [15] 11308.067
plot(result150[,2],result150[,3],xlab="distancia (metros)",ylab="valor de semivariograma",main="semivariograma empirico vs semivariograma esferico")
lines(result150[,2],esfericofitvals)

Ajuste del variograma exponencial.

exponencialfit<-vgramfit(result150[,2],result150[,1],result150[,3],vgexponencial,
                      c(0,15000,80000))
exponencialfit
## [[1]]
## [1]  -845.4923 12487.0530 27503.1316
## 
## [[2]]
## [1] 139.2334
 exponencialfitvals<-vgexponencial(exponencialfit[[1]],result150[,2])
exponencialfitvals
##  [1]  1302.501  4553.569  6782.354  8310.308  9357.805 10075.921 10568.229
##  [8] 10905.733 11137.110 11295.732 11404.476 11479.026 11530.135 11565.172
## [15] 11589.192
plot(result150[,2],result150[,3],xlab="distancia (metros)",ylab="valor de semivariograma",main="semivariograma empirico vs semivariograma exponencial")
lines(result150[,2],exponencialfitvals)

Ajuste del variograma onda.

ondafit<-vgramfit(result150[,2],result150[,1],result150[,3],vgonda,
                      c(0,15000,80000))
ondafit
## [[1]]
## [1] 10222.954  3342.051 96670.961
## 
## [[2]]
## [1] 399.3932
 ondafitvals<-vgonda(ondafit[[1]],result150[,2])
ondafitvals
##  [1] 10224.56 10237.39 10262.97 10301.12 10351.57 10413.97 10487.91
##  [8] 10572.86 10668.25 10773.43 10887.69 11010.25 11140.29 11276.94
## [15] 11419.29
plot(result150[,2],result150[,3],xlab="distancia (metros)",ylab="valor de semivariograma",main="semivariograma empirico vs semivariograma onda")
lines(result150[,2],ondafitvals)

##Conclucón

plot(result150[,2],result150[,3],xlab="distancia (metros)",ylab="valor de semivariograma",main="Empirico, semivariograma esferico, exponencial y onda",pch=17)
nom<-c("Empirico","Onda","Exponencial","Esferico")
lines(result150[,2],ondafitvals,col="red")
lines(result150[,2],exponencialfitvals,col="blue")
lines(result150[,2],esfericofitvals,col="green")
lines(result150[,2],result150[,3],pch=17)
points(result150[,2],ondafitvals,col="red",pch=11)
points(result150[,2],exponencialfitvals,col="blue",pch=21)
points(result150[,2],esfericofitvals,col="green",pch=12)
legend(max(result150[,2])-12000,min(c(result150[,3],
result150[,4]))+4000,nom,pch=c(17,11,21,12)
       ,col=c("black","red","blue","green"),cex=.5)