Algoritma heatmap untuk memvisualisasikan keragaman titik

18

Adakah yang bisa menyarankan algoritma untuk menghasilkan peta panas untuk memvisualisasikan keragaman titik? Contoh aplikasi adalah untuk memetakan area dengan keanekaragaman spesies yang tinggi. Untuk beberapa spesies, setiap tanaman tunggal telah dipetakan, menghasilkan jumlah poin yang tinggi, tetapi dengan makna yang sangat sedikit dalam hal keragaman area. Daerah lain benar-benar memiliki keanekaragaman yang tinggi.

Pertimbangkan input data berikut:

x    y      cat
0.8  8.1    B
1.1  8.9    A
1.6  7.7    C
2.2  8.2    D
7.5  0.9    A
7.5  1.2    A
8.1  1.5    A
8.7  0.3    A
1.9  2.1    B
4.5  7.0    C
3.8  4.0    D
6.6  4.8    A
6.2  2.4    B
2.2  9.1    B
1.7  4.7    C
7.5  7.3    D
9.2  1.2    A

dan peta yang dihasilkan:

plot grid

Di kuadran kiri atas, ada tambalan yang sangat beragam, sedangkan di kuadran kanan bawah, ada area dengan konsentrasi titik tinggi, tetapi keragaman rendah. Dua cara untuk memvisualisasikan keragaman bisa dengan menggunakan peta panas tradisional, atau untuk menghitung jumlah kategori yang diwakili dalam setiap poligon. Seperti yang ditunjukkan gambar berikut, pendekatan ini memiliki penggunaan terbatas, karena peta panas menunjukkan intensitas terbesar di kanan bawah, sedangkan pendekatan binning akan terlihat persis sama jika hanya ada satu kategori (ini dapat diatasi dengan meningkatkan ukuran nampan poligon, tetapi hasilnya menjadi butiran yang tidak perlu).

peta panas masukkan deskripsi gambar di sini

Salah satu pendekatan yang saya pikir untuk melakukan ini adalah untuk prima algoritma peta panas tradisional dengan jumlah poin dari berbagai kategori dalam radius yang ditentukan, dan kemudian menggunakan hitungan itu sebagai bobot untuk titik ketika menghasilkan peta panas. Namun, saya pikir ini mungkin rentan terhadap artefak yang tidak diinginkan, seperti penguatan timbal balik yang mengarah ke hasil yang sangat tajam. Juga, titik-titik yang dipetakan dari jenis yang sama akan terus muncul sebagai konsentrasi tinggi, hanya saja tidak pada tingkat yang sama.

Pendekatan lain (mungkin lebih baik tetapi lebih mahal secara komputasi) adalah:

  1. Hitung jumlah total kategori dalam dataset
  2. Untuk setiap piksel dalam gambar output:
    • Untuk setiap kategori:
      • menghitung jarak ke titik representatif terdekat (r) [mungkin dibatasi oleh beberapa radius di luar yang pengaruhnya dapat diabaikan]
      • tambahkan bobot yang proporsional dengan 1 / r 2

Apakah sudah ada algoritma yang tidak saya sadari untuk melakukan ini, atau cara lain untuk memvisualisasikan keragaman?

Edit

Mengikuti saran Tomislav Muic, saya telah menghitung heatmap untuk setiap kategori, dan menormalkannya menggunakan rumus berikut (kalkulator raster QGIS):

((heatmap_A@1 >= 1) + (heatmap_A@1 < 1) * heatmap_A@1) +
((heatmap_B@1 >= 1) + (heatmap_B@1 < 1) * heatmap_B@1) +
((heatmap_C@1 >= 1) + (heatmap_C@1 < 1) * heatmap_C@1) +
((heatmap_D@1 >= 1) + (heatmap_D@1 < 1) * heatmap_D@1)

dengan hasil berikut (komentar di bawah jawabannya): jumlah dinormalisasi

rudivonstaden
sumber
1
Pendekatan kedua Anda terlihat Ok, ini sebagian besar masalah statistik, jadi saya akan mulai melihat rutin R yang sesuai di CRAN . Akan bereksperimen dengan ukuran kisi yang berbeda, dan mencari ukuran 'resmi' keanekaragaman hayati untuk menghindari penemuan kembali roda.
Deer Hunter

Jawaban:

4

Coba buat peta panas untuk setiap kategori yang terpisah.

Kemudian jumlah heatmap dan menormalkannya menggunakan sejumlah kategori.

Ini mungkin perlu ditelusuri.

Tomislav Muic
sumber
Saya telah menambahkan visualisasi ke pertanyaan saya berdasarkan saran ini, dan hasilnya terlihat bagus! Kerugiannya adalah jika Anda berurusan dengan ratusan atau ribuan kategori, menyimpan semua raster akan menjadi masalah.
rudivonstaden
Kalau dipikir-pikir, itu tidak akan menjadi masalah jika Anda menambahkan setiap peta panas baru ke peta panas komposit setelah setiap kategori. Pertanyaannya adalah kemudian pendekatan mana yang secara komputasi akan lebih cepat diimplementasikan - jumlah raster atau perhitungan piksel per piksel.
rudivonstaden
Saya khawatir jawaban ini tidak ada hubungannya dengan keberagaman. Dalam jumlah yang dihasilkan (dan normalisasi) area yang sangat padat dengan banyak kelompok akan terlihat sama dengan area yang tidak sepadat tetapi dengan satu grup.
Andy W