datos=read.table("clipboard")
datos
## V1 V2 V3 V4 V5 V6 V7 V8 V9
## 1 44 NA 40 42 40 39 37 36 NA
## 2 42 NA 43 42 39 39 41 40 38
## 3 37 37 37 35 38 37 37 33 34
## 4 35 38 NA 35 37 36 36 35 NA
## 5 36 35 36 35 34 33 32 29 28
## 6 38 37 35 NA 30 NA 29 30 32
datos[ ,1]
## [1] 44 42 37 35 36 38
diff(datos[,1],lag=1)^2
## [1] 4 25 4 1 4
apply(datos,1,diff)^2
## [,1] [,2] [,3] [,4] [,5] [,6]
## V2 NA NA 0 9 1 1
## V3 NA NA 0 NA 1 4
## V4 4 1 4 NA 1 NA
## V5 4 9 9 4 1 NA
## V6 1 0 1 1 1 NA
## V7 4 4 0 0 1 NA
## V8 1 1 16 1 9 1
## V9 NA 4 1 NA 1 4
apply(datos,2,diff)^2
## V1 V2 V3 V4 V5 V6 V7 V8 V9
## [1,] 4 NA 9 0 1 0 16 16 NA
## [2,] 25 NA 36 49 1 4 16 49 16
## [3,] 4 1 NA 0 1 1 1 4 NA
## [4,] 1 9 NA 0 9 9 16 36 NA
## [5,] 4 4 1 NA 16 NA 9 1 16
c(apply(datos,1,diff)^2,apply(datos,2,diff)^2)
## [1] NA NA 4 4 1 4 1 NA NA NA 1 9 0 4 1 4 0 0 4 9 1 0 16 1 9
## [26] NA NA 4 1 0 1 NA 1 1 1 1 1 1 9 1 1 4 NA NA NA NA 1 4 4 25
## [51] 4 1 4 NA NA 1 9 4 9 36 NA NA 1 0 49 0 0 NA 1 1 1 9 16 0 4
## [76] 1 9 NA 16 16 1 16 9 16 49 4 36 1 NA 16 NA NA 16
diferencias=c(apply(datos,1,diff, lag=1)^2,apply(datos,2,diff, lag=1)^2)
diferencias=na.omit(diferencias)
sum(diferencias)/(2*length(diferencias))
## [1] 3.402778
sum(diferencias)
## [1] 490
gamma=sum(diferencias)/(2*length(diferencias))
gamma
## [1] 3.402778
##funcion semivariograma
calc_semivariograma=function(lag){
diferencias=c(apply(datos,1,diff,lag=lag)^2,apply(datos,2,diff, lag=lag)^2)
diferencias=na.omit(diferencias)
sum(diferencias)/(2*length(diferencias))
sum(diferencias)
gamma=sum(diferencias)/(2*length(diferencias))
return(gamma)
}
calc_semivariograma(lag=1)
## [1] 3.402778
calc_semivariograma(lag=2)
## [1] 6.258333
h=1:7
sapply(h,calc_semivariograma)
## [1] 3.402778 6.258333 10.687500 14.222222 12.795455 13.035714 15.555556
gamma=sapply(h,calc_semivariograma)
plot(h*100,gamma,pch=16, main="Semivariograma")
