Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 2.19 KB | None | 0 0
  1. #Wczytanie danych, wstepna eksploracja, przydzielenie wspolrzednych oraz prezentacja danych
  2. setwd('C:/Users/schul_000/Desktop/GEOSTATA KOŁO')
  3. dane <- read.csv("data/dane.csv")
  4. surowe_dane <- dane
  5. summary(dane)
  6. library('sp')
  7. coordinates(dane) <- ~X+Y
  8. summary(dane)
  9. #Zbadanie typu probkowania
  10. spplot(dane, "Fish")
  11. library('ggplot2')
  12. #Zbadanie rozkladu
  13. ggplot(dane@data, aes(Fish)) + geom_histogram() #prawoskosny, duzo zer, wystepuja bardzo wysokie wartosci
  14. boxplot(dane$Fish)
  15. summary(dane$Fish)
  16. sd(dane$Fish)
  17. #ze wzgledu na typ danych (ryby sa lub ich nie ma) nie usuwamy wartosci globalnie i lokalnie
  18. library('gstat')
  19. #tworzymy mape semiwariogramu
  20. vario_map <- variogram(Fish ~ 1, dane, cutoff = 1000, width = 30, map = TRUE)
  21. plot(vario_map, threshold=10)#nie wystepuje anizotropia
  22. #Semiwariancja
  23. semivario <- variogram(Fish~1, dane)
  24. plot(semivario)
  25. #Model
  26. model <- vgm(psill=300, model = 'Sph', range = 20, add.to = vgm(850, "Nug"))
  27. model2 <- fit.variogram(semivario,vgm(psill=300, model = 'Sph', range = 20, add.to = vgm(850, "Nug")))
  28. plot(semivario, model)
  29. plot(semivario, model2)
  30. #Siatka
  31. siatka <- expand.grid(X=seq(from=min(surowe_dane$X)-2, to=max(surowe_dane$X)+2, by=2),
  32.                       Y=seq(from=min(surowe_dane$Y)-2, to=max(surowe_dane$Y)+2, by=2))
  33. coordinates(siatka)<- ~X+Y
  34. gridded(siatka)<-TRUE
  35. plot(siatka)
  36. plot(dane, add = TRUE)
  37. #kriging zwykły, bo prosty wymaga lokalnej sredniej
  38. ok <- krige(Fish~1, dane, siatka, model=model, maxdist=30)
  39. summary(ok)
  40. #wynik estymacji i błąd
  41. spplot(ok, 'var1.pred')
  42. spplot(ok, 'var1.var')
  43. #Ocena
  44. #sredni blad estymacji
  45. library('caret')
  46. set.seed(124)
  47. indeks <- as.vector(createDataPartition(dane$Fish, p=0.75, list=FALSE))
  48. indeks
  49. train <- dane[indeks, ]
  50. test <- dane[-indeks, ]
  51. vario_train <- variogram(Fish~1, data=train)
  52. ok_train <- krige(Fish~1, train, test, model=model, maxdist=30) #nmax
  53. reszta_ok <-  ok_train$var1.pred - test$Fish
  54. summary(reszta_ok)
  55. ME <- sum(reszta_ok)/length(reszta_ok)
  56. ME
  57. #pierwiastek sredniego bledu kwadratowego
  58. RMSE <- sqrt(sum(reszta_ok^2)/length(reszta_ok))
  59. RMSE
  60. library('raster')
  61. estymacja <- raster(ok['var1.pred'])
  62. writeRaster(estymacja, filename="Nazwisko_Imie.tif", overwrite=TRUE)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement