Modul ini digunakan sebagai panduan praktikum untuk materi Analisis Eksplorasi Data Areal. Pada praktikum ini, kita akan belajar bagaimana membaca, memvisualisasikan, dan memahami pola pada data yang tersedia berdasarkan suatu wilayah.
Setelah mengikuti praktikum ini, mahasiswa diharapkan mampu:
Sebelum memulai analisis, kita perlu menyiapkan beberapa paket R yang akan digunakan selama praktikum.
Jalankan kode berikut untuk memasang paket yang belum tersedia pada komputer.
packages <- c("sf", "spData", "spdep", "tmap", "ggplot2", "dplyr",
"cartogram", "classInt", "RColorBrewer")
installed <- packages %in% rownames(installed.packages())
if (any(!installed)) install.packages(packages[!installed])Setelah semua paket tersedia, jalankan kode berikut untuk memuat paket-paket tersebut ke dalam R.
library(sf) # Mengelola dan menganalisis data spasial
library(spData) # Menyediakan berbagai contoh data spasial
library(spdep) # Membentuk ketetanggaan dan bobot spasial
library(tmap) # Membuat peta tematik
library(ggplot2) # Membuat visualisasi data
library(dplyr) # Mengolah dan memanipulasi data
library(cartogram) # Membuat peta cartogram
library(classInt) # Membentuk interval atau kelas dataPada praktikum ini, kita akan menggunakan data Sudden Infant Death Syndrome (SIDS) di wilayah North Carolina, Amerika Serikat. Data ini berisi informasi mengenai jumlah kematian bayi akibat SIDS dan jumlah kelahiran pada setiap county.
Data tersebut sudah tersedia dalam bentuk data spasial pada paket
sf, sehingga setiap baris data tidak hanya memiliki
informasi atribut, tetapi juga memiliki geometri
wilayah yang dapat digunakan untuk membuat peta.
Pertama, kita akan membaca data dan melihat struktur datanya.
nc_path <- system.file("shape/nc.shp", package = "sf")
nc <- st_read(nc_path, quiet = TRUE)
# Lihat struktur data
glimpse(nc)## Rows: 100
## Columns: 15
## $ AREA <dbl> 0.114, 0.061, 0.143, 0.070, 0.153, 0.097, 0.062, 0.091, 0.11…
## $ PERIMETER <dbl> 1.442, 1.231, 1.630, 2.968, 2.206, 1.670, 1.547, 1.284, 1.42…
## $ CNTY_ <dbl> 1825, 1827, 1828, 1831, 1832, 1833, 1834, 1835, 1836, 1837, …
## $ CNTY_ID <dbl> 1825, 1827, 1828, 1831, 1832, 1833, 1834, 1835, 1836, 1837, …
## $ NAME <chr> "Ashe", "Alleghany", "Surry", "Currituck", "Northampton", "H…
## $ FIPS <chr> "37009", "37005", "37171", "37053", "37131", "37091", "37029…
## $ FIPSNO <dbl> 37009, 37005, 37171, 37053, 37131, 37091, 37029, 37073, 3718…
## $ CRESS_ID <int> 5, 3, 86, 27, 66, 46, 15, 37, 93, 85, 17, 79, 39, 73, 91, 42…
## $ BIR74 <dbl> 1091, 487, 3188, 508, 1421, 1452, 286, 420, 968, 1612, 1035,…
## $ SID74 <dbl> 1, 0, 5, 1, 9, 7, 0, 0, 4, 1, 2, 16, 4, 4, 4, 18, 3, 4, 1, 1…
## $ NWBIR74 <dbl> 10, 10, 208, 123, 1066, 954, 115, 254, 748, 160, 550, 1243, …
## $ BIR79 <dbl> 1364, 542, 3616, 830, 1606, 1838, 350, 594, 1190, 2038, 1253…
## $ SID79 <dbl> 0, 3, 6, 2, 3, 5, 2, 2, 2, 5, 2, 5, 4, 4, 6, 17, 4, 7, 1, 0,…
## $ NWBIR79 <dbl> 19, 12, 260, 145, 1197, 1237, 139, 371, 844, 176, 597, 1369,…
## $ geometry <MULTIPOLYGON [°]> MULTIPOLYGON (((-81.47276 3..., MULTIPOLYGON ((…
Berdasarkan output di atas, data nc terdiri atas
100 baris, yang mewakili 100 county di North
Carolina.
Setiap county memiliki beberapa informasi atau peubah, seperti nama wilayah, luas wilayah, jumlah kelahiran, jumlah kasus SIDS, serta informasi geometri wilayah.
Kolom geometry menunjukkan bahwa data ini merupakan
data spasial berbentuk poligon, yaitu setiap county
direpresentasikan sebagai suatu wilayah pada peta.
Beberapa peubah yang akan digunakan dalam praktikum ini adalah sebagai berikut.
| Peubah | Keterangan |
|---|---|
AREA |
Luas wilayah county |
NAME |
Nama county |
SID74 |
Jumlah kasus SIDS tahun 1974 |
BIR74 |
Jumlah kelahiran tahun 1974 |
SID79 |
Jumlah kasus SIDS tahun 1979 |
BIR79 |
Jumlah kelahiran tahun 1979 |
geometry |
Bentuk atau batas wilayah setiap county |
Diskusi:
Perhatikan bahwa kolomgeometrypada objekncbertipeMULTIPOLYGON. Hal ini menunjukkan bahwa unit pengamatan pada data ini berupa wilayah atau poligon, yaitu county di North Carolina.Ini merupakan ciri khas data areal, karena setiap pengamatan mewakili suatu wilayah. Berbeda dengan data geostatistik yang biasanya direpresentasikan sebagai titik lokasi dengan koordinat tertentu.
## [1] "sf" "data.frame"
##
## GEOMETRY POINT LINESTRING POLYGON
## 0 0 0 0
## MULTIPOINT MULTILINESTRING MULTIPOLYGON GEOMETRYCOLLECTION
## 0 0 100 0
## CIRCULARSTRING COMPOUNDCURVE CURVEPOLYGON MULTICURVE
## 0 0 0 0
## MULTISURFACE CURVE SURFACE POLYHEDRALSURFACE
## 0 0 0 0
## TIN TRIANGLE
## 0 0
Hasil di atas menunjukkan bahwa objek nc merupakan objek
spasial sf dan seluruh wilayahnya direpresentasikan dalam
bentuk MULTIPOLYGON.
Jumlah kasus SIDS pada setiap county tidak bisa langsung dibandingkan begitu saja. County dengan jumlah kelahiran yang lebih banyak cenderung memiliki peluang jumlah kasus SIDS yang lebih besar.
Agar perbandingan antarcounty menjadi lebih adil, kita menghitung rate SIDS, yaitu jumlah kasus SIDS dibandingkan dengan jumlah kelahiran.
Pada praktikum ini, rate SIDS dihitung sebagai jumlah kasus SIDS per 1.000 kelahiran.
\[ \text{Rate SIDS} = \frac{\text{Jumlah kasus SIDS}}{\text{Jumlah kelahiran}} \times 1000 \]
nc <- nc %>%
mutate(SID74_rate = (SID74 / BIR74) * 1000) # per 1000 kelahiran
summary(nc$SID74_rate)## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 1.084 1.855 2.046 2.604 9.554
Berdasarkan hasil di atas, nilai SID74_rate berkisar
antara 0 hingga 9,554 kasus per 1.000 kelahiran, dengan
rata-rata sekitar 2,046 kasus per 1.000 kelahiran.
Artinya, tingkat kejadian SIDS berbeda-beda antarcounty. Selanjutnya, kita akan melihat bagaimana perbedaan tersebut tersebar secara spasial melalui peta.
Visualisasi merupakan salah satu tahap penting dalam analisis data spasial. Dengan peta, kita dapat melihat apakah suatu nilai cenderung tinggi atau rendah pada wilayah tertentu serta mengenali pola penyebarannya secara lebih mudah.
Pada bagian ini, kita akan memvisualisasikan data areal menggunakan peta choropleth.
Peta choropleth adalah peta yang memberikan warna berbeda pada setiap wilayah berdasarkan nilai suatu peubah.
Semakin berbeda nilai antarwilayah, semakin berbeda pula warna yang ditampilkan pada peta. Dengan cara ini, pola penyebaran suatu peubah dapat dilihat secara visual.
Sebagai langkah awal, kita akan memetakan jumlah kasus SIDS
tahun 1974 (SID74) pada setiap county.
tm_shape(nc) +
tm_polygons("SID74",
palette = "YlOrRd",
style = "quantile",
n = 5,
title = "Jumlah Kasus SID (1974)") +
tm_layout(main.title = "Peta Choropleth: Nilai Absolut SID74",
main.title.size = 1,
legend.outside = TRUE)Pada peta tersebut, warna setiap county menunjukkan besar kecilnya jumlah kasus SIDS.
Wilayah dengan warna yang lebih pekat menunjukkan jumlah kasus SIDS yang lebih tinggi, sedangkan warna yang lebih terang menunjukkan jumlah kasus yang lebih rendah.
Namun, kita perlu berhati-hati dalam menginterpretasikan peta ini.
Nilai SID74 merupakan jumlah kasus
absolut, sehingga county dengan jumlah kelahiran yang lebih
banyak memiliki peluang untuk menunjukkan jumlah kasus yang lebih
tinggi.
Oleh karena itu, pada bagian berikutnya kita akan membandingkan peta jumlah kasus absolut dengan rate SIDS per 1.000 kelahiran.
Selanjutnya, kita akan memetakan rate SIDS per 1.000 kelahiran dan membandingkannya dengan peta jumlah kasus SIDS sebelumnya.
Perhatikan apakah county yang memiliki jumlah kasus SIDS tinggi juga selalu memiliki rate SIDS yang tinggi.
tm_shape(nc) +
tm_polygons("SID74_rate",
palette = "YlOrRd",
style = "quantile",
n = 5,
title = "SID Rate per 1000 Kelahiran") +
tm_layout(main.title = "Peta Choropleth: SID74 Rate",
main.title.size = 1,
legend.outside = TRUE)Pada peta ini, warna menunjukkan tingkat kejadian SIDS per 1.000 kelahiran pada setiap county. Warna yang semakin pekat menunjukkan rate SIDS yang semakin tinggi.
Jika dibandingkan dengan peta jumlah kasus absolut, pola yang terlihat dapat berbeda. Suatu county dapat memiliki jumlah kasus SIDS yang tinggi karena jumlah kelahirannya juga tinggi, tetapi belum tentu memiliki rate SIDS yang tinggi.
Oleh karena itu, penggunaan rate membantu kita membandingkan kejadian SIDS antarcounty dengan mempertimbangkan perbedaan jumlah kelahiran.
Diskusi: Bandingkan kedua peta di atas. Apakah county dengan warna paling gelap sama pada kedua peta? Menurut kalian, peta mana yang lebih tepat untuk menggambarkan risiko SIDS di suatu wilayah? Mengapa?
Pada peta choropleth, nilai data biasanya dibagi menjadi beberapa kelas atau kelompok warna. Cara membagi kelas tersebut dapat memengaruhi tampilan peta dan pola yang terlihat.
Artinya, data yang sama dapat menghasilkan tampilan peta yang berbeda hanya karena metode pembagian kelasnya berbeda.
Pada bagian ini, kita akan membandingkan empat metode pembagian kelas
yang tersedia pada tmap, yaitu:
equal : membagi rentang nilai menjadi interval dengan
lebar yang sama.quantile : membagi wilayah sehingga setiap kelas
memiliki jumlah observasi yang relatif sama.jenks : membentuk kelas berdasarkan kelompok alami pada
data (natural breaks).sd : membentuk kelas berdasarkan jarak nilai terhadap
rata-rata dalam satuan standar deviasi.Jalankan kode berikut untuk membandingkan keempat metode tersebut.
style_list <- c("equal", "quantile", "jenks", "sd")
maps <- lapply(style_list, function(s) {
tm_shape(nc) +
tm_polygons("SID74_rate",
palette = "YlOrRd",
style = s,
n = 5,
title = s) +
tm_layout(main.title = paste("style =", s),
main.title.size = 0.9,
legend.outside = FALSE,
legend.text.size = 0.5)
})
tmap_arrange(maps[[1]], maps[[2]], maps[[3]], maps[[4]], ncol = 2)Histogram dapat membantu kita melihat bentuk distribusi data. Perhatikan apakah data tersebar relatif simetris atau cenderung menumpuk pada salah satu sisi (skewed).
Jika sebagian besar nilai berada pada nilai rendah tetapi terdapat beberapa nilai yang jauh lebih tinggi, maka distribusi cenderung miring ke kanan (right-skewed).
Perhatikan kembali keempat peta hasil metode equal,
quantile, jenks, dan sd, serta
histogram distribusi SID74_rate.
Jawab pertanyaan berikut:
Bagaimana bentuk distribusi SID74_rate berdasarkan
histogram?
Apakah keempat metode pembagian kelas menghasilkan pola warna yang sama? Jelaskan perbedaannya secara singkat.
Metode mana yang membuat sebagian besar county cenderung berada pada kelas warna yang sama?
Menurut kalian, metode pembagian kelas mana yang paling sesuai
untuk menggambarkan variasi SID74_rate? Jelaskan alasan
kalian dengan mengaitkannya pada bentuk distribusi data.
Berbeda dengan peta choropleth yang mempertahankan bentuk wilayah dan hanya membedakan warna, cartogram mengubah ukuran wilayah berdasarkan nilai suatu peubah.
Wilayah dengan nilai yang lebih besar akan tampak membesar, sedangkan wilayah dengan nilai yang lebih kecil akan tampak mengecil.
Pada contoh ini, ukuran setiap county akan diubah berdasarkan
BIR74, yaitu jumlah kelahiran tahun 1974.
Dengan demikian, county dengan jumlah kelahiran yang lebih besar akan
terlihat lebih besar pada cartogram.
Sebelum membuat cartogram, data perlu diubah ke sistem koordinat proyeksi agar perhitungan ukuran wilayah dilakukan dalam satuan planar.
# Perlu proyeksi yang menggunakan satuan planar (bukan derajat) untuk cartogram
nc_proj <- st_transform(nc, crs = 32119) # NAD83 / North Carolina (meter)
# Cartogram berdasarkan BIR74 (jumlah kelahiran) sebagai proksi populasi
nc_cartogram <- cartogram_cont(nc_proj, weight = "BIR74", itermax = 5)
p1 <- tm_shape(nc_proj) +
tm_polygons("BIR74", palette = "Blues", style = "quantile", title = "BIR74") +
tm_layout(main.title = "Choropleth", main.title.size = 0.9)
p2 <- tm_shape(nc_cartogram) +
tm_polygons("BIR74", palette = "Blues", style = "quantile", title = "BIR74") +
tm_layout(main.title = "Cartogram", main.title.size = 0.9)
tmap_arrange(p1, p2, ncol = 2)Perhatikan perbedaan antara kedua peta.
Pada peta choropleth, bentuk dan ukuran county masih
mengikuti bentuk geografis aslinya. Nilai BIR74 hanya
ditunjukkan melalui perbedaan warna.
Pada cartogram, ukuran county ikut berubah
berdasarkan nilai BIR74. County dengan jumlah kelahiran
yang lebih besar akan terlihat membesar, sedangkan county dengan jumlah
kelahiran yang lebih kecil akan terlihat mengecil.
Dengan demikian, cartogram membantu menonjolkan wilayah berdasarkan besar nilai suatu peubah, bukan berdasarkan luas geografis sebenarnya.
Diskusi:
Bandingkan peta choropleth dan cartogram di atas.
- County mana yang mengalami perubahan ukuran paling jelas?
- Apa arti county yang terlihat semakin besar pada cartogram?
- Apakah ukuran county pada cartogram masih menunjukkan luas geografis sebenarnya? Jelaskan.
Buatlah cartogram baru menggunakan SID74 sebagai peubah
pembentuk ukuran wilayah.
Kemudian bandingkan hasilnya dengan cartogram berdasarkan
BIR74.
Jawab pertanyaan berikut:
SID74?BIR74) dapat memberikan pola yang berbeda dengan cartogram
berdasarkan jumlah kasus SIDS (SID74).Salah satu masalah penting dalam analisis data areal adalah Modifiable Areal Unit Problem (MAUP).
MAUP menunjukkan bahwa hasil analisis spasial dapat berubah ketika unit wilayah yang digunakan untuk mengelompokkan data diubah.
Secara umum, MAUP dapat muncul dalam dua bentuk:
Pada bagian ini, kita akan membuat simulasi sederhana untuk melihat kedua efek tersebut menggunakan data SIDS North Carolina.
Pada data awal, setiap county merupakan satu unit pengamatan. Selanjutnya, 100 county tersebut akan dikelompokkan menjadi 10 region untuk melihat bagaimana pola yang muncul ketika data dianalisis pada skala wilayah yang lebih besar.
Catatan: Pengelompokan region pada contoh ini dilakukan secara acak dan hanya digunakan untuk membantu memahami konsep MAUP.
set.seed(123)
# Jumlah region yang akan dibentuk
n_regions <- 10
# Mengelompokkan setiap county secara acak ke dalam 10 region
nc$region_acak <- sample(
1:n_regions,
nrow(nc),
replace = TRUE
)
# Menggabungkan data berdasarkan region
nc_region <- nc %>%
group_by(region_acak) %>%
summarise(
SID74_total = sum(SID74),
BIR74_total = sum(BIR74)
) %>%
mutate(
SID74_rate_region = (SID74_total / BIR74_total) * 1000
)Perhatikan kedua peta di atas.
Peta sebelah kiri menunjukkan SID74_rate pada
100 county, sedangkan peta sebelah kanan menunjukkan
rate setelah data digabungkan menjadi 10 region.
Setelah beberapa county digabungkan, variasi yang sebelumnya terlihat pada tingkat county menjadi lebih sederhana. Beberapa wilayah yang sebelumnya memiliki rate sangat tinggi atau sangat rendah dapat berubah setelah nilainya digabungkan dengan wilayah lain.
Hal ini menunjukkan bahwa pola spasial yang kita lihat dapat bergantung pada skala wilayah yang digunakan dalam analisis.
Diskusi
Bandingkan peta pada skala 100 county dan 10 region.
- Apakah pola warna pada kedua peta terlihat sama?
- Apa yang terjadi pada variasi rate setelah beberapa county digabungkan menjadi region yang lebih besar?
- Mengapa perubahan skala wilayah dapat memengaruhi kesimpulan yang kita peroleh dari suatu peta?
Pada contoh sebelumnya, 100 county dikelompokkan menjadi 10 region
menggunakan set.seed(123).
Sekarang, ulangi proses tersebut menggunakan nilai
set.seed() yang berbeda, misalnya:3 angka terakhir dari
NIM. Tetap gunakan jumlah region yang sama, yaitu: 10
Dalam analisis data areal, kita perlu menentukan wilayah mana yang dianggap bertetangga.
Informasi ketetanggaan ini penting karena nantinya akan digunakan untuk melihat apakah suatu wilayah memiliki hubungan spasial dengan wilayah di sekitarnya, misalnya pada analisis autokorelasi spasial.
Pada data berbentuk wilayah atau poligon, ketetanggaan dapat ditentukan berdasarkan:
Pada bagian pertama, kita akan melihat ketetanggaan berdasarkan perbatasan wilayah.
Dua wilayah dapat dikatakan bertetangga apabila batas wilayahnya saling bersentuhan.
Terdapat dua kriteria yang umum digunakan, yaitu Queen dan Rook.
Pada kriteria Queen, dua wilayah dianggap bertetangga jika keduanya:
Konsep ini mirip dengan pergerakan bidak ratu (queen) pada permainan catur yang dapat bergerak ke berbagai arah.
## Neighbour list object:
## Number of regions: 100
## Number of nonzero links: 490
## Percentage nonzero weights: 4.9
## Average number of links: 4.9
Berdasarkan output tersebut, terdapat 100 wilayah dengan rata-rata sekitar 4,9 hubungan ketetanggaan untuk setiap county.
Artinya, dengan kriteria Queen, satu county rata-rata memiliki sekitar 4–5 county tetangga.
Berbeda dengan Queen, pada kriteria Rook, dua wilayah hanya dianggap bertetangga jika keduanya berbagi sisi atau batas yang sama.
Jika dua wilayah hanya bertemu pada satu titik atau sudut, keduanya tidak dianggap bertetangga.
Konsep ini mirip dengan pergerakan bidak benteng (rook) pada permainan catur yang bergerak secara horizontal atau vertikal.
## Neighbour list object:
## Number of regions: 100
## Number of nonzero links: 462
## Percentage nonzero weights: 4.62
## Average number of links: 4.62
Dengan kriteria Rook, rata-rata jumlah tetangga adalah sekitar 4,62 county untuk setiap wilayah.
Jumlah ini sedikit lebih kecil dibandingkan Queen karena wilayah yang hanya bersentuhan pada sudut tidak dihitung sebagai tetangga.
Agar perbedaan Queen dan Rook lebih mudah dilihat, struktur ketetanggaan dapat divisualisasikan dalam bentuk jaringan.
Setiap titik mewakili pusat suatu county, sedangkan garis menunjukkan hubungan ketetanggaan antarcounty.
coords <- st_coordinates(st_centroid(st_geometry(nc)))
par(mfrow = c(1, 2), mar = c(1, 1, 3, 1))
plot(st_geometry(nc), border = "grey60", main = "Queen Contiguity")
plot(nb_queen, coords, add = TRUE, col = "red", lwd = 1.2)
plot(st_geometry(nc), border = "grey60", main = "Rook Contiguity")
plot(nb_rook, coords, add = TRUE, col = "blue", lwd = 1.2)Perhatikan kedua visualisasi di atas.
Jaringan Queen terlihat sedikit lebih rapat dibandingkan Rook. Hal ini terjadi karena Queen menganggap wilayah yang bersinggungan pada sisi maupun sudut sebagai tetangga, sedangkan Rook hanya mempertimbangkan wilayah yang berbagi sisi.
Diskusi
- Mengapa jumlah hubungan ketetanggaan pada Queen lebih banyak dibandingkan Rook?
- Apakah setiap county memiliki jumlah tetangga yang sama?
- Menurut kalian, apakah pemilihan kriteria Queen atau Rook dapat memengaruhi hasil analisis spasial selanjutnya? Mengapa?
Ketetanggaan tidak selalu harus ditentukan berdasarkan wilayah yang berbatasan langsung. Dua wilayah juga dapat dianggap bertetangga berdasarkan kedekatan jaraknya.
Pada bagian ini, kita akan menggunakan dua pendekatan, yaitu:
Pada metode K-Nearest Neighbors (KNN), setiap
wilayah dihubungkan dengan sejumlah k wilayah yang jaraknya
paling dekat.
Sebagai contoh, jika digunakan k = 4, maka setiap county
akan memiliki 4 county terdekat sebagai tetangga,
meskipun county tersebut tidak berbatasan langsung.
## Neighbour list object:
## Number of regions: 100
## Number of nonzero links: 400
## Percentage nonzero weights: 4
## Average number of links: 4
## Non-symmetric neighbours list
Hasil tersebut menunjukkan bahwa setiap county memiliki 4
tetangga terdekat karena kita menggunakan
k = 4.
Perhatikan juga keterangan
Non-symmetric neighbours list. Hal ini dapat terjadi karena
hubungan KNN tidak selalu dua arah.
Artinya, county A dapat memilih county B sebagai salah satu dari 4 tetangga terdekatnya, tetapi county B belum tentu memilih county A sebagai salah satu dari 4 tetangga terdekatnya.
Pada metode Distance Band, dua wilayah dianggap bertetangga apabila jarak antara keduanya masih berada dalam radius atau batas jarak tertentu.
Berbeda dengan KNN, metode ini tidak menentukan jumlah tetangga yang harus sama untuk setiap wilayah.
Akibatnya, county yang memiliki banyak wilayah di sekitarnya dapat mempunyai lebih banyak tetangga, sedangkan county yang relatif jauh dari wilayah lain dapat memiliki lebih sedikit tetangga.
# Tentukan jarak (dalam satuan koordinat, disini derajat karena nc masih lon/lat)
# Gunakan critical cutoff agar tidak ada area yang "terisolasi" (0 tetangga)
dist_max <- max(unlist(nbdists(knn2nb(knearneigh(coords, k = 1)), coords)))
dist_nb <- dnearneigh(coords, d1 = 0, d2 = dist_max * 1.5)
dist_nb## Neighbour list object:
## Number of regions: 100
## Number of nonzero links: 692
## Percentage nonzero weights: 6.92
## Average number of links: 6.92
Pada contoh ini, batas jarak (dist_max) ditentukan
berdasarkan jarak tetangga terdekat terbesar, kemudian diperbesar untuk
membentuk radius ketetanggaan.
Berbeda dengan KNN, jumlah tetangga pada metode Distance Band tidak harus sama untuk setiap county.
Selanjutnya, kita bandingkan struktur ketetanggaan yang dihasilkan oleh KNN dan Distance Band.
Pada visualisasi berikut, titik menunjukkan pusat setiap county dan garis menunjukkan hubungan ketetanggaan.
par(mfrow = c(1, 2), mar = c(1, 1, 3, 1))
plot(st_geometry(nc), border = "grey60", main = "K-Nearest Neighbors (k=4)")
plot(knn_nb, coords, add = TRUE, col = "darkgreen", lwd = 1.2)
plot(st_geometry(nc), border = "grey60", main = "Distance-based Neighbors")
plot(dist_nb, coords, add = TRUE, col = "purple", lwd = 1.2)Perhatikan bahwa struktur jaringan yang dihasilkan kedua metode berbeda.
Pada KNN, setiap county memiliki jumlah tetangga yang telah ditentukan sebelumnya, yaitu 4 tetangga terdekat.
Sementara itu, pada Distance Band, semua county yang berada dalam radius tertentu akan dianggap sebagai tetangga. Oleh karena itu, jumlah tetangga setiap county dapat berbeda-beda.
Ulangi pembentukan ketetanggaan KNN dengan mengubah nilai
k menjadi:
k = 2k = 8Visualisasikan kedua hasil tersebut, kemudian bandingkan dengan KNN
k = 4.
Jawab pertanyaan berikut:
k diperbesar?k = 2 dibandingkan
dengan k = 8?k yang terlalu kecil?k yang terlalu besar?Setelah hubungan ketetanggaan antarwilayah terbentuk, langkah berikutnya adalah memberikan bobot pada hubungan tersebut.
Bobot spasial digunakan untuk menunjukkan seberapa besar pengaruh suatu wilayah terhadap wilayah tetangganya. Struktur bobot ini nantinya menjadi dasar dalam berbagai analisis spasial, seperti Moran’s I.
Pada contoh ini, kita menggunakan ketetanggaan Queen
dan melakukan row-standardization dengan
style = "W".
Pada pembobotan ini, bobot seluruh tetangga untuk setiap wilayah dibuat sehingga jumlahnya sama dengan 1.
## Characteristics of weights list object:
## Neighbour list object:
## Number of regions: 100
## Number of nonzero links: 490
## Percentage nonzero weights: 4.9
## Average number of links: 4.9
##
## Weights style: W
## Weights constants summary:
## n nn S0 S1 S2
## W 100 10000 100 44.65023 410.4746
## [[1]]
## [1] 0.3333333 0.3333333 0.3333333
##
## [[2]]
## [1] 0.3333333 0.3333333 0.3333333
##
## [[3]]
## [1] 0.2 0.2 0.2 0.2 0.2
Pada wilayah pertama, terdapat 3 tetangga, sehingga masing-masing memperoleh bobot:
\[ \frac{1}{3} = 0.333 \]
Sementara itu, wilayah ketiga memiliki 5 tetangga, sehingga masing-masing memperoleh bobot:
\[ \frac{1}{5} = 0.2 \]
Dengan demikian, setelah dilakukan row-standardization, jumlah seluruh bobot tetangga untuk setiap wilayah adalah 1.
Diskusi
- Mengapa bobot wilayah yang memiliki 3 tetangga berbeda dengan wilayah yang memiliki 5 tetangga?
- Apa tujuan dari row-standardization sehingga jumlah bobot setiap wilayah menjadi 1?
- Bagaimana jika terdapat suatu wilayah yang sama sekali tidak memiliki tetangga (island)?
Gunakan peubah tahun 1979, yaitu SID79 dan
BIR79, untuk melakukan analisis sederhana seperti yang
telah dilakukan pada data tahun 1974.
Kerjakan langkah-langkah berikut:
style = "W".Catatan: Pada tahap ini, kesimpulan mengenai pola mengelompok (cluster) atau menyebar masih bersifat visual. Pengujian secara statistik akan dilakukan pada praktikum autokorelasi spasial.
Pada praktikum ini kita telah mempelajari beberapa konsep dasar analisis data areal, yaitu:
sf.Pada praktikum berikutnya, struktur ketetanggaan dan bobot spasial ini akan digunakan untuk mempelajari autokorelasi spasial, seperti Moran’s I.