---
title: "taxdiv Paketi Kullanim Rehberi (Turkce)"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{taxdiv Paketi Kullanim Rehberi (Turkce)}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width = 8,
  fig.height = 5
)
```

## Bu Paket Ne Ise Yarar?

**taxdiv** paketi, ekolojik topluluklarda **taksonomik cesitliligi** hesaplamak
icin yazilmis bir R paketidir.

Klasik cesitlilik indeksleri (Shannon, Simpson) sadece tur bolluklarini dikkate
alir. Ancak iki toplulukta ayni sayida tur olsa bile, birinde tum turler ayni
familyadan, digerinde farkli takimlardan olabilir. Taksonomik cesitlilik
indeksleri bu farki yakalayabilir.

Pakette uc ana yaklasim vardir:

1. **Klasik indeksler**: Shannon ve Simpson
2. **Clarke & Warwick taksonomik ayirt edicilik**: Delta, Delta*, AvTD, VarTD
3. **Ozkan (2018) Deng entropisi tabanli**: pTO (uTO, TO, uTO+, TO+)

```{r setup}
library(taxdiv)
```

## Ornek Veri: Akdeniz Ormani Toplulugu

Orneklerimizde 10 turlu hayali bir Akdeniz ormani toplulugu kullanacagiz.
Her turun **bolluk degeri** (birey sayisi) ve **7 taksonomik seviyesi** vardir.

```{r veri}
# Tur bolluklari (ornek alanindaki birey sayisi)
topluluk <- c(
  Quercus_coccifera    = 25,
  Quercus_infectoria   = 18,
  Pinus_brutia         = 30,
  Pinus_nigra          = 12,
  Juniperus_excelsa    = 8,
  Juniperus_oxycedrus  = 5,
  Cedrus_libani        = 15,
  Abies_cilicica       = 7,
  Fagus_orientalis     = 20,
  Carpinus_betulus      = 10
)

# Taksonomik hiyerarsi (7 seviye: Tur, Cins, Familya, Takim, Sinif, Bolum, Alem)
agac <- build_tax_tree(
  species = names(topluluk),
  Genus   = c("Quercus", "Quercus", "Pinus", "Pinus",
              "Juniperus", "Juniperus", "Cedrus", "Abies",
              "Fagus", "Carpinus"),
  Family  = c("Fagaceae", "Fagaceae", "Pinaceae", "Pinaceae",
              "Cupressaceae", "Cupressaceae", "Pinaceae", "Pinaceae",
              "Fagaceae", "Betulaceae"),
  Order   = c("Fagales", "Fagales", "Pinales", "Pinales",
              "Pinales", "Pinales", "Pinales", "Pinales",
              "Fagales", "Fagales"),
  Class   = c("Magnoliopsida", "Magnoliopsida", "Pinopsida", "Pinopsida",
              "Pinopsida", "Pinopsida", "Pinopsida", "Pinopsida",
              "Magnoliopsida", "Magnoliopsida"),
  Phylum  = c("Magnoliophyta", "Magnoliophyta", "Pinophyta", "Pinophyta",
              "Pinophyta", "Pinophyta", "Pinophyta", "Pinophyta",
              "Magnoliophyta", "Magnoliophyta"),
  Kingdom = c("Plantae", "Plantae", "Plantae", "Plantae",
              "Plantae", "Plantae", "Plantae", "Plantae",
              "Plantae", "Plantae")
)

agac
```

`build_tax_tree()` fonksiyonu turleri ve taksonomik seviyelerini bir data frame
olarak dondurur. Ilk sutun tur isimleri, sonrakiler en dusukten en yuksege
sirali taksonomik ranklar (Cins -> Familya -> Takim -> Sinif -> Bolum -> Alem).

## Adim 1: Klasik Cesitlilik Indeksleri

Shannon ve Simpson indeksleri **sadece tur bolluklarini** kullanir.
Taksonomik yapiyi dikkate almazlar.

```{r klasik}
# Shannon cesitliligi (dogal logaritma)
H <- shannon(topluluk)
cat("Shannon H':", round(H, 4), "\n")

# Simpson indeksleri
D <- simpson(topluluk, type = "dominance")       # Baskinlik
GS <- simpson(topluluk, type = "gini_simpson")    # 1 - D
inv_D <- simpson(topluluk, type = "inverse")      # 1 / D

cat("Simpson baskinlik (D):", round(D, 4), "\n")
cat("Gini-Simpson (1-D):", round(GS, 4), "\n")
cat("Ters Simpson (1/D):", round(inv_D, 4), "\n")
```

**Yorum**: Shannon degeri ne kadar yuksekse topluluk o kadar cesitlidir.
Simpson baskinlik degeri ne kadar dusukse o kadar iyi dagilim vardir.

Shannon ve Simpson icin `correction = "chao_shen"` parametresiyle Chao & Shen
(2003) yanliliksiz tahminci kullanilabilir:

```{r duzeltme}
H_duz <- shannon(topluluk, correction = "chao_shen")
cat("Shannon (Chao-Shen duzeltmeli):", round(H_duz, 4), "\n")
cat("Shannon (duzeltmesiz):         ", round(H, 4), "\n")
```

## Adim 2: Taksonomik Mesafe Matrisi

Taksonomik cesitliligi hesaplamadan once turler arasi **taksonomik mesafeyi**
hesaplamamiz gerekir. Bu mesafe, iki turun taksonomik hiyerarsideki
ilk ortak atalarinin seviyesine gore belirlenir.

```{r mesafe}
mesafe <- tax_distance_matrix(agac)
round(mesafe, 1)
```

**Nasil okunur:**

- **0** = Ayni tur (kosegen)
- **1** = Ayni cins, farkli tur (ornegin Pinus brutia - Pinus nigra)
- **2** = Ayni familya, farkli cins (ornegin Pinus - Cedrus, ikisi de Pinaceae)
- **3** = Ayni takim, farkli familya (ornegin Pinaceae - Cupressaceae, ikisi de Pinales)
- **6** = Farkli sinif (Magnoliopsida vs Pinopsida — en uzak mesafe)

## Adim 3: Clarke & Warwick Taksonomik Ayirt Edicilik

Clarke & Warwick (1998) dort farkli olcu onerir:

```{r cw}
# Delta: Taksonomik cesitlilik (bolluk agirlikli)
d <- delta(topluluk, agac)
cat("Delta (taksonomik cesitlilik):", round(d, 4), "\n")

# Delta*: Taksonomik ayirt edicilik (bolluk agirlikli, ayni tur ciftleri haric)
ds <- delta_star(topluluk, agac)
cat("Delta* (taksonomik ayirt edicilik):", round(ds, 4), "\n")

# AvTD (Delta+): Ortalama taksonomik ayirt edicilik (sadece tur listesi, bolluk onemsiz)
turler <- names(topluluk)
avg_td <- avtd(turler, agac)
cat("AvTD (Delta+):", round(avg_td, 4), "\n")

# VarTD (Lambda+): Taksonomik ayirt edicilik varyasyonu
var_td <- vartd(turler, agac)
cat("VarTD (Lambda+):", round(var_td, 4), "\n")
```

**Onemli fark:**

- **Delta ve Delta***: Bolluga bagimli — tur sayilari onemli
- **AvTD ve VarTD**: Bolluktan bagimsiz — sadece turlerin var/yok bilgisini kullanir

## Adim 4: Deng Entropisi ve Ozkan pTO (Islem 1)

Deng (2016) entropisi, Shannon entropisinin Dempster-Shafer kanit teorisi
uzerinden genellenmis halidir. Her taksonomik seviyede gruplarin tur
sayisini (fokal eleman boyutu) dikkate alir.

Ozkan (2018) Deng entropisini kullanarak dort olcu tanimlar:

- **uTO**: Agirliksiz taksonomik cesitlilik
- **TO**: Agirlikli taksonomik cesitlilik (seviye agirliklari ile)
- **uTO+**: Agirliksiz taksonomik uzaklik (sadece tur listesi)
- **TO+**: Agirlikli taksonomik uzaklik

```{r pto}
sonuc <- ozkan_pto(topluluk, agac)

cat("uTO  (agirliksiz cesitlilik):", round(sonuc$uTO, 4), "\n")
cat("TO   (agirlikli cesitlilik):", round(sonuc$TO, 4), "\n")
cat("uTO+ (agirliksiz uzaklik):", round(sonuc$uTO_plus, 4), "\n")
cat("TO+  (agirlikli uzaklik):", round(sonuc$TO_plus, 4), "\n")
```

Her taksonomik seviyedeki Deng entropisi degerleri:

```{r ed_seviyeleri}
cat("Taksonomik seviye bazinda Deng entropisi:\n")
for (i in seq_along(sonuc$Ed_levels)) {
  cat("  ", names(sonuc$Ed_levels)[i], ":",
      round(sonuc$Ed_levels[i], 4), "\n")
}
```

### max_level parametresi

`ozkan_pto()` fonksiyonunda `max_level` parametresi ile hesaplamada
kullanilacak maksimum taksonomik seviye sinirlanabilir. Varsayilan `NULL`
tum seviyeleri kullanir. `"auto"` bilgi icermeyen seviyeleri otomatik eler:

```{r max_level}
# Tum seviyeler (varsayilan)
r_full <- ozkan_pto(topluluk, agac, max_level = NULL)
cat("Tum seviyeler: uTO =", round(r_full$uTO, 4),
    " TO =", round(r_full$TO, 4), "\n")

# Otomatik seviye secimi
r_auto <- ozkan_pto(topluluk, agac, max_level = "auto")
cat("Auto seviye:   uTO =", round(r_auto$uTO, 4),
    " TO =", round(r_auto$TO, 4), "\n")
cat("Bilgilendirici seviye:", r_auto$max_informative_level, "\n")

# Sadece ilk 3 seviye
r_3 <- ozkan_pto(topluluk, agac, max_level = 3)
cat("Ilk 3 seviye:  uTO =", round(r_3$uTO, 4),
    " TO =", round(r_3$TO, 4), "\n")
```

### 8 Bilesenli Cikti

`max_level` kullanildiginda `ozkan_pto()` hem standart hem max_level
degerlerini dondurur:

```{r sekiz_bilesen}
sonuc8 <- ozkan_pto(topluluk, agac, max_level = "auto")
cat("Standart:  uTO =", round(sonuc8$uTO, 4),
    " TO =", round(sonuc8$TO, 4), "\n")
cat("Max-level: uTO_max =", round(sonuc8$uTO_max, 4),
    " TO_max =", round(sonuc8$TO_max, 4), "\n")
cat("Bilgilendirici seviye sayisi:", sonuc8$max_informative_level, "\n")
```

`pto_components()` ile tek satirda alabilirsiniz:

```{r bilesenler}
pto_components(topluluk, agac)
```

## Adim 5: Stokastik Yeniden Ornekleme (Islem 2 / Run 2)

Islem 1 tum turleri oldugu gibi kullanir. Peki topluluk yapisini degistirirsek
cesitlilik nasil etkilenir?

**Islem 2** bunu test eder: Her turde %50 olasilikla dahil/haric birakarak
rastgele alt topluluklar olusturur. Birden fazla iterasyon yapilir ve
**maksimum** pTO degeri alinir.

```{r islem2}
islem2 <- ozkan_pto_resample(topluluk, agac, n_iter = 101, seed = 42)

cat("=== Islem 1 (deterministik) ===\n")
cat("uTO+:", round(islem2$uTO_plus_det, 4), "\n")
cat("TO+: ", round(islem2$TO_plus_det, 4), "\n")
cat("uTO: ", round(islem2$uTO_det, 4), "\n")
cat("TO:  ", round(islem2$TO_det, 4), "\n\n")

cat("=== Islem 2 (maksimum,", islem2$n_iter, "iterasyon) ===\n")
cat("uTO+:", round(islem2$uTO_plus_max, 4), "\n")
cat("TO+: ", round(islem2$TO_plus_max, 4), "\n")
cat("uTO: ", round(islem2$uTO_max, 4), "\n")
cat("TO:  ", round(islem2$TO_max, 4), "\n")
```

Islem 2 degerleri her zaman Islem 1'e esit veya buyuktur, cunku
deterministik hesaplama ilk iterasyon olarak dahil edilir.

## Adim 6: Duyarlilik Analizi (Islem 3 / Run 3)

Islem 3, Islem 2 sonuclarina gore **tur bazli dahil etme olasiliklari**
hesaplar. Cesitlilige daha cok katki saglayan turler farkli olasilikla
dahil edilir.

```{r islem3}
islem3 <- ozkan_pto_sensitivity(topluluk, agac, islem2, seed = 123)

cat("=== Islem 3 (duyarlilik analizi) ===\n")
cat("Islem 3 max uTO+:", round(islem3$run3_uTO_plus_max, 4), "\n")
cat("Islem 3 max TO+: ", round(islem3$run3_TO_plus_max, 4), "\n\n")

cat("=== Genel maksimum (Islem 1 + 2 + 3) ===\n")
cat("uTO+:", round(islem3$uTO_plus_max, 4), "\n")
cat("TO+: ", round(islem3$TO_plus_max, 4), "\n")
cat("uTO: ", round(islem3$uTO_max, 4), "\n")
cat("TO:  ", round(islem3$TO_max, 4), "\n")
```

### Tur Dahil Etme Olasiliklari

Her turun Islem 3'te dahil edilme olasiligi:

```{r olasiliklar}
olasiliklar <- islem3$species_probs
veri_cercevesi <- data.frame(
  Tur = names(olasiliklar),
  Olasilik = round(olasiliklar, 4)
)
print(veri_cercevesi, row.names = FALSE)
```

## Adim 7: Tam Pipeline (ozkan_pto_full)

`ozkan_pto_full()` fonksiyonu uc islemi tek satirda calistirir:

```{r full_pipeline}
tam <- ozkan_pto_full(topluluk, agac, n_iter = 101, seed = 42)

cat("Pipeline: Islem 1 -> Islem 2 -> Islem 3\n\n")
cat("          uTO+      TO+       uTO       TO\n")
cat("Islem 1:", sprintf("%9.4f %9.4f %9.4f %9.4f",
    tam$run1$uTO_plus, tam$run1$TO_plus,
    tam$run1$uTO, tam$run1$TO), "\n")
cat("Islem 2:", sprintf("%9.4f %9.4f %9.4f %9.4f",
    tam$run2$uTO_plus_max, tam$run2$TO_plus_max,
    tam$run2$uTO_max, tam$run2$TO_max), "\n")
cat("Islem 3:", sprintf("%9.4f %9.4f %9.4f %9.4f",
    tam$run3$uTO_plus_max, tam$run3$TO_plus_max,
    tam$run3$uTO_max, tam$run3$TO_max), "\n")
```

Her asama bir oncekine esit veya daha buyuk deger uretir.

## Adim 8: Jackknife Yanliliksiz Tahmin

`ozkan_pto_jackknife()` birer birer tur cikararak (leave-one-out)
yanliliksiz pTO tahmini hesaplar:

```{r jackknife}
jk <- ozkan_pto_jackknife(topluluk, agac)

cat("Tam sonuc uTO+:", round(jk$full_result$uTO_plus, 4), "\n")
cat("Tam sonuc TO+: ", round(jk$full_result$TO_plus, 4), "\n")
cat("Mutlu turler:  ", jk$n_happy, "/", jk$n_happy + jk$n_unhappy, "\n\n")

# Her turun cikarildiginda sonuc nasil degisiyor?
head(jk$jackknife_results)
```

## Adim 9: Toplu Analiz (batch_analysis)

Birden fazla ornek alani ayni anda analiz etmek icin `batch_analysis()`
kullanilir. Her ornek alan icin tur sayisi ve 14 cesitlilik indeksini
otomatik hesaplar:

```{r batch}
# Coklu ornek alan verisi
veri <- data.frame(
  Site = rep(c("Alan_A", "Alan_B"), each = 5),
  Species = rep(c("Pinus_brutia", "Pinus_nigra", "Quercus_coccifera",
                  "Juniperus_excelsa", "Cedrus_libani"), 2),
  Abundance = c(30, 12, 25, 8, 15, 5, 40, 10, 3, 2),
  Genus = rep(c("Pinus", "Pinus", "Quercus", "Juniperus", "Cedrus"), 2),
  Family = rep(c("Pinaceae", "Pinaceae", "Fagaceae",
                 "Cupressaceae", "Pinaceae"), 2),
  Order = rep(c("Pinales", "Pinales", "Fagales", "Pinales", "Pinales"), 2)
)

sonuc_batch <- batch_analysis(veri)
print(sonuc_batch)
```

Cikti 16 sutundan olusur: Site, N_Species ve 14 cesitlilik indeksi.

## Adim 10: Rarefaction (Seyreltme)

Rarefaction, farkli orneklem buyukluklerinin cesitlilik tahminleri
uzerindeki etkisini degerlendirir. Egri duzlestiyse orneklemeniz
yeterlidir:

```{r rarefaction}
rare <- rarefaction_taxonomic(topluluk, agac,
                               index = "shannon",
                               steps = 10, n_boot = 100, seed = 42)
cat("Rarefaction sonuclari (Shannon):\n")
print(round(rare, 4))
```

## Adim 11: Simuelasyon ve Huni Grafigi (Funnel Plot)

`simulate_td()` ile belirli bir tur havuzundan rastgele topluluklar
olusturarak beklenen indeks dagilimini hesaplayabilirsiniz. Bu dagilim
huni grafigi ile gorsellestirilerek gercek toplulugun beklenen aralikta
olup olmadigi degerlendirilir:

```{r simulasyon}
sim <- simulate_td(agac, n_sim = 100, seed = 42)
summary(sim)
```

## Gorsellestime

taxdiv paketi ggplot2 tabanli yedi ozel gorsellestirme fonksiyonu sunar.
Her biri farkli bir analitik soruya cevap verir.

### Taksonomik Agac (Dendogram)

Turlerin taksonomik yakinligini dendogram olarak gosterir:

```{r dendogram, fig.width=9, fig.height=5.5, fig.alt="Akdeniz ormani turlerinin familya bazinda taksonomik agac dendogrami"}
plot_taxonomic_tree(agac, community = topluluk,
                    color_by = "Family", label_size = 3.5,
                    title = "Akdeniz Ormani - Familya Bazinda")
```

**Nasil okunur:** Ayni daldan cikan turler taksonomik olarak yakindir. Parantez
icindeki sayilar bolluk degerleridir. Renkler familyalari gosterir. Uzun
dallar daha buyuk taksonomik mesafeyi temsil eder.

### Taksonomik Mesafe Isi Haritasi (Heatmap)

Turler arasi mesafe matrisini renkli olarak gosterir:

```{r heatmap, fig.width=9, fig.height=8, fig.alt="Turler arasi taksonomik mesafeleri gosteren isi haritasi"}
plot_heatmap(agac, label_size = 2.8,
             title = "Taksonomik Mesafe Isi Haritasi")
```

**Nasil okunur:** Koyu kirmizi = uzak turler, beyaz = yakin turler.
Her hucredeki sayi taksonomik mesafe degerini gosterir. Kosegen her zaman
sifirdir.

### Indeks Karsilastirma (Bar Plot)

Birden fazla toplulugu tum indeksler uzerinden karsilastirir. Ikinci bir
topluluk olusturuyoruz: ayni turler ama bir tur baskin:

```{r karsilastirma_veri}
# Baskin topluluk: ayni turler, farkli bolluk dagilimi
baskin_topluluk <- c(
  Quercus_coccifera   = 80, Quercus_infectoria  = 5,
  Pinus_brutia        = 3,  Pinus_nigra         = 2,
  Juniperus_excelsa   = 2,  Juniperus_oxycedrus = 1,
  Cedrus_libani       = 3,  Abies_cilicica      = 1,
  Fagus_orientalis    = 2,  Carpinus_betulus     = 1
)

topluluklar <- list(
  Cesitli = topluluk,
  Baskin  = baskin_topluluk
)
```

```{r karsilastirma, fig.width=10, fig.height=6, fig.alt="Cesitli ve baskin topluluklar icin 14 cesitlilik indeksinin cubuk grafigi karsilastirmasi"}
sonuc_plot <- compare_indices(topluluklar, agac, plot = TRUE)
sonuc_plot$plot
```

**Nasil okunur:** Bolluga bagimli indeksler (Shannon, Simpson, Delta, TO)
iki topluluk arasinda belirgin farklilik gosterir. Bolluktan bagimsiz
indeksler (AvTD, VarTD, uTO+, TO+) aynidir cunku iki toplulukta da ayni
turler vardir — sadece bolluk dagilimi farklidir. Bu, her iki olcu
turununun neden birlikte gerekli oldugunu gosterir.

Tablo ciktisi:

```{r tablo}
sonuc_plot$table
```

### Islem 2 Iterasyon Grafigi

Her iterasyondaki pTO degerlerini gosterir:

```{r iterasyon, fig.width=9, fig.height=5, fig.alt="Islem 2 stokastik yeniden orneklemedeki TO degerlerinin iterasyon grafigi"}
plot_iteration(islem2, component = "TO",
               title = "Islem 2 - TO Degerleri")
```

**Nasil okunur:**

- **Gri noktalar**: Her iterasyondaki deger (rastgele tur alt kumesi)
- **Kirmizi cizgi**: Deterministik (Islem 1) degeri
- **Mavi cizgi**: Tum iterasyonlar arasindaki maksimum

Dusuk noktalar = az tur dahil edildigi durumlar. Kirmizi cizginin ustundeki
noktalar, bazi turlerin cikarilmasinin cesitliligi artirdigini gosterir.

### Tur Katki Baloncuk Grafigi (Bubble Chart)

Her turun topluluk cesitliligine katkisini gosterir:

```{r balon, fig.width=10, fig.height=7, fig.alt="Her turun cesitlilige katkisini gosteren familya bazinda balon grafigi"}
plot_bubble(topluluk, agac, color_by = "Family",
            title = "Tur Katkilari - Familya Bazinda")
```

**Nasil okunur:**

- **X ekseni**: Bolluk (birey sayisi)
- **Y ekseni**: Ortalama taksonomik mesafe (diger turlere uzaklik)
- **Balon boyutu**: Katki orani (bolluk x mesafe)
- Sag ust koseteki turler cesitlilige en cok katki saglar (hem bol hem uzak)

### Radar Grafigi (Spider Chart)

Birden fazla toplulugu tum indeksler uzerinden radar seklinde karsilastirir:

```{r radar, fig.width=8, fig.height=8, fig.alt="Cesitli ve baskin topluluklar icin normalize edilmis indeks degerlerinin radar grafigi"}
plot_radar(topluluklar, agac,
           title = "Cesitli vs Baskin - Radar Karsilastirmasi")
```

**Nasil okunur:** Her eksen bir indeksi temsil eder. Degerler 0-1 arasinda
normalize edilmistir. Buyuk alan = yuksek cesitlilik. Iki poligonun bolluk
bagimsiz indekslerde ustuste binip bolluk bagimli indekslerde ayrilmasi,
ayni tur havuzunun farkli dagilimlarini dogrular.

### Seyreltme Egrisi (Rarefaction Curve)

Cesitlilik tahminlerinin orneklem buyuklugune gore degisimini gosterir:

```{r rarefaction_plot, fig.width=8, fig.height=5, fig.alt="Shannon indeksi icin orneklem buyuklugune karsi seyreltme egrisi"}
plot_rarefaction(rare)
```

**Nasil okunur:** X ekseni orneklenen birey sayisi, Y ekseni tahmini
cesitlilik indeksidir. Golgelenmis bant %95 bootstrap guven araligini
gosterir. Egri duzlestiyse orneklemeniz yeterlidir. Sag kenardaki dik
egri daha fazla ornekleme gerektigini gosterir.

### Huni Grafigi (Funnel Plot)

Gercek toplulugu simule edilmis beklenen aralikla karsilastirir:

```{r huni, fig.width=9, fig.height=6, fig.alt="AvTD icin beklenen aralik ve gercek deger gosteren huni grafigi"}
plot_funnel(sim, observed = data.frame(
              site  = "Akdeniz Ormani",
              s     = length(topluluk),
              value = avg_td),
            index = "avtd",
            title = "AvTD - Huni Grafigi")
```

**Nasil okunur:** Gri bant beklenen aralik, kirmizi nokta gercek degerdir.
Bant icinde ise topluluk beklenen cesitlilik araligindadir. Bantin disinda
ise cesitlilik beklenenden onemli olcude farklidir.

## Matematiksel Arka Plan

Bu bolum, paketteki indekslerin matematiksel formullerini ve birbirleriyle
iliskilerini aciklar. Tez veya makale yazarken bu formullere ihtiyaciniz
olacaktir.

### Shannon Entropisi

Shannon (1948), bir sistemdeki **belirsizligi** olcmek icin su formulu
onermistir:

$$H' = -\sum_{i=1}^{S} p_i \ln(p_i)$$

- $S$ = toplam tur sayisi
- $p_i$ = $i$. turun oransal bollugu ($n_i / N$)
- $N$ = toplam birey sayisi

Shannon entropisi her turu **bireysel bir olay** olarak ele alir. Turler
arasindaki akrabalik iliskilerini gormez.

### Simpson Indeksi

Simpson (1949), rastgele secilen iki bireyin **ayni turden** olma
olasiligini olcer:

$$D = \sum_{i=1}^{S} p_i^2$$

Genellikle Gini-Simpson formu kullanilir:

$$1 - D = 1 - \sum_{i=1}^{S} p_i^2$$

Simpson, baskin turlere daha duyarlidir. Shannon ise nadir turlere
daha fazla agirlik verir.

### Clarke & Warwick: Taksonomik Ayirt Edicilik

Clarke & Warwick (1998) taksonomik hiyerarsiyi hesaba katan dort indeks
tanimlamistir:

**Delta (Taksonomik cesitlilik, bolluk agirlikli):**

$$\Delta = \frac{\sum \sum_{i<j} \omega_{ij} \cdot n_i \cdot n_j}
{N(N-1)/2}$$

**Delta+ (AvTD, sadece tur listesi):**

$$\Delta^+ = \frac{\sum \sum_{i<j} \omega_{ij}}{S(S-1)/2}$$

**Lambda+ (VarTD, varyasyon):**

$$\Lambda^+ = \frac{\sum \sum_{i<j} (\omega_{ij} - \Delta^+)^2}{S(S-1)/2}$$

Burada $\omega_{ij}$, $i$ ve $j$ turleri arasindaki taksonomik mesafedir.
Bu mesafe, iki turun taksonomik agacta ilk birlestigi seviyeye esittir
(Cins = 1, Familya = 2, ..., Alem = 6).

**Onemli:** $\Delta^+$ ve $\Lambda^+$ bolluk bilgisi kullanmaz. Bu sayede
farkli orneklem buyuklugundeki alanlari dogrudan karsilastirabilirsiniz
(Clarke & Warwick, 1998, 2001).

### Deng Entropisi

Deng (2016), Shannon entropisini Dempster-Shafer kanit teorisi
(Dempster, 1967; Shafer, 1976) cercevesinde genellestirmistir. Temel fark:
Shannon'da her olay (tur) atomiktir. Deng entropisinde olaylar **kume
yapisi** icerebilir.

Bir taksonomik seviyedeki Deng entropisi:

$$E_d = -\sum_{i=1}^{K} m(F_i) \cdot \ln\frac{m(F_i)}{2^{|F_i|} - 1}$$

- $K$ = o seviyedeki grup sayisi (ornegin familya sayisi)
- $m(F_i)$ = $i$. gruptaki turlerin oransal agirligi
- $|F_i|$ = $i$. gruptaki tur sayisi (fokal eleman boyutu)

**Shannon ile karsilastirma:**

Shannon entropisinde $|F_i| = 1$ kabul edilir (her tur tek basina bir olay).
Bu durumda $2^{|F_i|} - 1 = 1$ olur ve Deng entropisi Shannon'a indirgenir:

$$E_d = -\sum_{i=1}^{K} m(F_i) \cdot \ln(m(F_i)) = H'$$

Yani Deng entropisi Shannon'in **genellestirilmis hali**dir. Eger
taksonomik gruplar 1'er turden olusuyorsa ikisi ayni sonucu verir.

### Ozkan pTO Formulu

Ozkan (2018), Deng entropisini kullanarak dort bilesenden olusan bir
taksonomik cesitlilik olcusu tanimlar.

**Temel carpim (bir dilim icin):**

$$\prod_{i=1}^{L} \left( w_i \cdot \left( \frac{(e^{E_d^S})^2}{e^{E_d^i}} + 1 \right) \right)$$

- $L$ = aktif taksonomik seviye sayisi
- $E_d^S$ = tur seviyesindeki Deng entropisi
- $E_d^i$ = $i$. seviyedeki Deng entropisi
- $w_i$ = seviye agirligi (agirliksiz icin $w_i = 1$, agirlikli icin $w_i = i$)

**pTO+ (Taksonomik mesafe, sadece Islem 1):**

$$pT_O^+ = \ln \prod_{i=1}^{L} \left( w_i \cdot \left(
\frac{(e^{E_d^S})^2}{e^{E_d^i}} + 1 \right) \right)$$

Sadece nk = 0 dilimini (tum turler dahil) kullanir. Bolluk bilgisine
ihtiyac duymaz cunku tur listesiyle calisir.

**pTO (Taksonomik cesitlilik, Islem 1 + 2 + 3):**

$$pT_O = \ln \left( \frac{\sum_{k=0}^{n_s} (n_s - n_k)
\prod_{i=1}^{L} \left( w_i \cdot \left( \frac{(e^{E_d^S})^2}
{e^{E_d^i}} + 1 \right) \right)}{n_s + \sum n_k} \right)$$

Dilim proseduru (slicing): nk = 0, 1, ..., n_s icin bollugu $\leq n_k$ olan
turler elenir. Her dilimde hayatta kalan turlerle Deng entropisi
yeniden hesaplanir. Boylece bolluk bilgisi dolayli olarak sisteme girer.

## Adim Adim Hesaplama Ornegi

Bu bolumde 5 turlu kucuk bir toplulugu elle adim adim hesaplayarak
fonksiyonlarin arkasindaki mantigi gosteriyoruz.

### Veri

```{r ornek_veri}
# 5 turlu kucuk bir topluluk
ornek_topluluk <- c(
  Pinus_nigra     = 4,
  Pinus_brutia    = 3,
  Quercus_cerris  = 2,
  Fagus_orientalis = 1,
  Cedrus_libani   = 2
)

ornek_agac <- build_tax_tree(
  species = names(ornek_topluluk),
  Genus   = c("Pinus", "Pinus", "Quercus", "Fagus", "Cedrus"),
  Family  = c("Pinaceae", "Pinaceae", "Fagaceae", "Fagaceae", "Pinaceae"),
  Order   = c("Pinales", "Pinales", "Fagales", "Fagales", "Pinales")
)

cat("Topluluk:\n")
print(ornek_topluluk)
cat("\nTaksonomik agac:\n")
print(ornek_agac)
```

### Adim 1: Shannon

```{r ornek_shannon}
# Toplam birey: 4 + 3 + 2 + 1 + 2 = 12
N <- sum(ornek_topluluk)
cat("Toplam birey (N):", N, "\n\n")

# Oransal bolluklar
p <- ornek_topluluk / N
cat("Oransal bolluklar (p_i):\n")
for (i in seq_along(p)) {
  cat("  ", names(p)[i], ":", round(p[i], 4), "\n")
}

# Shannon: H' = -sum(p * ln(p))
H_elle <- -sum(p * log(p))
H_fonksiyon <- shannon(ornek_topluluk)
cat("\nElle hesaplanan H':", round(H_elle, 4), "\n")
cat("shannon() sonucu:  ", round(H_fonksiyon, 4), "\n")
```

### Adim 2: Taksonomik Mesafe

```{r ornek_mesafe}
# Mesafe matrisi
m <- tax_distance_matrix(ornek_agac)
cat("Taksonomik mesafe matrisi:\n")
print(round(m, 1))
cat("\nOrnek yorumlar:\n")
cat("  Pinus_nigra - Pinus_brutia: Ayni cins -> mesafe = 1\n")
cat("  Pinus_nigra - Cedrus_libani: Ayni familya (Pinaceae) -> mesafe = 2\n")
cat("  Pinus_nigra - Quercus_cerris: Farkli takim (Pinales vs Fagales) -> mesafe = 3\n")
```

### Adim 3: AvTD (Elle)

```{r ornek_avtd}
# AvTD = tum tur ciftleri arasindaki ortalama mesafe
# S = 5, S*(S-1)/2 = 10 cift
S <- length(ornek_topluluk)
cift_sayisi <- S * (S - 1) / 2
cat("Tur sayisi (S):", S, "\n")
cat("Cift sayisi:", cift_sayisi, "\n\n")

# Tum ciftlerin mesafelerini topla
toplam_mesafe <- 0
for (i in 1:(S - 1)) {
  for (j in (i + 1):S) {
    d_ij <- m[i, j]
    cat("  ", rownames(m)[i], "-", colnames(m)[j], ":", d_ij, "\n")
    toplam_mesafe <- toplam_mesafe + d_ij
  }
}

avtd_elle <- toplam_mesafe / cift_sayisi
avtd_fonksiyon <- avtd(names(ornek_topluluk), ornek_agac)
cat("\nToplam mesafe:", toplam_mesafe, "\n")
cat("Elle hesaplanan AvTD:", round(avtd_elle, 4), "\n")
cat("avtd() sonucu:      ", round(avtd_fonksiyon, 4), "\n")
```

### Adim 4: Deng Entropisi (Tur Seviyesinde)

```{r ornek_deng}
# Tur seviyesinde: her tur tek basina bir grup (|F_i| = 1)
# Esit agirlik: m_i = 1/S = 1/5 = 0.2
# Ed = -sum(m_i * ln(m_i / (2^1 - 1))) = -sum(0.2 * ln(0.2)) = ln(5)
Ed_tur <- log(S)
cat("Tur seviyesinde Deng entropisi:\n")
cat("  Ed_species = ln(S) = ln(", S, ") =", round(Ed_tur, 4), "\n")
cat("  (Bu Shannon entropisiyle ayni, cunku |F_i| = 1)\n\n")

# Cins seviyesinde: Pinus(2 tur), Quercus(1), Fagus(1), Cedrus(1)
# 4 grup, esit agirlikli: m_i = grup_tur_sayisi / toplam_tur_sayisi
cat("Cins seviyesinde:\n")
cat("  Pinus: 2 tur, Quercus: 1 tur, Fagus: 1 tur, Cedrus: 1 tur\n")
cat("  m_Pinus = 2/5 = 0.4, |F| = 2\n")
cat("  m_diger = 1/5 = 0.2, |F| = 1\n\n")

# Ed = -(0.4 * ln(0.4 / (2^2 - 1))) - 3*(0.2 * ln(0.2 / (2^1 - 1)))
Ed_cins <- -(0.4 * log(0.4 / (2^2 - 1))) - 3 * (0.2 * log(0.2 / (2^1 - 1)))
cat("  Ed_genus = -(0.4 * ln(0.4/3)) - 3*(0.2 * ln(0.2/1))\n")
cat("           =", round(Ed_cins, 4), "\n")
```

### Adim 5: Ozkan pTO

```{r ornek_pto}
# Fonksiyonla hesapla
pto_sonuc <- ozkan_pto(ornek_topluluk, ornek_agac)

cat("Ozkan pTO sonuclari:\n")
cat("  uTO  =", round(pto_sonuc$uTO, 4), "\n")
cat("  TO   =", round(pto_sonuc$TO, 4), "\n")
cat("  uTO+ =", round(pto_sonuc$uTO_plus, 4), "\n")
cat("  TO+  =", round(pto_sonuc$TO_plus, 4), "\n\n")

cat("Seviye bazinda Deng entropisi:\n")
for (i in seq_along(pto_sonuc$Ed_levels)) {
  cat("  ", names(pto_sonuc$Ed_levels)[i], ":",
      round(pto_sonuc$Ed_levels[i], 4), "\n")
}
```

## Fonksiyon Listesi

### Klasik Indeksler

| Fonksiyon | Ne yapar |
|-----------|----------|
| `shannon()` | Shannon cesitlilik indeksi (correction destekli) |
| `simpson()` | Simpson indeksleri (baskinlik, Gini-Simpson, ters Simpson) |

### Clarke & Warwick Taksonomik Ayirt Edicilik

| Fonksiyon | Ne yapar |
|-----------|----------|
| `delta()` | Delta — taksonomik cesitlilik (bolluk agirlikli) |
| `delta_star()` | Delta* — taksonomik ayirt edicilik |
| `avtd()` | AvTD / Delta+ — ortalama taksonomik ayirt edicilik |
| `vartd()` | VarTD / Lambda+ — taksonomik ayirt edicilik varyasyonu |

### Ozkan pTO (Deng Entropisi)

| Fonksiyon | Ne yapar |
|-----------|----------|
| `ozkan_pto()` | Islem 1: pTO hesaplama (max_level destekli, 8 cikti) |
| `pto_components()` | pTO dort/sekiz bileseni tek satirda |
| `deng_entropy_level()` | Belirli bir taksonomik seviyede Deng entropisi |

### Ozkan pTO Pipeline

| Fonksiyon | Ne yapar |
|-----------|----------|
| `ozkan_pto_resample()` | Islem 2: stokastik yeniden ornekleme |
| `ozkan_pto_sensitivity()` | Islem 3: duyarlilik analizi |
| `ozkan_pto_full()` | Islem 1+2+3 tam pipeline tek satirda |
| `ozkan_pto_jackknife()` | Leave-one-out jackknife yanliliksiz tahmin |

### Toplu Analiz ve Karsilastirma

| Fonksiyon | Ne yapar |
|-----------|----------|
| `batch_analysis()` | Coklu ornek alan toplu analizi (16 sutun cikti) |
| `compare_indices()` | Tum indeksleri yan yana karsilastirir |

### Simulasyon ve Rarefaction

| Fonksiyon | Ne yapar |
|-----------|----------|
| `simulate_td()` | Huni grafigi icin null dagilim simulasyonu |
| `rarefaction_taxonomic()` | Taksonomik cesitlilik icin seyreltme egrisi |

### Gorsellestime (7 plot tipi)

| Fonksiyon | Ne yapar |
|-----------|----------|
| `plot_taxonomic_tree()` | Taksonomik agac dendogrami |
| `plot_heatmap()` | Taksonomik mesafe isi haritasi |
| `plot_funnel()` | Huni grafigi (beklenen aralik) |
| `plot_iteration()` | Islem 2/3 iterasyon grafigi |
| `plot_bubble()` | Tur katkilari balon grafigi |
| `plot_radar()` | Radar/orumcek grafigi |
| `plot_rarefaction()` | Seyreltme egrisi (guven araliklariyla) |

### Yardimci Fonksiyonlar

| Fonksiyon | Ne yapar |
|-----------|----------|
| `build_tax_tree()` | Taksonomik hiyerarsi tablosu olusturur |
| `tax_distance_matrix()` | Turler arasi taksonomik mesafe matrisi |

### Veri Setleri

| Veri Seti | Aciklama |
|-----------|----------|
| `anatolian_trees` | Anadolu agac turleri taksonomik hiyerarsisi |
| `gazi_comm` | Gazi Universitesi kampus ormani topluluk verisi |
| `gazi_gytk` | Gazi Universitesi kampus ormani taksonomik agac |

## Kaynaklar

### Klasik Cesitlilik Indeksleri
- Shannon, C.E. (1948). A mathematical theory of communication.
  *Bell System Technical Journal*, 27, 379-423.
- Simpson, E.H. (1949). Measurement of diversity. *Nature*, 163, 688.

### Taksonomik Farklilik
- Warwick, R.M. & Clarke, K.R. (1995). New 'biodiversity' measures reveal
  a decrease in taxonomic distinctness with increasing stress. *Marine
  Ecology Progress Series*, 129, 301-305.
- Clarke, K.R. & Warwick, R.M. (1998). A taxonomic distinctness index and
  its statistical properties. *Journal of Applied Ecology*, 35, 523-531.
- Clarke, K.R. & Warwick, R.M. (1999). The taxonomic distinctness measure
  of biodiversity: weighting of step lengths between hierarchical levels.
  *Marine Ecology Progress Series*, 184, 21-29.
- Clarke, K.R. & Warwick, R.M. (2001). A further biodiversity index
  applicable to species lists: variation in taxonomic distinctness.
  *Marine Ecology Progress Series*, 216, 265-278.

### Deng Entropisi ve Kanit Teorisi
- Dempster, A.P. (1967). Upper and lower probabilities induced by a
  multivalued mapping. *The Annals of Mathematical Statistics*, 38, 325-339.
- Shafer, G. (1976). *A Mathematical Theory of Evidence*. Princeton
  University Press.
- Deng, Y. (2016). Deng entropy. *Chaos, Solitons & Fractals*, 91, 549-553.

### Ozkan pTO Indeksi
- Ozkan, K. (2018). Yeni bir taksonomik cesitlilik olcusu onerisi.
  *Turkish Journal of Forestry*, 19(4), 336-346. DOI: 10.18182/tjf.441061

### Yanliliksiz Tahmin
- Chao, A. & Shen, T.J. (2003). Nonparametric estimation of Shannon's
  index of diversity when there are unseen species in sample.
  *Environmental and Ecological Statistics*, 10, 429-443.

### Rarefaction (Seyreltme)
- Gotelli, N.J. & Colwell, R.K. (2001). Quantifying biodiversity:
  procedures and pitfalls in the measurement and comparison of species
  richness. *Ecology Letters*, 4, 379-391.
- Hurlbert, S.H. (1971). The nonconcept of species diversity: a critique
  and alternative parameters. *Ecology*, 52, 577-586.
