Autokorelacja przestrzenna jest to korelacja pomiędzy wartościami tej samej zmiennej w różnych punktach przestrzeni
Celem ćwiczenia jest wykorzystanie wskaźnika I Morana do obliczania autokorelacji przestrzennej. W tym celu zostaną użyte dane dotyczące (?) dla województwa…. Przeanalizujemy czy zjawisko bezrobocia w powiatach (stopa bezrobocia) jest skorelowane przestrzennie.
W ramach tego projektu użyte zostały: • Dane o stopie bezrobocia zostały pobrane z GUS • warstwę wektorową z granicami powiatów (st_read) • plik csv wykorzystując read.csv2().
Obszarem badań jest województwa: śląskie oraz podkarpackie.
Na samym początku należy zainstalować oraz wczytać pakiet: sf, dplyr oraz tidyverse.
Następnie wczytujemy do projektu warstwę wektorową z granicami powiatów (st_read) oraz plik csv wykorzystując read.csv2(). Dzięki temu można zwizualizować województwa uwzględniając jego atrybuty.
Aby dołączyć do obiektu sf z granicami powiatów tabelę ze stopą bezrobocia wykorzystamy funkcję left_join() z pakietu dplyr.
pow_wsk = left_join(pow, wsk, "pow_kod")
Bardzo możliwe, że podczas próby uruchomienia funkcji wyskoczy błąd mówiący, że kolumny „pow_kod” są niekompatybilnych typów. Trzeba je wtedy zamienić na wspólny (np. factor lub character):
wsk$pow_kod = as.factor(wsk$pow_kod)
Po tym można ponownie uruchomić left_join(). Następnie po kodzie województwa (atrybut kod_woj) należy wybrać powiaty tylko te które należą do dwóch sąsiadujących województw. Lista kodów przyporządkowanych dla województw jest dostępna w Internecie.
wybrane = pow_wsk[pow_wsk$kod_woj %in% c(12,24),]
Następnie zainstaluj i wczyatj pakiet “spdep”.
Kolejnym eteapem będzie wykorzystanie funkcji “poly2nb”. Pozwoli to na zdefiniowanie sąsiedztwa tzn. sąsiadami danego powiatu będą wszystkie powiaty przylegające.
sasiedzi = poly2nb(wybrane)
Do zwizualizowania sąsiedztwa najpierw wyplotujemy same granice, a następnie linie łączące centroidy danych powiatów z centroidami sąsiadów.
plot(sasiedzi, st_geometry(st_centroid(wybrane)), add=TRUE, col='red')
Następnie obliczone zostaną wskaźniki I Morana. Funkcją nb2listw() nadamy wagi przestrzenne do listy sąsiadów.
wagi = nb2listw(sasiedzi)
Następnie obliczone zostanie globalne I Morana.
moran.test(wybrane$stopa_bezrobocia, wagi)
Następnie obliczone zostaną lokalne wartości I Morana.
local = localmoran(x = wybrane$stopa_bezrobocia, wagi)
Wynikiem są wartości I Morana dla każdego z analizowanych powiatów. Funkcją “cbind” możemy dołączyć go do naszego obiektu “wybrane”.
moran.map = cbind(wybrane, local)
Aby utworzyć mapę lokalnego I Morana należy zastosować następujący zapis.
tm_shape(moran.map) +
tm_borders(col = "black")+
tm_fill(col = "Ii",
style = "quantile",
title = "local moran statistic")