Tahıl ve mamulleri, bakliyat çeşitleri, kuru meyveler ve tütün gibi depolanmış ürünler, çeşitli böcek zararlıları için ideal yaşam ortamları sağlamaktadır. Bu zararlılar arasında Tribolium türleri (un böcekleri), Sitophilus türleri (tahıl böcekleri), Oryzaephilus surinamensis (testere dişli tahıl böceği) ve Plodia interpunctella (Hint unu güvesi) gibi türler yer almaktadır. Bu zararlılar, hem nicel kayıplara (ağırlık kaybı) hem de nitel kayıplara (beslenme değeri düşüşü, mikotoksin kontaminasyonu) neden olmaktadır.
Eşeysel Çekici Tuzakların Önemi
Feromon tuzakları, zararlıların eşeysel çekici kimyasallarını taklit eden sentetik bileşikler kullanarak ergin bireyleri çekip yakalamaya dayalı bir mücadele yöntemidir. Bu yöntemin başlıca avantajları şunlardır:
- Türe özgülük: Hedef zararlıya karşı yüksek seçicilik
- Çevre dostu: Kimyasal kalıntı bırakmama
- Erken uyarı: Zararlının varlığının erken tespiti
- Popülasyon izleme: Zararlı yoğunluğunun takibi
- Entegre mücadele uyumluluğu: Diğer mücadele yöntemleriyle uyumlu kullanım
Materyal ve Yöntem
Deneme Alanının Seçimi
Denemeler, böceğin zararlı olduğu bilinen aşağıdaki depo türlerinde gerçekleştirilir:
- Tahıl ve mamul depoları: Buğday, arpa, mısır, un, bulgur depoları
- Bakliyat depoları: Fasulye, nohut, mercimek, bezelye depoları
- Kuru meyve depoları: Kuru üzüm, incir, kayısı, fındık depoları
- Tütün depoları: İşlenmiş tütün yaprakları için kullanılan depolar
Deneme Deseni
Dolu Depo Denemeleri
Dolu depo denemeleri, gerçek depolama koşullarında tuzakların performansını değerlendirmek için tasarlanmıştır:
Deneme Tasarımı:
- Tekerrür sayısı: Minimum 6, tercih edilen 10 tekerrür
- Deneme deseni: Eş yapma (paired design) deneme deseni
- Karakterler: Her tekerrürde test tuzağı ve standart tuzak olmak üzere 2 karakter
Tuzak Yerleşimi:
- Yükseklik: Yerden 1.5-2 metre yükseklikte
- Mesafe: Tuzaklar arası minimum 15-20 metre
- Düzenleme: Çapraz yerleşim (A-B, B-A formatında)
- Hat sayısı: 5'er tekerrür olmak üzere maksimum 2 hat
Boş Depo Denemeleri
Boş depo denemeleri, kontrollü koşullarda tuzakların etkinliğini değerlendirmek için yapılır:
Zararlı Bulaştırma:
- 6 tekerrürlü denemeler: Haftalık minimum 60 adet zararlı
- 10 tekerrürlü denemeler: Haftalık minimum 100 adet zararlı
- Zararlı kaynağı: Laboratuvar yetiştirme veya doğal populasyon
Deneme Süreçleri
Çevresel Koşulların İzlenmesi
Deneme süresince aşağıdaki parametreler haftalık olarak kaydedilir:
- Sıcaklık: Ortam sıcaklığı (°C)
- Bağıl nem: Oransal nem (%)
- Havalandırma durumu: Depo havalandırma sisteminin çalışma durumu
Veri Toplama
Sayım Sıklığı:
- Haftalık sayımlar (tercih edilen)
- Haftada 2 kez sayımlar (yoğun uçuş dönemlerinde)
Sayım Yöntemi:
- Tuzaktaki canlı bireyler humane yöntemlerle öldürülür
- Canlı ve ölü bireyler beraber sayılır
- Hedef dışı organizmalar ayrı kaydedilir
- Yapışkan tablalar gerektiğinde değiştirilir
Deneme Süresi:
- Genellikle 6 hafta (feromonun etkili çekicilik süresi)
- Feromon özelliğine göre değişkenlik gösterebilir
Kalite Kontrol
Feromon Seçimi
Denemelerde kullanılacak feromonlar şu kriterleri karşılamalıdır:
- Kimyasal bileşimi bilimsel olarak belirlenmiş olmalı
- Etkinliği biyolojik denemelerle kanıtlanmış olmalı
- Yurt içi/dışı araştırmalarla doğrulanmış olmalı
- Pratik uygulamalarda başarılı sonuçlar vermiş olmalı
İlaçlama Müdahaleleri
Deneme süresince zorunlu ilaçlama durumunda:
- İlaçlamadan önce tuzaklar kaldırılır
- 24 saat bekleme süresi uygulanır
- Tuzaklar tekrar yerlerine asılır
- İlaçlama detayları raporda belirtilir
İstatistiksel Analiz Yöntemleri
Veri Hazırlama
Ham veriler analiz öncesinde aşağıdaki şekilde düzenlenir:
Veri Yapısı:
- Depot: Depo kimliği
- Replicate: Tekerrür numarası
- TrapID: Benzersiz tuzak kimliği
- TrapType: Test/Standart tuzak türü
- Week1, Week2, ..., WeekN: Haftalık yakalama sayıları
- TotalCatch: Toplam yakalama sayısı
Betimsel İstatistikler
Her tuzak türü için aşağıdaki betimsel istatistikler hesaplanır:
- Ortalama: Aritmetik ortalama yakalama sayısı
- Standart sapma: Varyabilite ölçüsü
- Medyan: Merkezi eğilim ölçüsü
- Minimum-Maksimum: Değişim aralığı
- Standart hata: Ortalama için güven aralığı hesabı
Eşleştirilmiş t-Testi
Eş yapma deneme deseninde aynı tekerrür içindeki test ve standart tuzakların karşılaştırılmasında kullanılır:
Ön koşullar:
- Eşleştirilmiş gözlemler (aynı tekerrür içinde test ve standart)
- Farkların normal dağılımı
- Minimum 6 eşleştirilmiş çift
Test İstatistiği:
t = (d̄ - μ₀) / (sd / √n)
Burada:
d̄: Farkların ortalaması
sd: Farkların standart sapması
n: Eşleştirilmiş çift sayısı
μ₀: Hipotetik fark (genellikle 0)
Hipotezler:
- H₀: Test ve standart tuzaklar arasında fark yoktur (μd = 0)
- H₁: Test ve standart tuzaklar arasında fark vardır (μd ≠ 0)
Bağımsız t-Testi (Welch Testi)
Eşleştirme mümkün olmadığında iki tuzak türünün karşılaştırılmasında kullanılır:
Ön koşullar:
- Bağımsız örneklemler
- Gruplar arası varyans homojenliği varsayılmaz (Welch düzeltmesi)
- Her grup için minimum 5 gözlem
Test İstatistiği:
t = (X̄₁ - X̄₂) / √(s₁²/n₁ + s₂²/n₂)
Burada:
X̄₁, X̄₂: Grup ortalamaları
s₁², s₂²: Grup varyansları
n₁, n₂: Grup büyüklükleri
Tek Yönlü ANOVA
İkiden fazla tuzak türünün karşılaştırılmasında kullanılır:
Model:
Yᵢⱼ = μ + τᵢ + εᵢⱼ
Burada:
Yᵢⱼ: i'inci grupta j'inci gözlem
μ: Genel ortalama
τᵢ: i'inci grup etkisi
εᵢⱼ: Hata terimi
Hipotezler:
- H₀: Tüm grup ortalamaları eşittir (τ₁ = τ₂ = ... = τₖ = 0)
- H₁: En az bir grup ortalaması farklıdır
F-İstatistiği:
F = MST / MSE
Burada:
MST: Gruplar arası ortalama kareler
MSE: Grup içi ortalama kareler
Tukey HSD Post-hoc Testi
ANOVA'da anlamlı fark bulunduğunda, hangi gruplar arasında fark olduğunu belirlemek için kullanılır:
Test İstatistiği:
HSD = q(α, k, df) × √(MSE/n)
Burada:
q: Studentized range dağılımından kritik değer
k: Grup sayısı
df: Hata serbestlik derecesi
n: Her gruptaki gözlem sayısı (dengeli tasarım için)
Kompakt Harf Gösterimi (Compact Letter Display)
Tukey HSD sonuçlarını görsel olarak sunmak için kullanılan yöntem:
Algoritma:
- Grupları ortalamalarına göre azalan sırada sırala
- İlk gruba 'a' harfi ata
- Sonraki her grup için mevcut gruplarla anlamlı fark kontrolü yap
- Fark yoksa aynı harf, fark varsa yeni harf ata
Python ile Otomatik Analiz
"""
Depolarda Eşeysel Çekici Tuzaklar - Deneme Analiz Skripti
Beklenen CSV formatı (örnek sütunlar):
- Depot : depo kimliği (string)
- Replicate : tekerrür / rejim numarası (int veya string)
- TrapID : tuzak kimliği (benzersiz per tuzak) (string)
- TrapType : 'Test' veya 'Standard' veya başka etiket (string)
- Week1, Week2, Week3, ... WeekN : haftalık yakalanan birey sayıları (int)
- Temp_week1, RH_week1, ... (opsiyonel çevre verileri)
Örnek kullanım:
python analyze_traps.py veriler.csv --out results.csv
Not: script hem eşleştirilmiş t-testi (iki tip ve eşleştirilmiş tekerrüpler varsa) hem ANOVA+Tukey HSD (çoklu tip) uygular.
"""
import sys
import argparse
import pandas as pd
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
Çoklu karşılaştırma için statsmodels
try:
import statsmodels.api as sm
from statsmodels.formula.api import ols
from statsmodels.stats.multicomp import pairwise_tukeyhsd
except Exception as e:
raise ImportError("Bu script için statsmodels gerekli. 'pip install statsmodels' ile yükleyin.") from e
def load_data(path):
df = pd.read_csv(path)
haftalara ait sütunları otomatik saptama (Week ile başlayan)
week_cols = [c for c in df.columns if c.lower().startswith('week')]
if len(week_cols) == 0:
raise ValueError("CSV içinde 'Week' ile başlayan en az bir sütun bulunmalı (Week1, Week2, ...).")
return df, week_cols
def summarize_totals(df, week_cols):
df['TotalCatch'] = df[week_cols].sum(axis=1)
Haftalık toplamlar da
weekly = df.groupby('TrapType')[week_cols].agg(['mean','std','count']).transpose()
return df, weekly
def paired_t_test(df):
"""
Eşleştirilmiş t-testi: Her replicate içindeki Test vs Standard tuzaklarının toplam yakalanışına göre.
Gereksinim: her replicate içinde en az bir Test ve bir Standard olmalı ve eşlenebilir olmalı.
Burada 'eşlenebilir' kabulü: aynı Replicate ve aynı Depot içinde birer Test ve Standard varsa eşleştiriyoruz.
"""
Pivot: Replicate+Depot -> TrapType -> TotalCatch
pivot = df.pivot_table(index=['Depot','Replicate'], columns='TrapType', values='TotalCatch', aggfunc='sum')
Drop satırlar eksikse (NA) sadece tam çiftleri al
paired = pivot.dropna()
if paired.shape[0] < 2:
raise ValueError("Yeterli eşleştirilmiş çift yok. En az 2 eşleşmiş replicate gereklidir.")
Varsayım: 'Test' ve 'Standard' sütun isimleri mevcut
types = paired.columns.tolist()
if len(types) != 2:
raise ValueError("Paired t-test için pivot sonucu 2 tuzak tipi olmalı (ör. 'Test' ve 'Standard').")
a, b = paired.iloc[:,0], paired.iloc[:,1]
tstat, pval = stats.ttest_rel(a, b)
return {'n_pairs': paired.shape[0], 'tstat': tstat, 'pval': pval, 'mean_diff': (a-b).mean()}
def anova_and_tukey(df):
"""
ANOVA on TotalCatch ~ TrapType, then Tukey HSD post-hoc and compact letter display.
"""
ANOVA
model = ols('TotalCatch ~ C(TrapType)', data=df).fit()
anova_table = sm.stats.anova_lm(model, typ=2)
Tukey HSD
tukey = pairwise_tukeyhsd(endog=df['TotalCatch'], groups=df['TrapType'], alpha=0.05)
Oluştur compact letter display (basit greedy algoritma)
cld = compact_letter_display(df, tukey)
return anova_table, tukey, cld
def compact_letter_display(df, tukey):
"""
Basit greedy yöntemle kompakt harf gösterimi üretir.
- Ortalamalara göre düşen sırada tuzak tiplerini gez
- İlk tipe 'a' ver, sonraki tip için tüm mevcut grupla anlamlı fark varsa yeni harf, değilse aynı harf
Bu yöntem küçük veri ve Tukey sonuçları için pratik çalışır.
"""
means = df.groupby('TrapType')['TotalCatch'].mean().sort_values(ascending=False)
groups = means.index.tolist()
Tukey sonucunu kolay sorgulamak için dict: (g1,g2)->reject
reject = {}
for i in range(len(tukey.groupsunique)):
pass
pairwise info
tuk_df = pd.DataFrame(data=tukey._results_table.data[1:], columns=tukey._results_table.data[0])
normalize pair order
for _, row in tuk_df.iterrows():
g1 = row['group1']
g2 = row['group2']
rej = bool(row['reject'])
reject[(g1,g2)] = rej
reject[(g2,g1)] = rej
letters = {}
current_letter_ord = ord('a')
for g in groups:
assigned = False
for letter, members in letters.items():
g, members içindeki her biriyle anlamlı fark var mı?
Eğer g ile grup içindeki herhangi bir üye arasında 'reject==True' ise anlamlı fark var demektir -> ayrı harf
Ön koşul: eğer g ile tüm üyeler 'not reject' yani fark yok ise aynı harfe koy
any_reject = False
for m in members:
Eğer karşılaştırma yoksa (ör: tek taraflı eksik) varsayılan olarak 'reject=True' al
rej = reject.get((g,m), True)
if rej:
any_reject = True
break
if not any_reject:
letters[letter].append(g)
assigned = True
break
if not assigned:
letters[chr(current_letter_ord)] = [g]
current_letter_ord += 1
ters çevir: tip->harf
cld = {}
for letter, members in letters.items():
for m in members:
cld[m] = letter
return cld
def plot_weekly(df, week_cols, out_prefix=None):
"""
Haftalık ortalama + hata çubukları ve toplam yakalama grafiği per TrapType.
"""
weekly_means = df.groupby('TrapType')[week_cols].mean().transpose()
weekly_se = df.groupby('TrapType')[week_cols].sem().transpose()
plt.figure(figsize=(10,6))
for trap in weekly_means.columns:
plt.errorbar(range(1, len(weekly_means)+1), weekly_means[trap], yerr=weekly_se[trap], marker='o', label=trap)
plt.xlabel('Hafta (Week1, Week2, ...)')
plt.ylabel('Ortalama yakalanan birey')
plt.title('Haftalık ortalama yakalama ve SE by TrapType')
plt.xticks(range(1, len(weekly_means)+1), weekly_means.index, rotation=45)
plt.legend()
plt.tight_layout()
if out_prefix:
plt.savefig(out_prefix + "_weekly.png", dpi=300)
plt.show()
def main(args):
df, week_cols = load_data(args.input)
df, weekly = summarize_totals(df, week_cols)
print("Haftalık özet (ortalama, std, n) (transpose gösterim):")
print(weekly.head(20))
Toplam yakalanan bireylerin özetleri
totals_summary = df.groupby('TrapType')['TotalCatch'].agg(['mean','std','count','median'])
print("\nTrapType bazında toplam yakalama özeti:")
print(totals_summary)
trap_types = df['TrapType'].unique()
print("\nBulunan TrapType'lar:", trap_types)
İstatistiksel test seçimi
if set(['Test','Standard']).issubset(set(trap_types)):
eşleştirilmiş t-testi mümkünse dene (aynı Depot+Replicate içinde ikili var mı?)
try:
paired_res = paired_t_test(df)
print("\nEŞLEŞTİRİLMİŞ t-testi (Test vs Standard) sonuçları:")
print(paired_res)
except Exception as e:
print("\nEşleştirilmiş t-testi yapılamadı:", str(e))
Eğer iki tip varsa ve eşleşme yoksa independent t-test
if len(trap_types) == 2:
types = list(trap_types)
a = df[df['TrapType']==types[0]]['TotalCatch']
b = df[df['TrapType']==types[1]]['TotalCatch']
t_ind, p_ind = stats.ttest_ind(a, b, equal_var=False) # Welch
print(f"\nBağımsız (Welch) t-testi: {types[0]} vs {types[1]} -> t={t_ind:.3f}, p={p_ind:.4f}")
elif len(trap_types) > 2:
print("\nÇoklu tuzak tipi bulundu. ANOVA ve Tukey HSD uygulanıyor...")
anova_table, tukey, cld = anova_and_tukey(df)
print("\nANOVA tablosu:")
print(anova_table)
print("\nTukey HSD sonuç özeti:")
print(tukey.summary())
print("\nCompact Letter Display (harf gruplaması):")
tablo
mean_tbl = df.groupby('TrapType')['TotalCatch'].mean().sort_values(ascending=False).rename('mean')
result_tbl = pd.DataFrame({'mean': mean_tbl})
result_tbl['group'] = result_tbl.index.map(lambda x: cld.get(x, '?'))
print(result_tbl)
Grafik
try:
plot_weekly(df, week_cols, out_prefix=args.out_prefix)
except Exception as e:
print("Grafik çiziminde hata:", e)
Opsiyonel: sonuçları csv'ye kaydet
if args.out:
out_df = df.copy()
out_df.to_csv(args.out, index=False)
print(f"\nAnaliz için genişletilmiş veri {args.out} olarak kaydedildi.")
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Depo tuzak deneme analiz scripti')
parser.add_argument('input', help='Girdi CSV dosyası (örnek sütunlar: Depot,Replicate,TrapID,TrapType,Week1,Week2,...)')
parser.add_argument('--out', help='Çıktı CSV kaydı (opsiyonel)', default=None)
parser.add_argument('--out-prefix', help='Grafik dosyası prefix (opsiyonel)', default=None)
args = parser.parse_args()
main(args)
Analiz Scripti Özellikleri
Geliştirilen Python scripti aşağıdaki özellikleri içermektedir:
Veri İşleme:
- CSV formatında veri okuma
- Haftalık verilerin otomatik tanınması
- Toplam yakalama hesaplama
- Eksik veri kontrolü
İstatistiksel Testler:
- Otomatik test seçimi (veri yapısına göre)
- Eşleştirilmiş t-testi
- Bağımsız t-testi (Welch)
- ANOVA ve Tukey HSD
- Kompakt harf gösterimi
Görselleştirme:
- Haftalık yakalama grafikleri
- Hata çubukları ile ortalama gösterimleri
- Grup karşılaştırma grafikleri
Kullanım Örneği
bash
python analyze_traps.py veriler.csv --out results.csv --out-prefix grafik
Beklenen CSV Formatı:
Depot,Replicate,TrapID,TrapType,Week1,Week2,Week3,Week4,Week5,Week6
Depo1,1,T001,Test,5,8,12,15,18,20
Depo1,1,S001,Standard,3,6,9,11,14,16
Depo1,2,T002,Test,4,7,11,14,17,19
Sonuçların Değerlendirilmesi
İstatistiksel Anlamlılık
p-değeri Yorumlama:
- p < 0.001: Çok yüksek anlamlılık (***)
- p < 0.01: Yüksek anlamlılık (**)
- p < 0.05: Anlamlılık (*)
- p ≥ 0.05: Anlamlı fark yok (ns)
Etki Büyüklüğü
İstatistiksel anlamlılığın yanında pratik anlamlılık da değerlendirilmelidir:
Cohen's d (t-testi için):
- 0.2: Küçük etki
- 0.5: Orta etki
- 0.8: Büyük etki
Eta-kare (ANOVA için):
- 0.01: Küçük etki
- 0.06: Orta etki
- 0.14: Büyük etki
Güven Aralıkları
Nokta tahminlerin yanında güven aralıkları da rapor edilmelidir:
- %95 güven aralığı yaygın olarak kullanılır
- Aralığın genişliği tahmin kesinliğini gösterir
- Örtüşmeyen aralıklar anlamlı fark göstergesi
Kalite Güvencesi ve Validasyon
Deneme Validitesi
İç Validite:
- Randomizasyon uygulaması
- Körleme (mümkün olduğunda)
- Standardizasyon
- Kalibrasyon
Dış Validite:
- Farklı depo tiplerinde tekrar
- Farklı mevsimlerde uygulama
- Farklı zararlı türlerinde test
- Çoklu lokasyon denemeleri
Veri Kalitesi
Veri Doğrulama:
- Aykırı değer analizi
- Tutarlılık kontrolleri
- Eksik veri değerlendirmesi
- Çifte kayıt kontrolü
Dokümantasyon:
- Deneme protokolü kayıtları
- Çevresel koşul kayıtları
- Müdahale kayıtları
- Fotodokümantasyon
Tartışma ve Öneriler
Metodolojik Üstünlükler
Önerilen standart metodoloji aşağıdaki avantajları sağlamaktadır:
Standart Deneme Tasarımı:
- Tekrarlanabilir sonuçlar
- Laboratuvarlar arası karşılaştırılabilirlik
- Düzenleyici onay süreçlerine uyumluluk
- Uluslararası standartlara uyum
İstatistiksel Güç:
- Uygun örneklem büyüklüğü
- Tip I ve Tip II hata kontrolü
- Çoklu karşılaştırma düzeltmeleri
- Etki büyüklüğü değerlendirmesi
Praktik Uygulamalar
Depo Yöneticileri İçin:
- Zararlı izleme programları
- Erken uyarı sistemleri
- Mücadele zamanlaması
- Etkililik değerlendirmesi
Araştırmacılar İçin:
- Yeni feromon formülasyonları
- Tuzak tasarım optimizasyonu
- Çevresel etki çalışmaları
- Maliyet-fayda analizleri
Gelecek Araştırma Yönleri
Teknolojik Gelişmeler:
- IoT sensörlü akıllı tuzaklar
- Gerçek zamanlı veri toplama
- Makine öğrenmesi ile tahmin
- Otomatik görüntü analizi
Metodolojik İyileştirmeler:
- Bayesian analiz yöntemleri
- Meta-analiz yaklaşımları
- Longitudinal veri modelleme
- Çok düzeyli modelleme
Depolanmış ürünlerde eşeysel çekici tuzakların etkinlik değerlendirmesi için sunulan standart metodoloji, bilimsel rigor ve pratik uygulanabilirlik arasında optimum dengeyi sağlamaktadır. Eş yapma deneme deseni, uygun istatistiksel analizlerle birleştiğinde, güvenilir ve yorumlanabilir sonuçlar üretmektedir. Python tabanlı otomatik analiz scripti, veri işleme ve istatistiksel değerlendirme süreçlerini standardize ederek, hem araştırmacılar hem de pratisyenler için erişilebilir bir çözüm sunmaktadır. Bu yaklaşım, entegre zararlı yönetimi programlarının bilimsel temellerini güçlendirerek, sürdürülebilir tarım ve gıda güvenliği hedeflerine katkıda bulunmaktadır.