Kazanimlar:
- Eksik veri türlerini (MCAR/MAR/MNAR), aykırı değerleri ve kodlama hatalarını tanıyıp yapay zekayı temizleme kodu ve teşhis üretmek için doğru veriyle kullanabilme
- Yapay zekanın önerdiği her temizleme adımının (silme, atama, dönüştürme) analiz sonucunu nasıl etkileyeceğini görüp geri döndürülebilir ve belgelenmiş bir iş akışı kurabilme
- Temizleme kararlarının veri üreten sürecin bilgisine dayandığını, yapay zekanın kör bir otomatı değil denetlenen bir asistan olduğunu koruyabilme
Deneyimli her analist bir gerçeği bilir: bir ampirik projenin zamanının çoğu modelleme değil, veri temizlemedir (verideki hataları, eksikleri ve tutarsızlıkları düzeltip analize hazır hâle getirme işi). Kaba bir kural olarak zamanın yaklaşık %70-80'i veriyi anlamaya, temizlemeye ve dönüştürmeye gider; yalnızca %20-30'u asıl analize kalır. Bu ünitede yapay zekanın (YZ) bu ağır yükü nasıl hafiflettiğini, ama hangi kararların neden hâlâ sizde kalması gerektiğini adım adım göreceğiz.
Önce iki temel gerçeği koyalım. Birincisi, temizleme kararları veri üreten süreç hakkındaki bilginize dayanır: bir değerin neden eksik olduğunu, bir sayının neden aşırı büyük olduğunu ancak siz bilirsiniz. YZ veriyi görmez, bağlamı bilmez; kod yazar, karar vermez. İkincisi, her temizleme adımı analiz sonucunu değiştirebilir. Bir aykırı değeri silmek katsayıyı ters çevirebilir; eksikleri ortalamayla doldurmak varyansı yapay olarak küçültebilir. Bu yüzden temizleme geri döndürülebilir ve belgelenmiş olmalıdır: ham veriye asla dokunmayın, her adımı kodla yapın, her adımın etkisini kaydedin.
Adım adım temizleme iş akışı
1. Veriyi tanı. Önce yapıyı görün: satır (gözlem) ve sütun (değişken) sayısı, her değişkenin türü (sayısal, kategorik, tarih), özet istatistikler, eksik sayısı. YZ'den bu "veri profili" kodunu isteyebilirsiniz; ama çıktıyı siz okur, "bu değişken neden metin olarak gelmiş" gibi soruları siz sorarsınız.
2. Eksik veriyi anla ve sınıflandır. Eksik veri üç türe ayrılır. MCAR (Missing Completely At Random — tamamen rastgele eksik): eksiklik hiçbir şeye bağlı değildir, örneğin bir sensör rastgele arızalanmıştır. MAR (Missing At Random — gözlenen değişkenlere bağlı rastgele eksik): eksiklik başka gözlenen değişkenlere bağlıdır, örneğin yaşlılar bir soruyu daha sık boş bırakır ama yaşı biliyorsunuz. MNAR (Missing Not At Random — rastgele olmayan eksik): eksiklik gözlenmeyen değerin kendisine bağlıdır, örneğin yüksek gelirliler gelirini bildirmez. Bu ayrım kritiktir çünkü çözüm yöntemini belirler ve YZ bunu sizin için karar veremez.
3. Eksikle başa çık. Seçenekler: satır silme (listwise deletion), ortalama/medyan atama (imputation), model tabanlı çoklu atama (multiple imputation). MCAR'da silme görece güvenlidir ama örneklemi küçültür. MAR'da çoklu atama daha uygundur. MNAR'da hiçbir basit yöntem yansızlığı garanti etmez; eksiklik mekanizması modellenmeli ya da en azından duyarlılık analizi yapılmalıdır. Ortalamayla doldurmak kolaydır ama tehlikelidir: varyansı düşürür, ilişkileri zayıflatır ve belirsizliği gizler.
4. Aykırı değerleri incele. Aykırı değer (outlier), diğerlerinden çok uzak duran gözlemdir. İki soruyu ayırın: Bu bir hata mı (veri girişinde yaş 999 yazılmış) yoksa gerçek ama uç bir değer mi (bir milyarderin geliri)? Hataları düzeltin; gerçek uç değerleri silmeyin, çünkü onlar veriyi temsil eder. Aykırı değeri "rahatsız ettiği için" silmek, veriyi sonuca göre eğmektir.
5. Kodlama ve tutarlılık. Kategorileri standartlaştırın ("Erkek", "erkek", "E" hepsi tek koda), tarihleri tek biçime, birimleri tek ölçeğe getirin, yinelenen (duplicate) satırları saptayın. Bu, YZ'nin en iyi yardımcı olduğu, en az riskli aşamadır.
6. Belgele ve dondur. Her adımı kodla ve yorum satırıyla kaydedin, ham ve temizlenmiş veriyi ayrı tutun. Böylece bir hakem "bu gözlemler neden düştü" diye sorunca cevabınız hazırdır.
Dikkat: Temizleme kararlarını sonuçlara bakarak vermeyin. "Bu satırı silince katsayı anlamlı oluyor" diye satır silmek, sonraki ünitede göreceğimiz p-hacking'in en sinsi biçimidir.
Karşılaştırma tablosu: eksik veri yöntemleri
Yöntem
Ne zaman uygun
Riski
YZ'nin rolü
Satır silme
MCAR, eksik oranı düşük
Örneklem daralır, MAR/MNAR'da yanlılık
Kodu yazar; kararı siz verirsiniz
Ortalama/medyan atama
Hızlı ön analiz
Varyansı düşürür, ilişkiyi gizler
Kolay ama önermez; uyarmalı
Çoklu atama (MI)
MAR, önemli değişkenler
Doğru kurulmazsa yanıltır
Kod ve paket önerir (mice)
Mekanizma modelleme
MNAR
Karmaşık, varsayım yoğun
Sadece taslak; uzman şart
Dört kopyalanabilir prompt
1. Veri profili çıkarma:
Rolün: veri temizleme asistanı. Veriyi paylaşmıyorum, R kodu istiyorum.Elimde 'hane' adlı bir data.frame var; değişkenler: id, yas (sayısal),gelir (sayısal), egitim (kategorik), bolge (kategorik), tarih (tarih).Görev: her değişken için tür, eksik sayısı ve oranı, sayısallarda özetistatistik, kategoriklerde sıklık tablosu üreten kod yaz. Yorum satırı ekle.
2. Eksik veri teşhisi:
Yukarıdaki 'hane' verisi için eksik desenini inceleyen kod yaz:- her değişkenin eksik oranı,- eksikliğin başka değişkenlerle ilişkisini gösteren basit tablo/grafik.Kodun çıktısına bakıp MCAR/MAR/MNAR ayrımını BEN yapacağım; sen sadeceteşhis aracı üret, atama yöntemine karar VERME.
3. Aykırı değer inceleme (silme değil):
'gelir' değişkeni için aykırı değerleri SİLMEDEN inceleyen kod yaz:kutu grafiği (boxplot), IQR tabanlı sınırlar ve uç gözlemlerinid + değerlerini listeleyen tablo. Ben bunların hata mı gerçek miolduğuna bakacağım. Otomatik silme ekleme.
4. Kodlama standartlaştırma:
'egitim' değişkeninde değerler karışık yazılmış: "İlkokul","ilkokul","İLK","Lise","lise ","Üniversite","univ". Bunları tutarlı kategorilereeşleyen (recode) R kodu yaz; eşleme tablosunu açıkça göster kiher dönüşümü ben onaylayayım. Tanımadığın değeri "BİLİNMİYOR" yap.
Zayıf prompt / Güçlü prompt
Zayıf prompt:
Verimi temizle, eksikleri doldur, aykırıları at.
Bu istem tehlikelidir: YZ'ye kör bir yetki verir. Hangi eksik türü, neye göre doldurma, hangi aykırı gerçek — hiçbiri belli değildir. Sonuç, gizlice yanlı bir veri seti olabilir.
Güçlü prompt:
Rolün: temizleme asistanı, karar verici değilsin.Adım adım ilerle ve HER adımda etkisini raporlayan kod yaz:1) eksik desenini göster (silme/doldurma YAPMA),2) aykırı adaylarını listele (silme YAPMA),3) kategori tutarsızlıklarını eşleme tablosuyla düzelt.Her adımdan sonra satır sayısını ve özet istatistiği yazdır kideğişimi ben görüp onaylayayım. Otomatik atama/silme ekleme.
Fark açık: güçlü istem YZ'yi denetlenen bir asistan olarak konumlandırır, geri döndürülebilir ve belgelenmiş adımlar üretir.
Üç mini vaka
Vaka 1 — Ortalama atama tuzağı. Bir analistin 5.000 kişilik gelir verisinde %18 eksik vardı. YZ'ye "eksikleri doldur" dedi; YZ hepsini ortalamayla doldurdu. Sonuç: gelirin varyansı %22 düştü, eğitim-gelir ilişkisinin katsayısı olduğundan zayıf çıktı. Doğru yol: eksiklik MAR'dı (eğitime bağlıydı), çoklu atama (mice) ile doldurulmalıydı. Ders: doldurma yöntemi mekanizmaya bağlıdır.
Vaka 2 — Aykırı değer temizliğinin bulguyu tersine çevirmesi. Bir firma verisinde 3 çok büyük firma (toplam gözlemin %0,6'sı) vardı. YZ'nin "temizlik" önerisiyle bunlar silindi; ölçek ekonomisi katsayısı pozitiften negatife döndü. Oysa o 3 firma gerçekti ve sektörün önemli parçasıydı. Doğru yol: silmek yerine hem tam hem de dirençli (robust) tahminle raporlamaktı. Ders: gerçek uç değerler veridir, gürültü değil.
Vaka 3 — Sessiz kodlama hatası. Bir panelde tarih değişkeni iki farklı biçimde ("2020-03-01" ve "01/03/2020") gelmişti. YZ'nin ürettiği birleştirme kodu bunları farklı değer sanınca 1.400 gözlem yanlış eşleşti ve büyüme oranları saçmalaştı. Analist satır sayısını kontrol etmeseydi fark etmeyecekti. Ders: her adımdan sonra gözlem sayısı ve akıl sağlığı kontrolü şart.
Sık yapılan hatalar
- Eksiği körü körüne ortalamayla doldurmak. Varyansı düşürür, belirsizliği gizler, MAR/MNAR'da yanlılık yaratır. Önce mekanizmayı sınıflandırın.
- Aykırı değeri "rahatsız ettiği için" silmek. Gerçek uç değerler veriyi temsil eder; silmek sonucu eğmektir. Hata olanı düzeltin, gerçek olanı tutun.
- Ham veriye dokunmak. Ham veriyi asla değiştirmeyin; tüm temizliği kodla, ayrı bir kopyada yapın ki geri dönülebilsin.
- Adımların etkisini ölçmemek. Her adımdan sonra satır sayısı ve özet istatistik kontrol edilmezse sessiz hatalar birikir.
- Sonuca göre temizlemek. "Bu satırı atınca sonuç güzelleşiyor" mantığı p-hacking'dir; temizleme analiz sonucundan önce ve ondan bağımsız planlanmalıdır.
İpucu: Temizlemeden önce ve sonra aynı temel istatistikleri (ortalama, medyan, gözlem sayısı, birkaç korelasyon) yan yana koyan bir "önce/sonra" tablosu tutun. Beklenmedik bir sıçrama, gizli bir hatanın en iyi habercisidir.
Özetle
Veri temizleme, ampirik işin en zaman alan ve en çok karar gerektiren aşamasıdır. YZ bu işte güçlü bir kod üretecidir ama kararları veremez: eksik veri türünü (MCAR/MAR/MNAR) siz sınıflandırır, aykırı değerin hata mı gerçek mi olduğunu siz belirler, her adımı geri döndürülebilir ve belgelenmiş biçimde tutarsınız. YZ'ye kör "temizle" yetkisi vermek yerine adım adım, etkisi ölçülen ve onaylanan bir iş akışı kurun. Her adımdan sonra gözlem sayısı ve özet istatistik kontrolü, sessiz hataların en iyi panzehiridir.
Uygulama görevi
Bir veri setinde (kendi verinizde ya da örnek bir sette) eksik ve aykırı değer içeren en az iki değişken seçin. YZ'den yukarıdaki "adım adım, silme/doldurma yapma" prompt'uyla bir teşhis kodu isteyin ve çalıştırın. Eksikliği MCAR/MAR/MNAR olarak sınıflandırın ve gerekçenizi bir cümleyle yazın. Aykırı adaylarını tek tek inceleyip hangisinin hata hangisinin gerçek olduğuna karar verin. Son olarak temizleme öncesi/sonrası bir "önce-sonra" tablosu üretip beklenmedik bir değişiklik olup olmadığını raporlayın.
Kontrol listesi
- [ ] Ham veriyi değiştirmeden ayrı bir kopyada temizledim.
- [ ] Eksikliği MCAR/MAR/MNAR olarak sınıflandırıp yöntemi buna göre seçtim.
- [ ] Aykırı değerlerin hata mı gerçek mi olduğunu tek tek inceledim; körü körüne silmedim.
- [ ] Her temizleme adımından sonra gözlem sayısı ve özet istatistiği kontrol ettim.
- [ ] Tüm adımları kodla ve yorum satırıyla belgeledim; geri döndürülebilir.
- [ ] Temizlemeyi analiz sonucuna değil, veri üreten süreç bilgisine dayandırdım.