L02-P05-M04-D05
Çapraz Doğrulama
Fonksiyonel Tıp Akademisi — L02, Matematik, İstatistik, Kimya ve Biyofizik Temelleri · 1.897 kelime · 1 kanıt kartı · ≈ 9 dk okuma · 14 dk dinleme
Açılış sahnesi
Ocağın son perşembesi, akşamüstü altıya yirmi var. Üniversite hastanesinin personel otoparkında Şeyma'nın eski arabası çalışıyor, ön camın buzu kenarlardan içeri doğru yavaş yavaş çözülüyor. Makbule Hanım yolcu koltuğunda, dizinde il sağlık müdürlüğünden gelen bir zarf. Müdürlük ilçe yazışmasına cevap verirken araya bir tanıtım dosyası eklemiş: bir firma, 80 hastanın kanında 500 belirteç taramış, en güçlü on tanesiyle bir başvuru risk puanı kurmuş ve on katlı çapraz doğrulamada C istatistiğini 0,90 bulmuş.
"Bu çapraz doğrulama, senin kan merkezinde çalıştırdığın şeyin kardeşi değil mi?" diyor Makbule Hanım, dosyanın son sayfasını kaldırarak. "Onlar da verinin bir kısmını saklayıp sınamışlar. O zaman 0,90'a neden güvenmeyelim?" Şeyma sileceği bir kez çalıştırıyor. "Önce kendi tablomuzda on parçaya bölelim," diyor, "sonra bu dosyada seçimin nerede yapıldığını soralım".
Bu derste ne olacak
Hastaları k gruba ayırıp her grubu sırayla sınamaya gönderen yöntemin adımlarını kuracak, kat başına kaç hasta ve kaç olay düştüğünü hesaplayacaksın. Olay sıklığı düşükken katların neden katmanlı kurulduğunu, kat sayısının kestirimi hangi yönde kaydırdığını ve ne kadar oynattığını göreceksin. Değişken seçimi katların dışında yapıldığında saf gürültünün bile yüksek bir C verebildiğini, ayar parametresi seçilirken neden iç içe bir düzen gerektiğini inceleyeceksin.
Metin
On parça, on model
İç doğrulama dersinde Şeyma tabloyu bir kez ikiye bölmüş, sınama parçasına yalnız 56 olay düşmüştü. Çapraz doğrulama bu israfı her hastayı bir kez sınamaya göndererek giderir. Hastalar rastgele on kata dağıtılır. Önce bir kat kenara ayrılır, model kalan dokuz katta baştan kurulur ve ayrılan katın hastalarında ölçülür. Sonra sıradaki kat ayrılır ve model yine sıfırdan kurulur; on tur bitince her hasta tam bir kez, kendisini görmemiş bir modelle öngörülmüş olur.
Tablodaki sayılar bölmenin ölçüsünü veriyor. Kat başına hasta 1.012 ÷ 10 = 101,2; katların ikisinde 102, sekizinde 101 hasta var. Her turda model yaklaşık 911 hastada kuruluyor, yani tablonun onda dokuzunda. Olaylarda 176 ÷ 10 = 17,6, katların altısına 18, dördüne 17 olay düşüyor. Geliştirme kümesinde her turda 158 ya da 159 olay kalıyor; bölmedeki 120'nin çok üstünde.
Şeyma her turda makalenin yöntemini tamamıyla çalıştırıyor: 23 adayı tek tek süzen ön eleme, en zayıfı birer birer atan ayıklama, son katsayılar. On katın C değerleri 0,766, 0,722, 0,699, 0,791, 0,891, 0,749, 0,807, 0,749, 0,814 ve 0,735. Toplamları 7,722, ortalamaları 7,722 ÷ 10 ≈ 0,772. On kattaki öngörüler tek sütunda birleştirilip bir kez ölçüldüğünde de C 0,772 çıkıyor. İç doğrulama dersinde bootstrap bu tabloya 0,766 demiş, 200.000 yeni hastada ölçülen değer 0,736 olmuştu.
Kat C'lerinin 0,699 ile 0,891 arasında dolaşması kaygı vermemeli. Yüz hastalık bir katta yalnız 17 ya da 18 olay var ve bu kadar olayla ölçülen C doğal olarak oynar; ortalama, on küçük sınamanın ortak kestirimidir.
Olaylar katlara eşit düşmeli
Kat ataması tamamen rastgele yapılırsa olayların dağılımı da rastlantıya kalır. Şeyma bir kez de öyle bölüyor: olaylar katlara 17, 23, 10, 14, 18, 17, 21, 18, 20 ve 18 olarak düşüyor. Bin ayrı rastgele bölüşte en az olaylı katın ortanca değeri 12, en çok olaylınınki 23; uçlarda 6 olaylı kat da, 33 olaylı kat da çıkıyor.
Kaç kat
k küçüldükçe her turdaki geliştirme kümesi küçülür. İki katta model yalnız 506 hastayla kurulur ve tam veriyle kurulacak modelden kötüdür; kestirim bu yüzden kötümserdir. Altmış ayrı benzetim tablosunda iki katlı çapraz doğrulama gerçek C'nin ortalamada yaklaşık 0,016 altında kaldı; beş ve on katta sapma sıfıra yakındı. Nokta tahmini dersinde (L02-P04-M02-D04) yanlılığı azaltmanın çoğu zaman genişliği artırdığını görmüştün. Burada da kat sayısını büyütmek yanlılığı azaltıyor ama oynaklığı kendiliğinden küçültmüyor.
Kat sayısının en uç hâli, her hastanın kendi başına bir kat olmasıdır. Model 1.011 hastada kurulur, tek hastada sınanır ve bu 1.012 kez tekrarlanır.
Altmış tabloda birini dışarıda bırakmanın hata dağılımı on katlınınkinden dar çıkmadı, biraz daha genişti. Bir sorun daha var. Tek hastalık bir katta C hesaplanamaz, çünkü C bir olaylı ile bir olaysız hastanın çiftini ister; öngörüler ancak birleştirilince ölçülebilir. Şeyma'nın tablosunda bu yolla C 0,777.
Tek bir on katlı bölüş de şansa açıktır, çünkü hangi hastanın hangi kata düştüğü sonucu biraz oynatır. Şeyma bölüşü yirmi kez değiştirip her seferinde on katlı çapraz doğrulamayı yineliyor. Yirmi ortalama 0,763 ile 0,778 arasında, genel ortalama 0,770. Tekrarlı k-katlı çapraz doğrulama bu bölüş oynaklığını törpüler; tablonun kendine özgü şansını ise gidermez.
Seçim katların içinde kalmalı
Firmanın dosyası seçimin nerede yapıldığını yazmıyor. Seçim 80 hastanın tamamında bir kez yapılıp çapraz doğrulama yalnız katsayılara uygulandıysa, sınama katındaki hastalar belirteçler seçilirken zaten oylarını kullanmıştır.
Şeyma aynı büyüklükte bir tablo kuruyor ve bilerek saf gürültü koyuyor: 40 olaylı, 40 olaysız hasta, sonuçla hiçbir ilgisi olmayan 500 rastgele belirteç. En güçlü on belirteç bütün hastalarda seçilip sonra on katlı çapraz doğrulama yapılınca C 0,901 çıkıyor. Seçim her turda yalnız dokuz katta yinelenince aynı tabloda C 0,599'a düşüyor. İki yüz ayrı gürültü tablosunda ortalamalar 0,848 ve 0,501; doğru yapılan sınama yazı turayı buluyor.
Christophe Ambroise ile Geoffrey McLachlan 2002'de PNAS'ta yayımlanan "Selection bias in gene extraction on the basis of microarray gene-expression data" makalesinde bu hatayı gen ifadesi çalışmalarında gösterdiler. Birkaç genle sıfıra yakın hata bildiren sonuçlarda seçim çapraz doğrulamanın dışında kalmıştı; seçim her turda yinelenince hata sıfır olmaktan çıktı. Makalenin başlığındaki "seçim yanlılığı", epidemiyolojide çalışmaya kimin girdiğinden doğan yanlılıkla aynı adı taşısa da başka bir süreçtir.
Şeyma'nın gerçek sinyal taşıyan tablosunda aynı hatanın payı daha küçük. Yedi değişken bütün tabloda bir kez seçilip yalnız katsayılar katlarda kurulunca C 0,779; seçim katların içinde yinelenince 0,772. Fark 0,779 − 0,772 = 0,007. Hatanın büyüklüğü aday sayısıyla, hasta sayısının azlığıyla ve gerçek sinyalin zayıflığıyla büyür.
Yaygın yanlış"Model on katlı çapraz doğrulamayla doğrulandı, bu yüzden C güvenilir".
Değişkenler bütün veride seçildiyse sınama katının hastaları seçime katılmıştır ve çapraz doğrulama yalnız katsayı kestiriminin iyimserliğini ölçer. Saf gürültüden kurulan bir model bile bu yolla 0,90 alabilir.
İç içe düzen
Seçimin bir akrabası ayar parametresidir. Şeyma bu kez yöntemi değiştiriyor: adayları tek değişkenli p değerlerine göre sıralayıp en güçlü m tanesini modele koyuyor ve m için dokuz değer deniyor. Her m için on katlı çapraz doğrulama çalıştırıp en iyisini seçiyor; altı değişkenle C 0,767. Ama bu 0,767, dokuz sonucun en büyüğü olarak seçildi. Dokuz aday arasından en iyi görüneni seçmek, aşırı uyum dersindeki gürültüyü öğrenme hatasını bu kez m için yapmaktır.
Şeyma dış döngüde yine on kat kuruyor. Her turda dokuz katın içinde beş katlı bir iç döngü çalışıyor ve m'yi yalnız o dokuz katın verisiyle seçiyor. On dış turda seçilen m değerleri 4 ile 18 arasında değişiyor; iç içe kestirim 0,755. Tek döngünün 0,767'si 0,012 daha yüksek; son modelin 100.000 yeni hastada ölçülen gerçek C'si 0,728. Altmış tabloda tek döngülü kestirim gerçek değeri ortalama 0,007 aştı, iç içe kestirim 0,004 altında kaldı; tabloların 58'inde tek döngü iç içeden yüksekti.
Sudhir Varma ile Richard Simon 2006'da BMC Bioinformatics'te yayımlanan "Bias in error estimation when using cross-validation for model selection" çalışmasında iki sınıf arasında hiçbir fark olmayan veri setlerinde parametreyi çapraz doğrulamayla ayarladılar. Ayarlanmış sınıflandırıcının çapraz doğrulama hatası bazı veri setlerinde yüzde otuzun altına indi; bağımsız sınama verisinde ise şanstan iyi değildi. İç içe düzen yanlılığı büyük ölçüde giderdi.
Aynı hasta iki satırda
Makalenin 1.012 hastası 391 başvuru yapmıştı. Veri başvuru düzeyinde tutulup satırlar katlara rastgele dağıtılırsa aynı hastanın bir başvurusu geliştirmeye, ötekisi sınamaya düşebilir. Model o hastanın yaşını, BKİ'sini ve kan değerlerini zaten görmüştür; sınama yeni bir hastayı değil, tanıdık birini ölçer. Katlar hasta düzeyinde kurulmalı: bir hastanın bütün satırları aynı kata gider.
Bootstrap ile yan yana
Bu tabloda bootstrap 0,766, on katlı çapraz doğrulama 0,772 demişti; gerçek değer 0,736'ydı. Seçimi her turda yineleyen iki yöntem birbirine yakın sonuç verdi ve ikisi de tablonun kendine özgü şansını göremedi, çünkü ikisi de aynı 1.012 hastanın içinde dönüyordu. İç doğrulama dersinde anılan Steyerberg karşılaştırmasında bootstrap daha verimli bulunmuştu. Çapraz doğrulamanın artısı başka yerde: bootstrap modelini, kurulduğu hastaların çoğunu da içeren özgün veride ölçerken çapraz doğrulama yalnız gerçekten dışarıda kalmış hastaları ölçer ve iç içe düzene doğal biçimde uyar.
Otoparka dönüş
Ön cam artık açık, Şeyma motoru rölantide bırakıp dosyanın yöntem sayfasını okuyor. Seçim üzerine tek cümle var: "belirteçler istatistiksel anlamlılıklarına göre seçildi". Nerede seçildikleri yazmıyor. Makbule Hanım telefonuna müdürlük için birkaç satır yazıyor: firma, on belirtecin çapraz doğrulamanın her turunda yeniden seçilip seçilmediğini ve katların hasta düzeyinde kurulup kurulmadığını belgelemeli; bu belgelenmeden 0,90 değerlendirilemez.
Şeyma vitese takmadan bir satır daha ekliyor: seksen hastada kırk olaydan çıkan bir C de oynaktır, doğru yapılmış olsa bile bir dış doğrulama gerekir. Makbule Hanım zarfı torpido gözüne koyarken gülüyor: "Buz çözülene kadar bir firmayı çözdük".
Kendini sına
- 1.012 hasta ve 176 olay on kata bölünürse kat başına kaç hasta ve kaç olay düşer? Her turda model kaç hastayla kurulur?
- On katın C'leri 7,722 toplamını veriyor. Kat ortalaması nedir, tek bir katın 0,891 çıkması ne söyler?
- Olay sıklığı düşükken katların katmanlı kurulması neden önemlidir? 6 ve 33 olaylı iki kattaki C'yi karşılaştır.
- İki katlı çapraz doğrulama neden kötümserdir? Birini dışarıda bırakma neden daha az oynak olmaz, tek hastalık katta C neden hesaplanamaz?
- Saf gürültüden kurulan bir modelin çapraz doğrulamada 0,90 alması için hangi adım yanlış yapılmış olmalıdır?
- Dokuz m değeri arasından çapraz doğrulamayla en iyisini seçip o değeri raporlamak neden iyimserdir? İç içe düzende m hangi veride seçilir?
- Aynı hastanın üç başvurusu varsa katlar nasıl kurulmalıdır? Kurulmazsa kestirim hangi yöne sapar?
Bir sonraki derse köprü
Bu dersin bütün sayıları bir C'ydi: on katın ortalaması, iç içe düzenin kestirimi, firmanın 0,90'ı. AUC'nin sınırları dersi bu sayının kendisini sorgulayacak: ROC eğrisinin altındaki alan hiçbir karar eşiği seçmeden neyi özetler, eşiğin çevresindeki hastalar hakkında neyi söylemez? Aynı AUC'ye sahip iki model klinikte farklı sonuç doğurabilir mi, ve iyi bir modelin üstüne konan yeni belirteç AUC'yi neden bu kadar az kıpırdatır?
Anlamadığın bir yer mi var?
Mentor yalnız bu dersin metnine dayanarak cevap verir. Metinde geçmeyen bir şey sorarsan uydurmaz, geçmediğini söyler.