#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#>>>>>>>>>>>>>>>>ROZDZIA艁 5>>>>>>>>>>>>>>>>>>>>>>>>>>>
#>>>>>>>>WARIOGRAM I KORELOGRAM>>>>>>>>>>>>>>>>>>>>>>>
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#5.2
#Przygotowanie bibliotek
# wczytywanie bibliotek
library(shapefiles)
library(maptools)
library(spdep)
library(geoR)
# liczenie koordynat
euro.shape1<-read.shape("c:/euro/euro.shp", dbf.data=TRUE, verbose=TRUE)
centr<-get.Pcent(euro.shape1)
centr1<-as.data.frame(centr)
names(centr1)<-c(搙coords","ycoords")
print(centr1)
names(euro.dane) # zosta艂y dodane dwie ostatnie zmienne
#tworzenie obiektu klasy geodata
euro.geoR<-as.geodata(euro.dane, coords.col = 7:8, data.col = 9)
is.geodata(euro.geoR) # sprawdzenie, czy obiekt jest klasy geodata
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#5.3
# liczenie i rysowanie wariogramu
vario1<-variog(euro.geoR)
plot(vario1, type="l", main="Wariogram wielokierunkowy dla zmiennej Z1_1995
PKB wg PPP w 1995r.")
text(2.3e+05, 5.2e+08, "nugget variance", adj=c(1,1))
text(1.085e+06,1.8e+09,"sill")
text(1.085e+06,0,"range")
# Podsumowanie wariogramu
print(vario1)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#5.4
#wariogram skalowany
# por贸wnanie wariogram贸w bez skalowania i ze skalowaniem.
euro.geoR.Z1_1995<-as.geodata(euro.dane, coords.col = 7:8, data.col = 9)
euro.geoR.PZ1<-as.geodata(euro.dane, coords.col = 7:8, data.col = 27)
par(mfrow=c(1,2))
vario1<-variog(euro.geoR.Z1_1995)
vario2<-variog(euro.geoR.PZ1)
plot(vario1, type="l", main="nieskalowany dla Z1_1995")
plot(vario2, type="l", main="nieskalowany dla PZ1")
plot(vario1, type="l", scaled=TRUE, main="skalowany dla Z1_1995", var.lines=TRUE)
plot(vario2, type="l", scaled=TRUE, main="skalowany dla PZ1", var.lines=TRUE)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 5.5
# przetwarzanie wynik贸w wariogramu
# modyfikacja wydruku
vario.val1<-vario1$v # tworzenie obiektu z warto艣ci wariogramu
vario.val<-as.data.frame(vario.val1) # zmiana formatu na liczbowy obiektu warto艣ci wariogramu
names(vario.val)<-c(搗ariog.values") # zmiana nazwy zmiennej
is.data.frame(vario.val) # sprawdzenie, czy obiekt jest klasy data frame
vario.val # wy艣wietlenie zmiennej warto艣ci wariogramu jako danych liczbowych
var(euro.dane$Z1_1995) # policzenie wariancji pr贸bkowej
variog.scaled<-vario.val$variog.values/var(euro.dane$Z1_1995) # warto艣ci wariogramu skalowanego
vario.dist1<-vario1$u # obiekt warto艣ci odleg艂o艣ci dla jakich liczony jest wariogram
vario.dist<-as.data.frame(vario.dist1)
names(vario.dist)<-c(搗ariog.distance") # zmiana nazwy zmiennej
vario.dist.km<-vario.dist$variog.distance/900.90 # przeliczenie punkt贸w na mapie na km
vario.all<-cbind(vario.dist, vario.dist.km, vario.val, variog.scaled) # po艂膮czenie wszystkich zmiennych w jeden wydruk
vario.all
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 5.6
# por贸wnania graficzne wariogram贸w
# dwa wariogramy na jednym wykresie
plot(vario1, type="l", scaled=TRUE, var.lines=TRUE)
lines(vario2, type="l", scaled=TRUE)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 5.7
# obwiednie wariogramu
par(mfrow=c(1,2))
# rysowanie wariogramu i testowanie autokorelacji przestrzennej
euro.geoR<-as.geodata(euro.dane, coords.col = 7:8, data.col = 10)
vario1<-variog(euro.geoR)
vario1.env<-variog.mc.env(euro.geoR, obj.var=vario1)
plot(vario1, envelope=vario1.env, type="l")
title(main="wariogram dla zmiennej Z2_1995")
euro.geoR<-as.geodata(euro.dane, coords.col = 7:8, data.col = 28)
vario1<-variog(euro.geoR)
vario1.env<-variog.mc.env(euro.geoR, obj.var=vario1)
plot(vario1, envelope=vario1.env, type="l")
title(main="wariogram dla zmiennej PZ2")
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 5.8
# r臋czne dopasowanie wariogramu
# dopasowanie wzrokowe funkcji rozk艂adu do empirycznego wariogramu
eyefit(vario1, silent = FALSE)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 5.9
# estymacja wariogramu
euro.geoR.Z1_1995<-as.geodata(euro.dane, coords.col = 7:8, data.col = 9)
# dopasowanie przez MNW do danych empirycznych funkcja
likfit()
vario.likfit<-likfit(euro.geoR.Z1_1995, ini=c(0.5, 0.5), fix.nugget=TRUE)
print(vario.likfit)
summary(vario.likfit)
######################
###### Przyk艂ad 12 ######
######################
# dopasowanie przez MNW do danych empirycznych - funkcja likfit()
vario.likfit<-likfit(euro.geoR.Z1_1995, ini=c(0.5, 0.5), fix.nugget=TRUE)
print(vario.likfit)
summary(vario.likfit)
#dopasowanie przez MNK do danych empirycznych - funkcja variofit()
vario.variofit<-variofit(vario1, ini.cov.pars=c(100000000,1000000))
print(vario.variofit)
summary(vario.variofit)
# rysunek wariogram贸w
plot(vario1)
lines(vario1.fit)
lines(vario1.fitvario)
######################
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 5.11
# wyliczenie i rysowanie korelogramu
# korelogram oparty na klasycznym wsp贸艂czynniku korelacji
corr.classic<- sp.correlogram(euro.nb, euro.dane$Z1_1995, order=6, method="corr")
# korelogram oparty na wsp贸艂czynniku autokorelacji I Morana
corr.moran<-sp.correlogram(euro.nb, euro.dane$Z1_1995, order=6, method="I")
print(corr.classic)
print(corr.moran)
par(mfrow=c(1,2))
plot(corr.moran, main="Rys.a")
plot(corr.classic, main="Rys.b")
# testy istotno艣ci dla I Morana
corr.moran<-sp.correlogram(euro.nb, euro.dane$Z1_1995, order=6, method="I")
# tworzenie statystyki testowej
stat <- apply(corr.moran$res, 1, function(x) (x[1]-x[2])/sqrt(x[3]))
# tworzenie tabeli z p-value
corr.moran<-cbind(corr.moran$res, stat, p.adjust(2*pnorm(abs(stat), lower.tail=FALSE)))
colnames(corr.moran)<-c("I Morana", "E(I)", "Var(I)", "ZI", "p-value")
corr.moran
# testy istotno艣ci dla wsp贸艂czynnika korelacji liniowej
corr.classic<- sp.correlogram(euro.nb, euro.dane$Z1_1995, order=6, method="corr")
# p臋tla licz膮ca liczb臋 obserwacji n w ka偶dym op贸藕nieniu
for(i in 1:6)
{obs[i]<-sum(unlist(corr.classic$cardnos[i])*as.numeric(names(unlist(corr.classic$cardnos[i]))))}
corr<-cbind(corr.classic$res, obs)
corr<-as.data.frame(corr)
colnames(corr)<-c("r", "n")
# statystyka testuj膮ca i skorygowane p-value
stat<-(corr$r/sqrt(1-(corr$r)^2))*sqrt(corr$n-2)
pval<-p.adjust(1-pnorm(abs(stat)), method="bonferroni", n=length(stat))
corr<-cbind(corr, stat, pval)
corr
Wyszukiwarka
Podobne podstrony:
kopczewska (pliki z kodami) Rozdzia艂 02 Podstawowe operacjekopczewska (pliki z kodami) Rozdzia艂 03 Macierze wagkopczewska (pliki z kodami) Rozdzia艂 04 Statystyki globalne i lokalnekopczewska (pliki z kodami) Rozdzia艂 06 Modelowanie przestrzennekopczewska (pliki z kodami) czytajLista projekt贸w wybranych wraz z kodami 27 05 201405 rozdzia艂 05ROZDZIA艁 05 Dziedziczne nowotwory nerek07 Rozdzia艂 05 Ca艂ka funkcji dw贸ch zmiennych06 Rozdzia臋 0506 rozdzia艂 05 26pdmeq2uxr33udenjgfxnhbbmddcafwcxjosqaRozdzia艂 05 Kontroler DMAwi臋cej podobnych podstron