🗺️ CBS & Mekansal Analiz

Sıcak Nokta Analizi Nasıl Yapılır? Getis-Ord Gi* ile Hot Spot Haritalama

📅 Güncellendi: 5 Temmuz 2026 ⏱️ 24 dk okuma 🗺️ Mekansal İstatistik

Bir şehirde trafik kazaları rastgele mi dağılıyor, yoksa belirli kavşaklar ve sokaklar sürekli olarak öne çıkıyor mu? Salgın hastalık vakaları belirli mahallelerde mi yoğunlaşıyor? Bu soruları istatistiksel güvenle yanıtlayan yöntem, sıcak nokta analizidir. Bu kapsamlı rehberde Getis-Ord Gi* istatistiğinin matematiksel temelinden çoklu karşılaştırma (FDR) düzeltmesine, komşuluk matrisi türlerinden QGIS ve Python uygulamalarına kadar sıcak nokta analizinin tüm boyutlarını ele alıyoruz.

1. Sıcak Nokta mı, Yoğunluk Haritası mı?

Sıcak nokta analizi ile yoğunluk haritaları (Kernel Density Estimation) sıkça karıştırılır; ancak temel bir fark vardır. Yoğunluk haritası olay sayısının yoğunlaştığı yerleri görselleştirir; ancak bu yoğunlaşmanın istatistiksel olarak anlamlı olup olmadığını test etmez — bkz. Yoğunluk Analizi (KDE) yazımız. Sıcak nokta analizi ise her birimin komşularıyla karşılaştırmalı istatistiksel testini yapar ve "Bu yoğunlaşma tesadüf olamayacak kadar güçlü" diye belgelenebilir bir sonuç üretir. Karar alıcılara ve yargıya sunulacak raporlarda istatistiksel anlamlılık zorunlu olduğu için sıcak nokta analizi tercih edilir.

🔷 KDE kullanın, eğer…

  • Yalnızca görsel bir yoğunluk deseni istiyorsanız
  • İstatistiksel anlamlılık gerekmiyorsa
  • Sürekli bir "sıcaklık" yüzeyi üretmek istiyorsanız

🟩 Gi* kullanın, eğer…

  • "Bu kümelenme tesadüf mü?" sorusuna kanıt gerekiyorsa
  • Rapor/yayın için güven düzeyi (p-değeri) raporlanması gerekiyorsa
  • Ayrı ayrı birimler (mahalle, ilçe, nokta) için sınıflandırma istiyorsanız

2. Mekansal Kümelenme ve Coğrafyanın Birinci Yasası

Sıcak nokta analizinin kuramsal temeli, Tobler'in (1970) "Coğrafyanın Birinci Yasası"na dayanır: yakın nesneler uzak nesnelerden daha çok birbirine benzer. Gi* istatistiği, bu ilkeyi işlemselleştirir — bir birimin değeri, komşularının değerleriyle karşılaştırıldığında beklenenden anlamlı ölçüde yüksek veya düşükse, bu mekansal bağımlılığın rastlantısal olmadığının kanıtıdır. Kuramsal arka plan için CBS Nedir? yazımızdaki Tobler yasası ve mekansal otokorelasyon bölümüne bakabilirsiniz.

3. Getis-Ord Gi* İstatistiği: Matematiksel Temel

Getis ve Ord'un (1992) geliştirdiği Gi* istatistiği, her birim için o birimin ve belirlenen mesafe eşiği içindeki komşularının değer toplamını genel ortalamadan ne kadar saptığını ölçer:

Gi*(d) = [Σⱼ wᵢⱼ(d)·xⱼ − x̄·Σⱼ wᵢⱼ(d)] / [S·√((n·Σⱼ wᵢⱼ² − (Σⱼ wᵢⱼ)²) / (n−1))]

Burada wᵢⱼ(d) i'nin d mesafesi içindeki komşuluk ağırlıklarını, xⱼ komşu birimlerin değerlerini, genel ortalamayı ve S standart sapmayı temsil eder. Sonuç olarak her birim için standartlaştırılmış bir z-skoru üretilir.

Formülün özü basittir: bir birimin (ve komşularının) toplam değeri, tüm çalışma alanının ortalamasından ne kadar uzaksa, z-skoru o kadar büyür. "*" işareti (Gi*), birimin kendisinin de komşuluk toplamına dahil edildiğini belirtir — orijinal Gi istatistiğinden (Getis-Ord, 1992) farkı budur; Gi* günümüzde daha yaygın kullanılan versiyondur.

4. z-Skoru ve Güven Düzeyi Yorumlama

Gi* analizinin çıktısı z-skoru ve buna karşılık gelen güven düzeyidir. Yüksek ve anlamlı z-skoru sıcak nokta, düşük (negatif) ve anlamlı z-skoru ise soğuk nokta işaret eder:

z-Skorup DeğeriGüven DüzeyiYorum
> +2,58< 0,01%99Çok güçlü sıcak nokta
+1,96 ile +2,58< 0,05%95Güçlü sıcak nokta
+1,65 ile +1,96< 0,10%90Orta düzey sıcak nokta
−1,65 ile +1,65≥ 0,10İstatistiksel olarak anlamsız
−1,65 ile −1,96< 0,10%90Orta düzey soğuk nokta
−1,96 ile −2,58< 0,05%95Güçlü soğuk nokta
< −2,58< 0,01%99Çok güçlü soğuk nokta
Gi* z-Skoru Sınıflandırması %99 sıcak %95 sıcak %90 sıcak Anlamsız %90 soğuk %95 soğuk %99 soğuk -2.58 -1.65 +1.65 +2.58 z-skoru büyüdükçe sıcak nokta güveni artar; küçüldükçe soğuk nokta güveni artar
Şekil 1. Gi* z-skoru haritalarda standart renk kodlamasıyla gösterilir — kırmızı tonları sıcak nokta, mavi tonları soğuk nokta, gri anlamsız birimleri temsil eder.

Haritada genellikle üç sıcak nokta sınıfı (%90, %95, %99) kırmızının tonlarıyla, üç soğuk nokta sınıfı mavinin tonlarıyla, anlamsız birimler ise gri ile gösterilir. Bu renk kodlaması standartlaşmış olduğundan farklı çalışmalar arasında karşılaştırma kolaylaşır.

Dikkat: Gi* mutlak yüksek değerlerin kümesini bulur. Ortalamaya göre sapma bazlı küme analizi için Local Moran's I (LISA) kullanılmalıdır. Örneğin kaza sayısı düşük ama komşulara göre görece yüksek olan alanları bulmak istiyorsanız LISA daha uygun araçtır.

5. Gi* ile Local Moran's I (LISA) Karşılaştırması

ÖzellikGetis-Ord Gi*Local Moran's I (LISA)
OdakMutlak yüksek/düşük değer kümeleriOrtalamadan sapma benzerlikleri
SonuçSıcak / soğuk noktaHH, LL, HL, LH küme tipleri
Mekansal aykırı değer tespitiHayırEvet (HL ve LH kategorileri)
Tipik kullanımSuç, trafik, salgın, kaynak tahsisiSosyoekonomik eşitsizlik, bölgesel politika

Global ve yerel Moran's I'nın matematiksel temeli ve LISA kümelenme haritalarının üretimi için Mekansal Otokorelasyon: Moran's I yazımıza bakabilirsiniz.

6. Komşuluk Matrisi Türleri

Gi* (ve genel olarak tüm mekansal istatistikler) bir komşuluk ağırlık matrisi (spatial weights matrix) gerektirir; bu matris "hangi birimler birbirinin komşusu sayılır" sorusunu tanımlar. En yaygın üç yaklaşım:

TürTanımNe Zaman Uygun
Distance BandBelirli bir mesafe (d) içindeki tüm birimler komşu sayılırNokta verisi (suç, kaza), eşit yayılımlı çalışma alanları
K-En Yakın Komşu (KNN)Her birim için en yakın k birim komşu sayılır (mesafeden bağımsız sabit komşu sayısı)Yoğunluk çok değişken olan veri setleri (şehir merkezi vs kırsal)
Contiguity (Queen/Rook)Sınır paylaşan poligonlar komşu sayılırİdari birim (mahalle, ilçe, il) bazlı poligon verisi

Pratik öneri: Nokta verisi (kaza, suç lokasyonu) için Distance Band veya KNN; poligon verisi (ilçe, mahalle) için Contiguity (Queen) tercih edilir. Komşuluk yoğunluğu şehir merkezinde ve kırsalda çok farklıysa (adaptif komşuluk gerekiyorsa) KNN daha tutarlı sonuç verir.

7. Mesafe Eşiği (Distance Threshold) Seçimi

Gi* analizindeki en kritik parametre komşuluk mesafesi (d)'dir. Bu değer çok küçük seçilirse her birim izole kalır, anlamlı sonuç çıkmaz. Çok büyük seçilirse tüm alan tek bir sıcak noktaya dönüşür. Doğru mesafeyi belirlemek için şu yöntemler kullanılır:

  • Ortalama en yakın komşu mesafesi: Her birimin en yakın komşusuna olan mesafenin ortalaması, başlangıç değeri olarak sıkça kullanılır.
  • Artımlı mekansal otokorelasyon (Incremental Spatial Autocorrelation): Farklı mesafe değerlerinde Global Moran's I hesaplanır; en yüksek z-skoru veren mesafe optimum eşik olarak seçilir. ArcGIS'te bu araç otomatiktir; Python'da manuel hesaplama gerekir.
  • Teorik veya operasyonel mesafe: Polislerin devriye güzergahı (500 m), yürüyüş mesafesi (400 m) veya ambulans yanıt mesafesi (1 km) gibi analize özgü anlamlı değerler kullanılabilir.

8. Çoklu Karşılaştırma Sorunu: FDR Düzeltmesi

Gi* analizinin akademik literatürde sıkça göz ardı edilen ama metodolojik olarak kritik bir yönü vardır: her mekansal birim için ayrı bir istatistiksel test yürütülür. 1.000 birimlik bir veri setinde p<0,05 eşiğiyle test yapıldığında, yalnızca şans eseri yaklaşık 50 birim yanlışlıkla "anlamlı" çıkabilir — bu, istatistikte çoklu karşılaştırma sorunu (multiple testing problem) olarak bilinir ve Tip I hata oranının birikmesine yol açar.

Bu sorunu düzeltmek için False Discovery Rate (FDR) düzeltmesi (Benjamini & Hochberg, 1995) uygulanır: p-değerleri küçükten büyüğe sıralanır ve her birine sıra numarasına bağlı, kademeli olarak daha sıkı bir eşik uygulanır. ArcGIS'in Hot Spot Analysis aracı bu düzeltmeyi varsayılan olarak uygular; bu nedenle ArcGIS çıktısındaki anlamlı birim sayısı, düzeltilmemiş bir Python/PySAL analizine göre genellikle daha azdır.

Akademik titizlik: Python/PySAL ile Gi* hesaplarken FDR düzeltmesi otomatik uygulanmaz — statsmodels.stats.multitest.multipletests ile manuel olarak eklenmelidir (kod örneği Bölüm 9'da). Bu düzeltmeyi atlamak, yayınlarınızda yanlış pozitif sıcak nokta sayısını şişirebilir; metodoloji bölümünde FDR düzeltmesi uygulanıp uygulanmadığını mutlaka belirtin.

9. Python ile Sıcak Nokta Analizi

Python'da PySAL ekosisteminin esda kütüphanesi Gi* analizini destekler:

import geopandas as gpd import libpysal from esda.getisord import G_Local from statsmodels.stats.multitest import multipletests import numpy as np # Veriyi yükle (örn. ilçe başına kaza sayısı) gdf = gpd.read_file("kazalar_ilceler.gpkg") # Mesafe bazlı komşuluk matrisi (1500 m) w = libpysal.weights.DistanceBand.from_dataframe(gdf, threshold=1500, binary=True) w.transform = "r" # Gi* hesapla gi = G_Local(gdf["kaza_sayisi"], w, star=True) gdf["gi_z"] = gi.Zs gdf["gi_p"] = gi.p_sim # ---- FDR (Benjamini-Hochberg) düzeltmesi ---- reddedildi, p_duzeltilmis, _, _ = multipletests(gdf["gi_p"], alpha=0.05, method="fdr_bh") gdf["gi_p_fdr"] = p_duzeltilmis gdf["anlamli_fdr"] = reddedildi # Güven düzeyi sınıflandırması (FDR düzeltilmiş p-değeri ile) def classify_hotspot(z, p_fdr): if p_fdr < 0.01 and z > 0: return "Sıcak Nokta %99" elif p_fdr < 0.05 and z > 0: return "Sıcak Nokta %95" elif p_fdr < 0.10 and z > 0: return "Sıcak Nokta %90" elif p_fdr < 0.01 and z < 0: return "Soğuk Nokta %99" elif p_fdr < 0.05 and z < 0: return "Soğuk Nokta %95" elif p_fdr < 0.10 and z < 0: return "Soğuk Nokta %90" else: return "Anlamsız" gdf["hotspot_sinif"] = gdf.apply(lambda r: classify_hotspot(r.gi_z, r.gi_p_fdr), axis=1) print(gdf["hotspot_sinif"].value_counts())

10. QGIS ile Sıcak Nokta Analizi

QGIS'te Gi* analizi için SAGA sağlayıcısı Processing Toolbox üzerinden kullanılabilir:

İşleme Araçları SAGA Spatial and Geostatistics Getis-Ord G Statistic
Girdi katmanı: analiz edilecek sayısal alanı içeren poligon/nokta katmanı
Komşuluk mesafesi ve ilgili alanı seçin
Çalıştır
Çıktı katmanı: z-skoru alanı
Katman Özellikleri Semboloji Dereceli (Graduated)
Sınıf aralıkları: Bölüm 4'teki z-skoru tablosuna göre manuel girin
Renk skalası: Kırmızı (sıcak) ↔ Gri (anlamsız) ↔ Mavi (soğuk)

11. Sonuçların Görselleştirilmesi

Sıcak nokta haritalarının okunabilirliği, doğru semboloji seçimine bağlıdır. Standart yaklaşım, yedi sınıflı (3 sıcak + anlamsız + 3 soğuk) kırmızı-gri-mavi diverjan renk skalasıdır (bkz. Şekil 1). Ek olarak:

  • Lejant netliği: Her sınıfın güven düzeyini (%90/%95/%99) lejantta açıkça belirtin — yalnızca "sıcak/soğuk" etiketi yeterli değildir.
  • Baskı/rapor haritalarında: Kullanılan mesafe eşiğini ve komşuluk matrisi türünü harita altbilgisinde (footer) belirtmek, sonucun tekrarlanabilirliğini sağlar.
  • Web haritası olarak paylaşım: QGIS2Web ile interaktif bir sıcak nokta haritası üretilebilir — bkz. QGIS Plugins: QGIS2Web Nedir?.

12. Uygulama Alanları

  • Suç analizi ve önleme: Devriye güzergahlarını ve polis karakollarının konumunu yüksek yoğunluklu bölgelere göre optimize etmek; "sıcak nokta polisliği" (hot spot policing) stratejilerinin temelini oluşturur.
  • Trafik güvenliği: Kaza yoğun kavşakları tespit ederek öncelikli altyapı yatırım noktalarını belirlemek.
  • Halk sağlığı: Bulaşıcı hastalık vakalarının kümelendiği bölgeleri erken tespit etmek — Kulldorff'un mekansal tarama istatistiği ile birlikte sıkça kullanılır.
  • Ticari analiz: Rakip işletmelerin veya müşteri yoğunluğunun kümelendiği alanları tespit ederek yeni şube/mağaza konumu seçimi.
  • Çevre izleme: Hava kalitesi, gürültü veya atık yoğunluğu açısından kritik bölgeleri belirlemek.
  • Afet/risk yönetimi: Deprem, heyelan veya sel hasarının kümelendiği bölgeleri belirlemek — bkz. Deprem Sonrası Hasar Tespiti.

13. Doğrulama ve Duyarlılık Analizi

Bir sıcak nokta haritasının sağlamlığını test etmek için:

  • Mesafe eşiğine duyarlılık: Analizi 2-3 farklı mesafe eşiğiyle (örn. 1 km, 1.5 km, 2 km) tekrarlayıp sıcak nokta konumlarının ne kadar tutarlı kaldığını kontrol edin.
  • FDR düzeltmesi öncesi/sonrası karşılaştırma: Düzeltme uygulanmadan önce "anlamlı" görünen kaç birimin düzeltme sonrası anlamsız hale geldiğini raporlayın.
  • Zamansal tutarlılık: Mümkünse aynı analiz farklı zaman dilimlerinde (örn. yıllık) tekrarlanarak sıcak noktaların kalıcı mı yoksa geçici mi olduğu değerlendirilir.

14. Yaygın Hatalar

  • FDR düzeltmesini atlamak: Özellikle çok sayıda birim içeren analizlerde, düzeltilmemiş p-değerleriyle sıcak nokta sayısını abartmak.
  • Mesafe eşiğini gerekçesiz seçmek: "Varsayılan" bir değeri sorgusuzca kullanmak yerine artımlı mekansal otokorelasyon veya operasyonel mantıkla eşiği gerekçelendirin.
  • KDE ile Gi*'yi karıştırmak: Bir yoğunluk haritasını "istatistiksel olarak anlamlı sıcak nokta haritası" gibi sunmak — KDE anlamlılık testi içermez.
  • Az sayıda birimle Gi* çalıştırmak: Çok az birim (örn. <30) içeren veri setlerinde z-skorları güvenilir olmayabilir; asimptotik varsayımlar ihlal edilir.
  • Farklı komşuluk matrisi türlerini karşılaştırmadan tek bir sonuca güvenmek: Distance Band, KNN ve Contiguity farklı sonuçlar verebilir; en az iki yöntemle duyarlılık kontrolü yapılması önerilir.

Sıcak Nokta ve Mekansal İstatistik Analizi İçin Uzman Desteği

Gi* analizi, LISA haritaları, FDR düzeltmesi ve mekansal kümeleme çalışmaları için profesyonel destek alın.

Mekansal analiz için uzman desteği alın

Kaynaklar

  • Getis, A., & Ord, J. K. (1992). The analysis of spatial association by use of distance statistics. Geographical Analysis, 24(3), 189–206.
  • Ord, J. K., & Getis, A. (1995). Local spatial autocorrelation statistics: distributional issues and an application. Geographical Analysis, 27(4), 286–306.
  • Benjamini, Y., & Hochberg, Y. (1995). Controlling the False Discovery Rate. Journal of the Royal Statistical Society, Series B, 57(1), 289–300.
  • Tobler, W. R. (1970). A Computer Movie Simulating Urban Growth in the Detroit Region. Economic Geography, 46(sup1), 234–240.
  • Mitchell, A. (2005). The ESRI Guide to GIS Analysis, Vol. 2: Spatial Measurements and Statistics. ESRI Press.