Think Stats kitabının üçüncü baskısını Bookshop.org ve Amazon üzerinden edinebilirsiniz (bunlar satış ortaklığı bağlantılarıdır). Ücretsiz çevrimiçi sürümü beğeniyorsanız bana bir kahve ısmarlamayı düşünebilirsiniz.
Önsöz#
İstatistik tarihinin en başından beri, istatistiğin ne olduğuna ilişkin iki farklı görüş var. Bir görüşe göre istatistik, olasılık ve istatistiksel çıkarıma kuramsal bir temel oluşturmayı amaçlayan bir matematik dalıdır. Diğer görüşe göre ise verilerle çalışmak, soruları yanıtlamak ve daha iyi kararlar vermek için kullanılan araç ve uygulamalar bütünüdür. İstatistiğe giriş derslerinin çoğu ilk görüşü temel alır. Bu kitap ise ikinci görüşü temel alıyor.
Think Stats; verileri keşfetmeye ve görselleştirmeye, ilişkileri ve eğilimleri ortaya çıkarmaya ve sonuçları aktarmaya yönelik pratik yöntemlere giriş niteliğindedir. Kitabın düzeni, bir veri kümesiyle çalışmaya başladığımda izlediğim süreci takip ediyor:
İçe aktarma ve temizleme: Veri hangi biçimde olursa olsun, onu okumak, temizleyip dönüştürmek ve dönüştürme sürecinden her şeyin eksiksiz geçtiğini doğrulamak genellikle zaman ve emek ister.
Tek değişkenli incelemeler: Genellikle işe değişkenleri tek tek inceleyerek başlarım; değişkenlerin ne anlama geldiğini belirler, değerlerin dağılımlarına bakar ve uygun özet istatistikleri seçerim.
İkili incelemeler: Değişkenler arasındaki olası ilişkileri belirlemek için tablolara ve saçılım grafiklerine bakar, korelasyonları ve doğrusal uyumları hesaplarım.
Çok değişkenli analiz: Değişkenler arasında belirgin ilişkiler varsa kontrol değişkenleri eklemek ve daha karmaşık ilişkileri incelemek için çoklu regresyon kullanırım.
Tahmin ve hipotez testi: İstatistiksel sonuçları bildirirken üç soruyu yanıtlamak önemlidir: Etki ne kadar büyük? Aynı ölçümü yinelersek ne kadar değişkenlik beklemeliyiz? Gözlenen etkinin rastlantıdan kaynaklanması makul mü?
Görselleştirme: Keşif sırasında görselleştirme, olası ilişkileri ve etkileri bulmak için önemli bir araçtır. Gözlenen etki ayrıntılı incelemeden geçerse görselleştirme, sonuçları aktarmanın da etkili bir yoludur.
Bu kitap hesaplamalı bir yaklaşım benimsiyor. Bu yaklaşımın matematik ağırlıklı yöntemlere göre çeşitli üstünlükleri var:
Çoğu fikri matematiksel gösterim yerine Python koduyla sunuyorum. Python kodu genellikle daha kolay okunur; ayrıca çalıştırılabilir olduğu için kodu çalıştırıp değiştirerek kavrayışınızı geliştirebilirsiniz.
Her bölüm, öğrendiklerinizi sınayıp pekiştirebileceğiniz alıştırmalar içeriyor. Program yazarken kavrayışınızı kodla ifade edersiniz; programdaki hataları ayıklarken kendi anlayışınızı da sınamış olursunuz.
Bazı alıştırmalarda istatistiksel davranışı sınamak için deneyler yapılır. Örneğin rastgele örneklemler üretip toplamlarını hesaplayarak Merkezi Limit Teoremi’ni (Central Limit Theorem, CLT) keşfedebilirsiniz. Ortaya çıkan görselleştirmeler, CLT’nin neden çalıştığını ve hangi durumlarda çalışmadığını gösterir.
Matematiksel olarak kavranması zor olan bazı fikirleri simülasyonla anlamak kolaydır. Örneğin rastgele simülasyonlar çalıştırarak p-değerlerini yaklaşık olarak hesaplarız; bu da hipotez testinin anlamını pekiştirir.
Kitap genel amaçlı bir programlama dilini (Python) temel aldığı için hemen her kaynaktan veri aktarabilirsiniz. Belirli bir istatistik aracı için temizlenip biçimlendirilmiş veri kümeleriyle sınırlı kalmazsınız.
İstatistiksel analize yaklaşımımı göstermek için örneklerde ve alıştırmalarda çeşitli kaynaklardan alınan verileri kullanıyorum. Bu kaynaklar arasında şunlar var:
ABD Hastalık Kontrol ve Önleme Merkezleri (U.S. Centers for Disease Control and Prevention, CDC) tarafından “aile yaşamı, evlilik ve boşanma, gebelik, kısırlık, doğum kontrolü kullanımı ile kadın ve erkek sağlığı hakkında bilgi toplamak” amacıyla yürütülen National Survey of Family Growth (NSFG; Ulusal Aile Büyümesi Araştırması). (Bkz. https://www.cdc.gov/nchs/nsfg/index.htm.)
Kronik Hastalıkları Önleme ve Sağlığı Geliştirme Ulusal Merkezi (National Center for Chronic Disease Prevention and Health Promotion) tarafından “ABD’deki sağlık durumlarını ve riskli davranışları izlemek” amacıyla yürütülen Behavioral Risk Factor Surveillance System (BRFSS; Davranışsal Risk Faktörü Gözetim Sistemi). (Bkz. http://cdc.gov/BRFSS/.)
Antarktika’daki Palmer İstasyonu yakınlarında yaşayan bir penguen örnekleminden alınan ölçümleri içeren Palmer Penguins veri kümesi (bkz. https://allisonhorst.github.io/palmerpenguins/).
ABD Enerji Bilgi İdaresinin (U.S. Energy Information Administration, EIA) ABD’de yenilenebilir kaynaklardan elektrik üretimine ilişkin verileri.
Bu verileri toplayıp kullanıma açan kişi ve kurumlara minnettarım. Farklı alanlardan gerçek verilerle çalışmanın kitabı okuyucular için daha ilgi çekici kılacağını umuyorum.
Neler değişti?#
Üçüncü baskıyı hazırlamaya kitabı Jupyter notebook’larına taşıyarak başladım. Bu değişiklik hemen fark edilen bir yarar sağlıyor: Metni okuyabilir, kodu çalıştırabilir ve alıştırmalar üzerinde tek bir yerde çalışabilirsiniz. Notebook’lar Google Colab’da çalışacak şekilde tasarlandığı için hiçbir şey kurmadan başlayabilirsiniz.
Notebook’lara geçişin başka bir yararı daha var: Kodun tamamı artık daha görünür. İlk iki baskıda kodun bir kısmı kitapta, bir kısmıysa çevrimiçi destek dosyalarındaydı. Geriye dönüp baktığımda içeriği bu şekilde bölmenin pek iyi bir tercih olmadığını ve kodu gereğinden fazla karmaşıklaştırdığını görebiliyorum. Üçüncü baskıda kodu sadeleştirip daha okunabilir hâle getirebildim.
Son baskının yayımlanmasından bu yana istatistiksel dağılımları temsil eden nesneler sağlayan empiricaldist adlı bir kütüphane geliştirdim.
Bu kütüphane artık daha olgun olduğu için güncellenen kod ondan daha fazla yararlanıyor.
Bu projeye başladığımda NumPy ve SciPy bugünkü kadar yaygın değildi; Pandas ise çok daha az kullanılıyordu. Bu nedenle özgün kodda liste ve sözlük gibi Python veri yapıları yer alıyordu. Bu baskıda diziler ve Pandas yapıları kapsamlı biçimde kullanılıyor; ayrıca bu kütüphanelerin sağladığı fonksiyonlardan daha fazla yararlanılıyor.
Üçüncü baskı, özgün baskıyla aynı konuları hemen hemen aynı sırayla ele alıyor; ancak metin büyük ölçüde yenilendi. Örneklerin bazıları yeni, bazılarıysa yeni verilerle güncellendi. Yeni alıştırmalar hazırladım, eskilerden bazılarını gözden geçirdim ve birkaçını çıkardım. Güncellenen alıştırmaların örneklerle daha bağlantılı ve daha ilgi çekici olduğunu düşünüyorum.
İlk baskıdan bu yana bu kitap, matematikle açıklanması zor olan pek çok fikrin kodla daha kolay açıklanabileceği savına dayanıyor. Bu baskıda bu yaklaşımı daha da ileri götürdüm; öyle ki kitapta neredeyse hiç matematiksel gösterim kalmadı.
Genel olarak bu değişikliklerin Think Stats’i daha iyi bir kitap hâline getirdiğini düşünüyorum. Umarım beğenirsiniz!
Kodu kullanmak#
Bu Türkçe sürümde kullanılan kod ve veriler, GitHub’daki TerekliTahaBerk/thinkstatstr adresinde bulunan bir Git repository’sinde sunuluyor. Orijinal İngilizce kaynak AllenDowney/ThinkStats adresindedir. Git, bir projeyi oluşturan dosyalardaki değişiklikleri izlemeye yardımcı olan bir sürüm kontrol sistemidir. Git’in denetimindeki dosya koleksiyonuna repository denir. GitHub ise Git repository’leri için depolama alanı ve kullanışlı bir web arayüzü sağlayan barındırma hizmetidir.
Repository’de kitabın her bölümü için metni, kodu ve kodun çalıştırılmasıyla elde edilen sonuçları içeren bir Jupyter notebook’u bulunur. Kodu çalıştırmak ve alıştırmalar üzerinde çalışmak için bu notebook’ları kullanabilirsiniz.
Notebook’ları iki şekilde çalıştırabilirsiniz. Açık ara daha kolay olanı, Google’ın sunduğu Colab hizmetini kullanmaktır. Colab’da bilgisayarınıza hiçbir şey kurmadan notebook’ları bir web tarayıcısında çalıştırabilirsiniz. Türkçe çevirinin TerekliTahaBerk/thinkstatstr adresindeki ana sayfasında, Colab ve Jupyter notebook’larını tanıtan giriş de dâhil olmak üzere bütün notebook bağlantılarını bulabilirsiniz.
Colab kullanmak istemiyorsanız notebook’ları indirip kendi bilgisayarınızda çalıştırabilirsiniz. Ancak bunun için Python ve Jupyter ile birlikte NumPy, SciPy ve StatsModels dâhil olmak üzere kitapta kullanılan kütüphaneleri kurmanız gerekir. Yazılım kurma deneyiminiz varsa notebook’ları çalıştırabileceğiniz bir ortam hazırlamak zor değildir. Bu deneyime sahip değilseniz ilk denemeniz zorlayıcı, hatta zaman zaman can sıkıcı olabilir. Bu durum kitaptan tam anlamıyla yararlanmanızın önünde bir engele dönüşebilir. Amacınız Python ile keşifsel veri analizi öğrenmekse zamanınızı ve zihinsel enerjinizi yazılım kurmaya harcamak istemezsiniz!
Bu nedenle en azından ilk birkaç bölümü Colab’da çalıştırmanızı özellikle öneriyorum. Daha sonra kendi ortamınızı kurmak isterseniz bunu kitaptaki ilerlemenizi kesintiye uğratmadan yapabilirsiniz. Son bir öneri: Yazılım kurarken sorun yaşarsanız ChatGPT gibi araçlardan yararlanın; bu konularda genellikle iyi yönlendirmeler sunarlar.
Bu kitabı, okuyucunun nesne yönelimli özellikler dâhil olmak üzere Python’ın temel konularına aşina olduğunu varsayarak yazdım. NumPy ve Pandas’ı biliyorsanız bunun yararı olur, ancak gerekli değil; bilmeniz gerekenleri açıklayacağım. Ayrıca okuyucunun logaritmalar ve toplam gösterimi gibi temel matematik konularını bildiğini varsayıyorum. Doğrusal cebir veya kalkülüs bilmeniz gerekmiyor. Kitabın bir yerinde türevlerden ve integrallerden söz ediyorum; bu kavramlara aşina değilseniz o kısım tamamen isteğe bağlıdır. Son olarak, istatistik hakkında herhangi bir ön bilgiye sahip olduğunuzu varsaymıyorum.
Teşekkürler#
Kitabın önceki baskılarına düzeltme ve önerileriyle katkıda bulunan okuyuculara ve daha ham taslaklara katlanmak zorunda kalan Olin College öğrencilerine teşekkür ederim.
Bu baskının teknik incelemesini yapan Zachary del Rosario, Jerzy Wieczorek, Thomas Nield, Walter Paczkowski ve Peter Bruce’a çok teşekkür ederim.
O’Reilly Media’daki herkese, özellikle editörler Sara Hunter ve Aaron Black’e teşekkür ederim.
Orijinal eser: Think Stats: Exploratory Data Analysis in Python, 3rd Edition
Telif hakkı 2024 Allen B. Downey
Türkçe çeviri: ThinkStatsTr
Kod lisansı: MIT License
Metin lisansı: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International