"Yarınki romanımı yazmak için bugün uyumam gerektiği gerçeği, en büyük trajedimdir." — Virginia Woolf (Kurgusal)"

Ahşaplarda Zararlı Böcekler İçin Fümigasyon ve Boş Ambar İlaçlaması

Ahşap zararlılarıyla mücadelede profesyonel çözümler!

yazı resim

Ahşaplarda Zararlı Böcekler İçin Fümigasyon ve Boş Ambar İlaçlaması

Ahşap materyaller, doğal özelliklerinden dolayı çeşitli böcek türlerinin saldırısına maruz kalmaktadır. Xylophagous (odun yiyen) böcekler, ahşap yapılarda önemli ekonomik kayıplara ve yapısal hasarlara neden olmaktadır. Bu zararlıların etkili kontrolü için geliştirilmiş fümigasyon ve kalıntı ilaçlama yöntemleri, bilimsel standartlara uygun olarak test edilmeli ve değerlendirilmelidir. Zararlı böcek kontrolünde kullanılan kimyasal mücadele yöntemleri, hedef organizmaların biyolojik özelliklerine, uygulama alanının fiziksel koşullarına ve çevresel faktörlere bağlı olarak değişkenlik göstermektedir. Bu nedenle, standardize edilmiş test metodları ile etkinlik değerlendirmesi yapılması, güvenilir sonuçlar elde edilmesi açısından zorunludur.
Ahşaplarda Zararlı Böcekler İçin Fümigasyon Deneme Metodu
Metodun Temel Prensipleri
Fümigasyon, gaz halindeki aktif maddelerin kapalı ortamlarda belirli konsantrasyonlarda ve sürelerde uygulanması esasına dayanmaktadır. Bu yöntem, ahşap materyalin tüm yüzeylerinde ve iç kısımlarında etkili penetrasyon sağlayarak, zararlı böceklerin tüm gelişim dönemlerinde (yumurta, larva, pupa, ergin) etkili olmaktadır.
Deneme Materyali ve Koşulları
Test Materyali Hazırlığı
- Bulaşık olduğu saptanan ahşap materyallerde deneme yapılması
- Laboratuvar koşullarında minimum 1 m³'lük fümigatuvarların kullanılması
- 25x25x25 cm boyutlarında ahşap malzeme parçalarının test materyali olarak kullanılması
- Her tekerrür için en az 5 üğüntü deliğinin bulunması şartının aranması
Çevresel Koşullar
- Sıcaklık: 22±2°C
- Orantılı nem: %65±5
- Ortamın tamamen gaz geçirmez hale getirilmesi
- Dış ortamda gaz kaçağının düzenli kontrolü
Deneme Deseni ve İstatistiksel Gereksinimler
Laboratuvar Denemeleri
- Tesadüf parselleri deneme deseninin uygulanması
- Minimum 4 tekerrür
- Hata serbestlik derecesinin 9'un altına düşmemesi
Yapılarda Kurulan Denemeler
- Eş yapma deneme deseninin kullanılması
- Minimum 6 tekerrür
- Çevresel homojenliğin sağlanması
İlaç Uygulama Teknikleri
Gaz Sevk Sistemleri
- Özel yapılı varil veya oda şeklinde sabit fümigatuvarlar
- Gaz geçirmez çadır sistemleri
- Atomizör veya pülverizatör ile formülasyon uygulaması
- Dedektörler ile gaz konsantrasyonu takibi
Güvenlik Önlemleri
- Gaz maskesi kullanımının zorunluluğu
- 4-5 saat aralıklarla gaz yoğunluğu kontrolü
- Dış ortam kaçak kontrolü
- Çalışma personeli eğitimi
Değerlendirme Kriterleri
Ön Değerlendirme
- Fümigasyon öncesi delik sayımı ve işaretlenmesi
- Üğüntü yerlerinin belirlenmesi ve temizlenmesi
- Canlı ergin bireylerin feromon tuzaklarla tespiti
Son Değerlendirme
- Taze üğüntü kontrolü ve sayımı
- Yeni delik oluşumunun değerlendirilmesi
- Abbott formülü ile etkinlik hesaplama (%99,9 etki kriteri)
Boş Ambar İlaçlaması Deneme Metodu
Metodun Kapsamı ve Amacı
Boş ambar ilaçlaması, depolama alanlarının zararlı böceklerden arındırılması ve yeni bulaşmaların önlenmesi amacıyla gerçekleştirilen preventif bir uygulamadır. Bu yöntem, kalıntı etkili insektisitlerin çeşitli yüzeylere uygulanması esasına dayanmaktadır.
Test Sistemi ve Materyaller
Test Plakaları
- 15x15 cm boyutlarında çeşitli malzeme plakaları
- Beton plakalar
- Sıva plakalar
- Çinko plakalar
- Kerpiç plakalar
- Tahta plakalar
- Her plaka bir tekerrür olarak değerlendirilmesi
Test Organizmaları
- Hedef alınan tüm ambar zararlısı türleri
- Ergin ve larva dönemlerinin kullanılması
- Plaka başına 25 adet test böceği
Deneme Kurulumu ve İstatistiksel Analiz
Deneme Desenleri
- Tesadüf Parselleri deseni: Minimum 4 tekerrür
- Eş Yapma deseni: Minimum 6 tekerrür
- Faktöriyel deneme deseni: Çok faktörlü çalışmalarda
- Hata serbestlik derecesi minimum 9
Kontrol Sistemleri
- Şahit grupların mutlaka bulundurulması
- Karşılaştırma ilaçlarının seçimi
- Pozitif ve negatif kontrollerin uygulanması
Uygulama Prosedürleri
İlaçlama Tekniği
- Kalibre edilmiş uygulama ekipmanları
- Tekdüze dağılım sağlayacak nozul sistemi
- Biyolojik etkinliği etkileyen faktörlerin kontrolü
- Çalışma basıncı
- Nozul tipi ve delik çapı
- İlerleme hızı
- Uygulama hacmi
Test Böceği Yerleştirme
- İlaçlamadan 24 saat sonra böcek yerleştirme
- Lüks cam ile kapatma sistemi
- Temas yerlerinin parafinlenmesi
- Üst kısmın tülbentle kapatılması
Değerlendirme ve Analiz
Sayım Prosedürü
- İlk sayım: Böcek yerleştirmeden 24 saat sonra
- Haftalık sayımlar: Etki %80'in altına düşünceye kadar
- Paralize böceklerin 24 saat bekletilmesi
- Ölü/canlı ayrımının net yapılması
İstatistiksel Değerlendirme
- Abbott formülü ile etkinlik hesaplama
- ANOVA ile gruplar arası karşılaştırma
- LSD testi ile ikili karşılaştırmalar
- Etki süresinin belirlenmesi
Kalite Kontrol ve Standardizasyon
Laboratuar Standartları
Ekipman Kalibrasyonu
- Ölçüm cihazlarının düzenli kalibrasyonu
- Uygulama ekipmanlarının performans testleri
- Çevresel parametre takip sistemleri
- Dedektör hassasiyet kontrolleri
Personel Yeterliliği
- Teknik personel eğitimi ve sertifikasyonu
- Güvenlik prosedürlerinin uygulanması
- Standart çalışma prosedürlerinin takibi
- Sürekli mesleki gelişim programları
Veri Yönetimi ve Raporlama
Kayıt Sistemi
- Deneme protokollerinin detaylı tutulması
- Ham verinin sistematik kaydedilmesi
- İstatistiksel analizlerin dokümantasyonu
- Sonuçların objektif yorumlanması
Raporlama Standartları
- Materyal ve metot açıklamalarının detaylandırılması
- İstatistiksel analizlerin şeffaf sunumu
- Sonuç ve önerilerin bilimsel temellendirmesi
- Uluslararası standartlara uygunluk
Praktik Uygulamalar ve Öneriler
Saha Uygulamaları
Fümigasyon Uygulamaları
- Yapı özelliklerine göre fümigant seçimi
- Hava koşullarının değerlendirilmesi
- Güvenlik protokollerinin sıkı takibi
- Etki süresinin optimize edilmesi
Ambar İlaçlaması
- Depolama öncesi preventif uygulamalar
- Mevcut bulaşmalarda curative uygulamalar
- Kalıntı etki süresinin planlanması
- Entegre mücadele stratejilerinin geliştirilmesi
Çevresel Etkiler ve Sürdürülebilirlik
Çevresel Risk Değerlendirmesi
- Non-target organizmalar üzerinde etkiler
- Su ve toprak kontaminasyon riski
- Hava kalitesi üzerinde etkiler
- Biyoakümülasyon potansiyelinin değerlendirilmesi
Sürdürülebilir Yaklaşımlar
- Düşük toksisiteli alternatiflerin araştırılması
- Entegre zararlı yönetimi stratejileri
- Biyolojik kontrol yöntemleriyle kombinasyon
- Direnç gelişiminin önlenmesi
Gelecek Perspektifleri ve İnovasyonlar
Teknolojik Gelişmeler
Akıllı Takip Sistemleri
- IoT tabanlı çevresel monitoring
- Gerçek zamanlı gaz konsantrasyonu takibi
- Otomatik alarm sistemleri
- Uzaktan kontrol imkanları
Yeni Aktif Maddeler
- Düşük riskli bio-insektisitler
- Nano-teknoloji uygulamaları
- Kontrollü salım sistemleri
- Hedeflenen ilaç aktarım sistemleri
Araştırma Öncelikleri
Direnç Yönetimi
- Direnç mekanizmalarının anlaşılması
- Rotasyon stratejilerinin geliştirilmesi
- Sinerjist kombinasyonların araştırılması
- Genetik temelli kontrol yöntemleri
Çevresel Uyumluluk
- Yeşil kimya prensiplerinin uygulanması
- Biyobozunur formulasyonların geliştirilmesi
- Karbon ayak izinin azaltılması
- Döngüsel ekonomi modellerinin entegrasyonu
Ahşaplarda zararlı böcekler için fümigasyon ve boş ambar ilaçlaması deneme metodları, bilimsel standartlara uygun şekilde gerçekleştirildiğinde güvenilir ve tekrarlanabilir sonuçlar vermektedir. Bu metodların başarılı uygulanabilmesi için aşağıdaki kritik noktalar dikkate alınmalıdır:
Metodolojik Öneriler
- Deneme desenlerinin istatistiksel güce sahip şekilde kurgulanması
- Çevresel faktörlerin standardize edilmesi
- Kalite kontrol prosedürlerinin sıkı takibi
- Güvenlik protokollerinin mutlak uygulanması
Uygulama Önerileri
- Saha koşullarında laboratuvar sonuçlarının validasyonu
- Entegre mücadele programlarının geliştirilmesi
- Direnç gelişiminin önlenmesi için rotasyon stratejileri
- Çevresel etkinin minimizasyonu için alternatif yöntemlerin araştırılması
Gelecek Araştırma Yönleri
- Nano-teknoloji uygulamaları
- Biyolojik kontrol ajanlarıyla sinerjik etkiler
- Akıllı monitöring sistemlerinin geliştirilmesi
- Sürdürülebilir zararlı yönetimi stratejileri
Bu kapsamlı yaklaşım ile ahşap zararlılarının etkili kontrolü sağlanırken, çevresel sürdürülebilirlik ve insan sağlığı korunmuş olacaktır. Gelecekte bu alanda yapılacak araştırmalar, daha etkili, güvenli ve çevre dostu çözümlerin geliştirilmesine katkı sağlayacaktır.

Ahşap Zararlıları ve Boş Ambar İlaçlama Analiz Sistemi Python Kodu
import numpy as np
import pandas as pd
import scipy.stats as stats
from scipy.optimize import curve_fit
import statsmodels.api as sm
from statsmodels.formula.api import ols
from statsmodels.stats.multicomp import pairwise_tukeyhsd
from statsmodels.stats.multitest import multipletests
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime
import warnings
warnings.filterwarnings('ignore')

Yardımcı fonksiyonlar

def sigmoidal_egri(x, a, b, c):
"""Sigmoidal eğri fonksiyonu - insektisit etkisi modellemesi için"""
return a / (1 + np.exp(-b * (x - c)))

def abbot_duzeltmesi(kontrol_etkisi, ilac_etkisi):
"""Abbott formülü ile düzeltilmiş etki yüzdesi (0-100 arasında sınırlı)"""
if kontrol_etkisi >= 100:
return min(100, max(0, ilac_etkisi))
duzeltilmis = ((ilac_etkisi - kontrol_etkisi) / (100 - kontrol_etkisi)) * 100
return min(100, max(0, duzeltilmis))

class IstatistikselAnaliz:
"""İstatistiksel analiz metodlarını içeren sınıf"""

@staticmethod
def anova_analizi(df, bagimli_degisken, gruplandirma_degiskeni):
"""ANOVA analizi yapar"""
model = ols(f'{bagimli_degisken} ~ C({gruplandirma_degiskeni})', data=df).fit()
return sm.stats.anova_lm(model, typ=2)

@staticmethod
def tukey_hsd_testi(df, deger_sutunu, grup_sutunu, alpha=0.05):
"""Tukey HSD testi uygular"""
return pairwise_tukeyhsd(df[deger_sutunu], df[grup_sutunu], alpha=alpha)

@staticmethod
def bonferroni_duzeltmesi(p_degerleri):
"""Bonferroni düzeltmesi uygular"""
return multipletests(p_degerleri, method='bonferroni')

@staticmethod
def dunnett_testi(kontrol_grubu, tedavi_gruplari):
"""Dunnett testi uygular (kontrol grubu ile tedavi gruplarını karşılaştırır)"""

Basit bir Dunnett testi uygulaması

sonuclar = []
for i, tedavi in enumerate(tedavi_gruplari):
t_stat, p_value = stats.ttest_ind(kontrol_grubu, tedavi)
sonuclar.append({'tedavi': f'Tedavi_{i+1}', 't_stat': t_stat, 'p_value': p_value})
return pd.DataFrame(sonuclar)

@staticmethod
def nonlineer_regresyon(x, y, model_func, tahmin_x=None):
"""Non-lineer regresyon uygular"""
try:

Başlangıç parametre tahminleri

if model_func == sigmoidal_egri:
baslangic_parametreleri = [max(y), 1, np.median(x)]
else:
baslangic_parametreleri = [1, 1, 1]

Eğri uydurma

parametreler, kovaryans = curve_fit(model_func, x, y, p0=baslangic_parametreleri, maxfev=5000)

R² hesaplama

tahminler = model_func(x, *parametreler)
ss_res = np.sum((y - tahminler) ** 2)
ss_tot = np.sum((y - np.mean(y)) ** 2)
r2 = 1 - (ss_res / ss_tot)

Tahminler

if tahmin_x is not None:
y_tahmin = model_func(tahmin_x, *parametreler)
else:
y_tahmin = None

return {
'parametreler': parametreler,
'kovaryans': kovaryans,
'r2': r2,
'tahminler': y_tahmin,
'model_func': model_func
}
except Exception as e:
print(f"Non-lineer regresyon hatası: {e}")
return None

class AhsapFumigasyonDenemesi:
def __init__(self):
self.veriler = {}
self.ilac_bilgileri = {}
self.kontrol_verisi = []
self.analiz_sonuclari = {}

def ilac_ekle(self, ticari_adi, firma, aktif_madde, miktar, formulasyon, doz):
self.ilac_bilgileri[ticari_adi] = {
'firma': firma,
'aktif_madde': aktif_madde,
'miktar': miktar,
'formulasyon': formulasyon,
'doz': doz
}

def veri_girisi(self, ilac_adi, tekerrur, on_delik, on_uguntu, son_delik, son_uguntu):
if ilac_adi not in self.veriler:
self.veriler[ilac_adi] = []

Hem delik hem de üğüntü için etki yüzdeleri hesapla

delik_etkisi = self.etki_yuzdesi_hesapla(on_delik, son_delik)
uguntu_etkisi = self.etki_yuzdesi_hesapla(on_uguntu, son_uguntu)
birlesik_etki = (delik_etkisi + uguntu_etkisi) / 2 # İki ölçümün ortalaması

self.veriler[ilac_adi].append({
'tekerrur': tekerrur,
'on_delik': on_delik,
'on_uguntu': on_uguntu,
'son_delik': son_delik,
'son_uguntu': son_uguntu,
'delik_etki': delik_etkisi,
'uguntu_etki': uguntu_etkisi,
'birlesik_etki': birlesik_etki
})

def kontrol_verisi_ekle(self, on_delik, on_uguntu, son_delik, son_uguntu):
delik_etkisi = self.etki_yuzdesi_hesapla(on_delik, son_delik)
uguntu_etkisi = self.etki_yuzdesi_hesapla(on_uguntu, son_uguntu)
birlesik_etki = (delik_etkisi + uguntu_etkisi) / 2

self.kontrol_verisi.append({
'on_delik': on_delik,
'on_uguntu': on_uguntu,
'son_delik': son_delik,
'son_uguntu': son_uguntu,
'delik_etki': delik_etkisi,
'uguntu_etki': uguntu_etkisi,
'birlesik_etki': birlesik_etki
})

def etki_yuzdesi_hesapla(self, on_sayi, son_sayi):
"""Etki yüzdesi hesaplar (0-100 arasında sınırlı)"""
if on_sayi == 0:
return 0
etki = ((on_sayi - son_sayi) / on_sayi) * 100
return min(100, max(0, etki))

def analiz_yap(self):
sonuclar = {}

Kontrol etki yüzdesini hesapla

kontrol_etkisi = np.mean([v['birlesik_etki'] for v in self.kontrol_verisi]) if self.kontrol_verisi else 0

Tüm verileri birleştir

tum_veriler = []
for ilac, veri in self.veriler.items():
df = pd.DataFrame(veri)

Abbott düzeltmesi uygula

df['abbot_etki'] = df['birlesik_etki'].apply(
lambda x: abbot_duzeltmesi(kontrol_etkisi, x)
)

Güven aralıkları

n = len(df)
mean = df['abbot_etki'].mean()
sem = stats.sem(df['abbot_etki'])
ci = sem * stats.t.ppf((1 + 0.95) / 2, n - 1)

ANOVA testi

anova_table = IstatistikselAnaliz.anova_analizi(df, 'abbot_etki', 'tekerrur')

sonuclar[ilac] = {
'ortalama_etki': mean,
'güven_aralığı': (mean - ci, mean + ci),
'standart_hata': sem,
'anova': anova_table,
'raw_data': df
}

tum_veriler.append(df.assign(ilac=ilac))

Tüm ilaçlar için Tukey HSD testi

if len(tum_veriler) > 1:
tum_df = pd.concat(tum_veriler)
tukey_result = IstatistikselAnaliz.tukey_hsd_testi(tum_df, 'abbot_etki', 'ilac')

for ilac in sonuclar:
sonuclar[ilac]['tukey'] = tukey_result

Dunnett testi (kontrol vs ilaçlar)

if self.kontrol_verisi:
kontrol_verisi = [v['birlesik_etki'] for v in self.kontrol_verisi]
ilac_verileri = []
ilac_isimleri = []

for ilac, veri in self.veriler.items():
df = pd.DataFrame(veri)
ilac_verileri.append(df['birlesik_etki'].values)
ilac_isimleri.append(ilac)

dunnett_result = IstatistikselAnaliz.dunnett_testi(kontrol_verisi, ilac_verileri)

for ilac in sonuclar:
sonuclar[ilac]['dunnett'] = dunnett_result

self.analiz_sonuclari = sonuclar
return sonuclar

def excel_raporu_olustur(self, dosya_adi):
"""Excel formatında rapor oluşturur"""
with pd.ExcelWriter(dosya_adi, engine='openpyxl') as writer:

İlaç bilgileri

ilac_bilgileri_df = pd.DataFrame.from_dict(self.ilac_bilgileri, orient='index')
ilac_bilgileri_df.to_excel(writer, sheet_name='İlaç Bilgileri')

Ham veriler

for ilac, veri in self.veriler.items():
df = pd.DataFrame(veri)
df.to_excel(writer, sheet_name=f'{ilac} Ham Veri')

Analiz sonuçları

analiz_sonuclari = []
for ilac, sonuc in self.analiz_sonuclari.items():
analiz_sonuclari.append({
'İlaç': ilac,
'Ortalama Etki (%)': sonuc['ortalama_etki'],
'Güven Aralığı Alt': sonuc['güven_aralığı'][0],
'Güven Aralığı Üst': sonuc['güven_aralığı'][1],
'Standart Hata': sonuc['standart_hata']
})

analiz_df = pd.DataFrame(analiz_sonuclari)
analiz_df.to_excel(writer, sheet_name='Analiz Sonuçları', index=False)

ANOVA sonuçları

for ilac, sonuc in self.analiz_sonuclari.items():
anova_df = sonuc['anova']
anova_df.to_excel(writer, sheet_name=f'{ilac} ANOVA')

Tukey sonuçları

if 'tukey' in list(self.analiz_sonuclari.values())[0]:
tukey_df = pd.DataFrame(
data=self.analiz_sonuclari[list(self.analiz_sonuclari.keys())[0]]['tukey']._results_table.data[1:],
columns=self.analiz_sonuclari[list(self.analiz_sonuclari.keys())[0]]['tukey']._results_table.data[0]
)
tukey_df.to_excel(writer, sheet_name='Tukey HSD', index=False)

print(f"Excel raporu '{dosya_adi}' olarak kaydedildi.")

def rapor_olustur(self):
"""Konsol için rapor oluşturur"""
print("AHŞAP FÜMİGASYON DENEMESİ RAPORU")
print("=" * 50)
print(f"Rapor Tarihi: {datetime.now().strftime('%d/%m/%Y %H:%M')}")
print(f"Toplam İlaç Sayısı: {len(self.ilac_bilgileri)}")
print(f"Toplam Tekerrür Sayısı: {len(self.kontrol_verisi)}")

print("\nİSTATİSTİKSEL ANALİZ SONUÇLARI:")
print("-" * 40)
for ilac, sonuc in self.analiz_sonuclari.items():
print(f"\n{ilac} için Sonuçlar:")
print(f" Ortalama Etki: %{sonuc['ortalama_etki']:.2f}")
print(f" 95% Güven Aralığı: %{sonuc['güven_aralığı'][0]:.2f} - %{sonuc['güven_aralığı'][1]:.2f}")
print(f" Standart Hata: %{sonuc['standart_hata']:.4f}")

ANOVA sonuçları

print("\n ANOVA Sonuçları:")
anova_df = sonuc['anova']
for idx, row in anova_df.iterrows():
print(f" {idx}: F={row['F']:.4f}, p={row['PR(>F)']:.4f}")

Tukey HSD sonuçları

if 'tukey' in list(self.analiz_sonuclari.values())[0]:
print("\nTUKEY HSD TEST SONUÇLARI:")
print("-" * 30)
first_ilac = list(self.analiz_sonuclari.keys())[0]
tukey_df = pd.DataFrame(
data=self.analiz_sonuclari[first_ilac]['tukey']._results_table.data[1:],
columns=self.analiz_sonuclari[first_ilac]['tukey']._results_table.data[0]
)
print(tukey_df.to_string(index=False))

class BosAmbarDenemesi:
def __init__(self):
self.veriler = {}
self.ilac_bilgileri = {}
self.kontrol_verisi = {}
self.analiz_sonuclari = {}

def ilac_ekle(self, ticari_adi, firma, aktif_madde, miktar, formulasyon, doz):
self.ilac_bilgileri[ticari_adi] = {
'firma': firma,
'aktif_madde': aktif_madde,
'miktar': miktar,
'formulasyon': formulasyon,
'doz': doz
}

def veri_girisi(self, ilac_adi, tekerrur, zaman, canli, olu):
if ilac_adi not in self.veriler:
self.veriler[ilac_adi] = []

olum_orani = (olu / (canli + olu)) * 100 if (canli + olu) > 0 else 0

self.veriler[ilac_adi].append({
'tekerrur': tekerrur,
'zaman': zaman,
'canli': canli,
'olu': olu,
'olum_orani': olum_orani
})

def kontrol_verisi_ekle(self, zaman, canli, olu):
if zaman not in self.kontrol_verisi:
self.kontrol_verisi[zaman] = []

olum_orani = (olu / (canli + olu)) * 100 if (canli + olu) > 0 else 0

self.kontrol_verisi[zaman].append({
'canli': canli,
'olu': olu,
'olum_orani': olum_orani
})

def analiz_yap(self):
sonuclar = {}
tum_veriler = []

for ilac, veri in self.veriler.items():
df = pd.DataFrame(veri)

Kontrol verisini kullanarak Abbott düzeltmesi uygula

kontrol_ortalama = {}
for zaman, kontrol_veri in self.kontrol_verisi.items():
kontrol_ortalama[zaman] = np.mean([v['olum_orani'] for v in kontrol_veri])

df['abbot_etki'] = df.apply(
lambda row: abbot_duzeltmesi(
kontrol_ortalama.get(row['zaman'], 0),
row['olum_orani']
), axis=1
)

Regresyon analizi (doğrusal ve non-lineer)

X = df['zaman'].values
y = df['abbot_etki'].values

Doğrusal regresyon

X_const = sm.add_constant(X) # Sabit terim ekle
lineer_model = sm.OLS(y, X_const).fit()

Non-lineer regresyon (sigmoidal)

nonlineer_model = IstatistikselAnaliz.nonlineer_regresyon(X, y, sigmoidal_egri)

ANOVA testi

anova_model = ols('abbot_etki ~ C(zaman)', data=df).fit()
anova_table = sm.stats.anova_lm(anova_model, typ=2)

Güven aralıkları

n = len(df)
mean = df['abbot_etki'].mean()
sem = stats.sem(df['abbot_etki'])
ci = sem * stats.t.ppf((1 + 0.95) / 2, n - 1)

sonuclar[ilac] = {
'ortalama_etki': mean,
'güven_aralığı': (mean - ci, mean + ci),
'standart_hata': sem,
'lineer_regresyon': lineer_model,
'nonlineer_regresyon': nonlineer_model,
'anova': anova_table,
'raw_data': df
}

tum_veriler.append(df.assign(ilac=ilac))

Tüm ilaçlar için Tukey HSD testi

if len(tum_veriler) > 1:
tum_df = pd.concat(tum_veriler)
tukey_result = IstatistikselAnaliz.tukey_hsd_testi(tum_df, 'abbot_etki', 'ilac')

for ilac in sonuclar:
sonuclar[ilac]['tukey'] = tukey_result

self.analiz_sonuclari = sonuclar
return sonuclar

def excel_raporu_olustur(self, dosya_adi):
"""Excel formatında rapor oluşturur"""
with pd.ExcelWriter(dosya_adi, engine='openpyxl') as writer:

İlaç bilgileri

ilac_bilgileri_df = pd.DataFrame.from_dict(self.ilac_bilgileri, orient='index')
ilac_bilgileri_df.to_excel(writer, sheet_name='İlaç Bilgileri')

Ham veriler

for ilac, veri in self.veriler.items():
df = pd.DataFrame(veri)
df.to_excel(writer, sheet_name=f'{ilac} Ham Veri')

Analiz sonuçları

analiz_sonuclari = []
for ilac, sonuc in self.analiz_sonuclari.items():
analiz_sonuclari.append({
'İlaç': ilac,
'Ortalama Etki (%)': sonuc['ortalama_etki'],
'Güven Aralığı Alt': sonuc['güven_aralığı'][0],
'Güven Aralığı Üst': sonuc['güven_aralığı'][1],
'Standart Hata': sonuc['standart_hata'],
'Lineer R²': sonuc['lineer_regresyon'].rsquared,
'Non-lineer R²': sonuc['nonlineer_regresyon']['r2'] if sonuc['nonlineer_regresyon'] else 'Hata'
})

analiz_df = pd.DataFrame(analiz_sonuclari)
analiz_df.to_excel(writer, sheet_name='Analiz Sonuçları', index=False)

Regresyon sonuçları

for ilac, sonuc in self.analiz_sonuclari.items():
regresyon_df = pd.DataFrame({
'Katsayı': sonuc['lineer_regresyon'].params,
'Std. Hata': sonuc['lineer_regresyon'].bse,
't': sonuc['lineer_regresyon'].tvalues,
'P>|t|': sonuc['lineer_regresyon'].pvalues
})
regresyon_df.to_excel(writer, sheet_name=f'{ilac} Regresyon')

print(f"Excel raporu '{dosya_adi}' olarak kaydedildi.")

def rapor_olustur(self):
"""Konsol için rapor oluşturur"""
print("BOŞ AMBAR İLAÇLAMA DENEMESİ RAPORU")
print("=" * 50)
print(f"Rapor Tarihi: {datetime.now().strftime('%d/%m/%Y %H:%M')}")

print("\nİSTATİSTİKSEL ANALİZ SONUÇLARI:")
print("-" * 40)
for ilac, sonuc in self.analiz_sonuclari.items():
print(f"\n{ilac} için Sonuçlar:")
print(f" Ortalama Etki: %{sonuc['ortalama_etki']:.2f}")
print(f" 95% Güven Aralığı: %{sonuc['güven_aralığı'][0]:.2f} - %{sonuc['güven_aralığı'][1]:.2f}")
print(f" Standart Hata: %{sonuc['standart_hata']:.4f}")

Regresyon sonuçları

print("\n REGRESYON ANALİZİ:")
print(f" Lineer R²: {sonuc['lineer_regresyon'].rsquared:.4f}")
if sonuc['nonlineer_regresyon']:
print(f" Non-lineer R²: {sonuc['nonlineer_regresyon']['r2']:.4f}")

ANOVA sonuçları

print("\n ANOVA Sonuçları:")
anova_df = sonuc['anova']
for idx, row in anova_df.iterrows():
print(f" {idx}: F={row['F']:.4f}, p={row['PR(>F)']:.4f}")

Görselleştirme fonksiyonları

def fumigasyon_etki_grafigi(sonuclar, dosya_adi=None):
plt.figure(figsize=(12, 8))

ilaclar = list(sonuclar.keys())
etkiler = [sonuclar[ilac]['ortalama_etki'] for ilac in ilaclar]
hatalar = [sonuclar[ilac]['standart_hata'] for ilac in ilaclar]

bars = plt.bar(ilaclar, etkiler, yerr=hatalar, capsize=5, alpha=0.7)
plt.title('Fümigasyon Etki Oranları ve Standart Hatalar')
plt.ylabel('Etki Yüzdesi (%)')
plt.ylim(0, 100) # Y eksenini 0-100 arasında sabitle
plt.xticks(rotation=45)
plt.grid(True, alpha=0.3)

Değerleri çubukların üzerine yaz

for i, bar in enumerate(bars):
height = bar.get_height()
plt.text(bar.get_x() + bar.get_width()/2., height + 1,
f'{etkiler[i]:.1f}%', ha='center', va='bottom')

plt.tight_layout()

if dosya_adi:
plt.savefig(dosya_adi, dpi=300, bbox_inches='tight')
print(f"Grafik '{dosya_adi}' olarak kaydedildi.")

plt.show()

def ambar_zaman_etkisi_grafigi(sonuclar, dosya_adi=None):
plt.figure(figsize=(12, 8))

for ilac, sonuc in sonuclar.items():
df = sonuc['raw_data']
zaman_grubu = df.groupby('zaman')['abbot_etki'].agg(['mean', 'sem']).reset_index()

plt.errorbar(zaman_grubu['zaman'], zaman_grubu['mean'],
yerr=zaman_grubu['sem'], fmt='o-', label=ilac,
capsize=5, linewidth=2, markersize=8)

Non-lineer regresyon çizgisi

if sonuc['nonlineer_regresyon']:
model = sonuc['nonlineer_regresyon']
x_tahmin = np.linspace(min(zaman_grubu['zaman'])

Yorumlar

Başa Dön