Python ile Tez Veri Analizi: 2026 Adım Adım Rehber
Python ile tez veri analizi nasıl yapılır? Pandas, NumPy, Matplotlib ve SciPy kullanarak tez için istatistiksel analiz adımlarını öğrenin.
· 11 dk · 1613 kelime · Yazar: Tez Yazdır
Python ile tez veri analizi, son yıllarda akademik dünyada giderek yaygınlaşan bir yöntem hâline gelmiştir. SPSS ve R programına ek olarak; açık kaynaklı, esnek ve güçlü kütüphaneleri sayesinde Python, hem nicel hem de nitel destekli tez çalışmalarında tercih edilmektedir. Bu rehber; hangi kütüphanelerin kullanılacağını, verilerin nasıl temizleneceğini, istatistiksel testlerin nasıl uygulanacağını ve bulguların teze nasıl aktarılacağını adım adım açıklamaktadır. Eğer tez veri analizi yaptırma konusunda profesyonel destek almayı düşünüyorsanız da bu rehber sürecin içini anlamanızı sağlayacaktır.
Python ile Tez Veri Analizi Neden Tercih Edilir?
Geleneksel istatistik yazılımlarının aksine Python; ücretsiz, sürekli güncellenen ve binlerce hazır kütüphaneyle donatılmış bir programlama dilidir. Akademisyenler ve öğrenciler için öne çıkan başlıca nedenler şunlardır:
- Ücretsizdir: SPSS lisansı yüzlerce euro tutarken Python tamamen açık kaynaklıdır.
- Tekrar üretilebilirlik: Kod dosyası paylaşıldığında başka araştırmacılar analizleri birebir tekrarlayabilir.
- Esneklik: Tek platformda veri temizleme, görselleştirme, makine öğrenmesi ve istatistiksel test yapılabilir.
- Yayın avantajı: Önde gelen akademik dergiler artık Python ile üretilmiş analizleri ve görselleri tercih etmektedir.
- Büyük veri uyumu: SPSS'in zorlandığı büyük veri kümelerini Python rahatça işler.
Python Hangi Tez Türlerine Uygundur?
Python ile veri analizi her alanda kullanılabilmekle birlikte şu tez türlerinde özellikle güçlüdür:
| Tez Alanı | Kullanım Senaryosu |
|---|---|
| Sosyal bilimler | Anket verisi, frekans, korelasyon, regresyon |
| Sağlık bilimleri | Hayatta kalma analizi, sınıflandırma, ROC eğrisi |
| Mühendislik | Sinyal işleme, görüntü analizi, optimizasyon |
| İşletme / Finans | Zaman serisi analizi, portföy optimizasyonu |
| Psikoloji / Eğitim | Ölçek geçerliği, yapısal eşitlik, içerik analizi |
Python mu, SPSS mi, R mi?
Bu sorunun tek bir doğru yanıtı yoktur. Tercihinizi belirleyecek faktörler:
- SPSS: Arayüz tabanlı, öğrenmesi kolay, ancak ücretli ve büyük veri için yavaş.
- R: İstatistiksel güç bakımından çok zengin; akademik yayınlarda sıkça kullanılır.
- Python: Programlama bilgisi gerektirir; ancak çok yönlülük, otomasyon ve büyük veri işleme açısından üstündür.
Birden fazla aracı birlikte kullanmak da mümkündür; örneğin veri temizleme için Python, çıktı raporlaması için R Markdown tercih edilebilir.
Python Kurulumu ve Tez Analizi için Gerekli Kütüphaneler
Python ile tez çalışmasına başlamadan önce doğru ortamı kurmanız gerekir.
Python Ortamı Nasıl Kurulur?
En pratik başlangıç noktası Anaconda dağıtımıdır. Anaconda; Python, Jupyter Notebook ve veri bilimi kütüphanelerinin büyük çoğunluğunu tek kurulumda sağlar.
Kurulum adımları:
- anaconda.com adresinden işletim sisteminize uygun sürümü indirin.
- Kurulum sihirbazını takip edin (PATH eklemeyi seçin).
- Terminal / Anaconda Prompt açarak
jupyter notebookyazın. - Tarayıcıda açılan arayüzden yeni bir not defteri oluşturun.
Hangi Kütüphaneler Kullanılır?
pip install pandas numpy scipy matplotlib seaborn statsmodels scikit-learn
| Kütüphane | Kullanım Amacı |
|---|---|
| pandas | Veri okuma, temizleme, düzenleme |
| numpy | Matematiksel işlemler, dizi manipülasyonu |
| scipy | Hipotez testleri, istatistiksel dağılımlar |
| matplotlib | Temel grafik ve şekil oluşturma |
| seaborn | Gelişmiş istatistiksel görselleştirme |
| statsmodels | Regresyon, ANOVA, zaman serisi |
| scikit-learn | Makine öğrenmesi, kümeleme |
Jupyter Notebook Neden Tercih Edilir?
Jupyter Notebook, tez yazımında özellikle değerlidir; çünkü kod, açıklama metni ve görsel çıktılar aynı belgede bir arada bulunur. Danışmanınıza analiz sürecini anlatırken Notebook dosyasını (.ipynb) paylaşmanız yeterlidir.
Veri Temizleme: Tez Analizinin Temel Adımı
Ham veriler nadiren temiz gelir. Anket formlarındaki boş satırlar, aykırı değerler ve hatalı girişler analiz sonuçlarını ciddi biçimde bozabilir.
Eksik Veri Nasıl Tespit Edilir ve Yönetilir?
import pandas as pd
df = pd.read_excel("anket_verileri.xlsx")
# Eksik değerleri gör
print(df.isnull().sum())
# Satır bazında eksik veri oranı yüksekse sil (>%30)
df = df.dropna(thresh=len(df.columns) * 0.70)
# Sayısal değişkenlerde ortalama ile doldur
df['yas'].fillna(df['yas'].mean(), inplace=True)
# Kategorik değişkenlerde mod ile doldur
df['cinsiyet'].fillna(df['cinsiyet'].mode()[0], inplace=True)
Önemli: Eksik veri yönetim stratejinizi (silme, ortalama ile doldurma, çoklu atama) metodoloji bölümünde gerekçesiyle birlikte açıklamanız akademik bütünlük açısından zorunludur.
Aykırı Değer Analizi
import numpy as np
# IQR yöntemiyle aykırı değer tespiti
Q1 = df['puan'].quantile(0.25)
Q3 = df['puan'].quantile(0.75)
IQR = Q3 - Q1
alt_sinir = Q1 - 1.5 * IQR
ust_sinir = Q3 + 1.5 * IQR
aykirilar = df[(df['puan'] < alt_sinir) | (df['puan'] > ust_sinir)]
print(f"Aykırı değer sayısı: {len(aykirilar)}")
Değişken Dönüşümleri
Likert ölçeklerinden toplam puan hesaplamak, kategorik değişkenleri dummy'e dönüştürmek veya normal dağılım sağlamak için logaritmik dönüşüm uygulamak sık karşılaşılan işlemlerdir.
# Dummy dönüşümü
df = pd.get_dummies(df, columns=['egitim_durumu'], drop_first=True)
# Ters puanlama (Likert)
df['madde_3_ters'] = 6 - df['madde_3']
İstatistiksel Analizler: Scipy ve Statsmodels Kullanımı
Python ile tez veri analizi sürecinin kalbi, doğru istatistiksel testleri seçmek ve uygulamaktır.
Normallik Testi Nasıl Yapılır?
from scipy import stats
# Shapiro-Wilk testi (n < 50 için önerilir)
stat, p = stats.shapiro(df['puan'])
print(f"p-değeri: {p:.4f}")
if p > 0.05:
print("Normal dağılım varsayımı reddedilemez.")
else:
print("Veriler normal dağılmıyor; parametrik olmayan test kullanın.")
# Kolmogorov-Smirnov (n > 50)
stat, p = stats.kstest(df['puan'], 'norm')
Bağımsız Gruplar t-Testi
grup_A = df[df['grup'] == 'A']['puan']
grup_B = df[df['grup'] == 'B']['puan']
t_istatistik, p_degeri = stats.ttest_ind(grup_A, grup_B)
print(f"t = {t_istatistik:.3f}, p = {p_degeri:.4f}")
Korelasyon Analizi
# Pearson (parametrik)
r, p = stats.pearsonr(df['motivasyon'], df['performans'])
print(f"r = {r:.3f}, p = {p:.4f}")
# Spearman (parametrik olmayan)
rho, p = stats.spearmanr(df['motivasyon'], df['performans'])
Tek Yönlü ANOVA
import statsmodels.api as sm
from statsmodels.formula.api import ols
model = ols('puan ~ C(grup)', data=df).fit()
anova_tablosu = sm.stats.anova_lm(model, typ=2)
print(anova_tablosu)
Çoklu Doğrusal Regresyon
from statsmodels.formula.api import ols
model = ols('bagimsiz ~ bagimli1 + bagimli2 + bagimli3', data=df).fit()
print(model.summary())
Model özetinde R², düzeltilmiş R², F istatistiği ve her bağımsız değişkenin p-değeri yer alır. Bu değerleri tez bulgular bölümünüze tablo hâlinde aktarın.
Görselleştirme: Tez İçin Grafik Hazırlama
Bulgular bölümünde kullanılacak grafiklerin yayın kalitesinde olması beklenir. Python bu konuda SPSS'e kıyasla çok daha esnek imkânlar sunar.
Dağılım Grafiği (Histogram ve Kutu Grafiği)
import matplotlib.pyplot as plt
import seaborn as sns
fig, axes = plt.subplots(1, 2, figsize=(12, 5))
sns.histplot(df['puan'], kde=True, ax=axes[0], color='steelblue')
axes[0].set_title('Puan Dağılımı')
sns.boxplot(x='grup', y='puan', data=df, ax=axes[1])
axes[1].set_title('Gruplara Göre Puan')
plt.tight_layout()
plt.savefig('grafik.png', dpi=300, bbox_inches='tight')
İpucu: Tezinizde kullanacağınız görselleri en az 300 DPI çözünürlükte kaydedin.
dpi=300parametresi bunu otomatik olarak sağlar.
Korelasyon Isı Haritası (Heatmap)
korelasyon = df[['degisken1', 'degisken2', 'degisken3']].corr()
plt.figure(figsize=(8, 6))
sns.heatmap(korelasyon, annot=True, cmap='coolwarm', vmin=-1, vmax=1)
plt.title('Değişkenler Arası Korelasyon Matrisi')
plt.savefig('korelasyon_haritasi.png', dpi=300)
Regresyon Çizgi Grafiği
sns.lmplot(x='motivasyon', y='performans', data=df, ci=95)
plt.title('Motivasyon ve Performans İlişkisi')
plt.savefig('regresyon_grafigi.png', dpi=300)
Python Çıktılarını Teze Aktarma
Analiz sonuçlarını tezinizde doğru biçimde raporlamak için birkaç önemli nokta vardır.
Tablo Biçimlendirme
# Özet istatistikleri tablo olarak dışa aktar
ozet = df[['degisken1', 'degisken2']].describe().round(2)
ozet.to_excel('ozet_istatistikler.xlsx')
Dışa aktarılan tabloyu Word veya LaTeX formatına uygun biçimde tezinize ekleyin.
Sonuçları Raporlamada APA Standardı
- t-testi: t(df) = değer, p = değer, Cohen's d = değer
- ANOVA: F(dfgruplar arası, dfgruplar içi) = değer, p = değer, η² = değer
- Korelasyon: r(n) = değer, p = değer
- Regresyon: R² = .xx, F(df1, df2) = değer, p = değer
Analiz Güvenilirliği İçin Seed Kullanın
Rastgele sayı üreten işlemlerde (örnekleme, train-test split) seed sabitleyin; böylece kodunuzu her çalıştırdığınızda aynı sonucu elde edersiniz ve teziniz tekrar üretilebilir olur.
import numpy as np
np.random.seed(42)
Tez Danışmanına Python Analizi Nasıl Sunulur?
Danışmanınız Python bilmese bile analizlerinizi kolayca açıklayabilirsiniz:
- Jupyter Notebook'u HTML olarak dışa aktarın:
File → Download as → HTML. Danışmanınız kodu çalıştırmadan görselleri ve sonuçları görebilir. - Adım adım yorum ekleyin: Her kod bloğunun üstüne Markdown hücresinde ne yaptığınızı Türkçe açıklayın.
- Bulguları tablolara dönüştürün: Ham Python çıktısı yerine düzenlenmiş Excel tabloları sunun.
- Grafiklerinize başlık ve eksen etiketleri ekleyin: Türkçe başlıklı, okunabilir görseller danışmanın güvenini artırır.
Eğer tez veri analizi yaptırma konusunda uzman desteğe ihtiyaç duyuyorsanız, doğru istatistiksel yöntemi seçmek ve tez bölümlerinize uygun biçimde raporlamak için profesyonel destek almak da seçenekleriniz arasındadır.
Güç Analizi: Örneklem Büyüklüğünü Python ile Hesaplama
Tez metodoloji bölümünde örneklem büyüklüğünün gerekçelendirilmesi akademik zorunluluktur. Python'ın statsmodels kütüphanesi güç analizi için kapsamlı araçlar sunar.
Güç Analizi Neden Yapılır?
Güç analizi (power analysis), belirtilen bir etki büyüklüğünü tespit edebilmek için kaç katılımcıya ihtiyaç duyulduğunu matematiksel olarak hesaplar. Yetersiz örneklem gerçek etkileri gözden kaçırırken (tip II hata), gereğinden büyük örneklem kaynakları israf eder.
from statsmodels.stats.power import TTestIndPower, FTestAnovaPower
# Bağımsız gruplar t-testi için örneklem büyüklüğü
analiz = TTestIndPower()
n = analiz.solve_power(effect_size=0.5, power=0.80, alpha=0.05)
print(f"Her grupta gereken katılımcı sayısı: {n:.0f}")
# ANOVA için
anova_guc = FTestAnovaPower()
n_anova = anova_guc.solve_power(effect_size=0.25, power=0.80, alpha=0.05, k_groups=3)
print(f"Her grupta gereken katılımcı sayısı (ANOVA): {n_anova:.0f}")
Cohen (1988) tarafından belirlenen etki büyüklüğü standartları şöyledir:
| Test | Küçük | Orta | Büyük |
|---|---|---|---|
| t-testi (Cohen's d) | 0.20 | 0.50 | 0.80 |
| ANOVA (f) | 0.10 | 0.25 | 0.40 |
| Korelasyon (r) | 0.10 | 0.30 | 0.50 |
| Regresyon (f²) | 0.02 | 0.15 | 0.35 |
Güç Analizini Teze Nasıl Yazarsınız?
Metodoloji bölümünüze şu gibi bir cümle ekleyin:
"Araştırmanın örneklem büyüklüğü, orta düzey etki büyüklüğü (d = 0.50), 0.80 istatistiksel güç ve α = 0.05 anlamlılık düzeyi için Python'daki statsmodels kütüphanesi kullanılarak hesaplanmış; her grup için en az 64 katılımcı belirlenerek toplamda 128 kişilik örneklem oluşturulmuştur."
Python ile Yapısal Eşitlik Modellemesi
Sosyal bilimler ve psikoloji tezlerinde yaygın kullanılan yapısal eşitlik modellemesi (YEM) için Python'da semopy kütüphanesi kullanılabilir.
semopy Kütüphanesi ile YEM
pip install semopy
import semopy
model_tanimlama = """
# Ölçüm modeli
Motivasyon =~ m1 + m2 + m3 + m4
Performans =~ p1 + p2 + p3
# Yapısal model
Performans ~ Motivasyon
"""
model = semopy.Model(model_tanimlama)
model.fit(df)
print(model.inspect())
YEM'de model uyum indekslerini kontrol edin: CFI ≥ 0.95, TLI ≥ 0.95, RMSEA ≤ 0.06, SRMR ≤ 0.08 olması beklenir. Bu eşiğe ulaşmak için model modifikasyonu yapılabilir; ancak teorik gerekçe olmadan yapılan her değişiklik metodoloji bölümünde gerekçelendirilmelidir.
Sık Yapılan Hatalar
| Hata | Çözüm |
|---|---|
| Normallik testi yapmadan parametrik test uygulamak | Her analizden önce Shapiro-Wilk veya K-S testi yapın |
| Çok sayıda test yaparak tip I hata şişirmek | Bonferroni düzeltmesi veya FDR kontrolü uygulayın |
| Aykırı değerleri açıklamadan silmek | Metodolojide gerekçelendirin |
| Düşük örneklemle güç analizi yapmamak | G*Power veya Python'ın statsmodels.stats.power modülünü kullanın |
| Grafikleri düşük çözünürlükte kaydetmek | Her zaman dpi=300 kullanın |
| Seed kullanmadan rastgele işlem yapmak | np.random.seed(42) ile sonuçları tekrar üretilebilir yapın |
Python ile tez veri analizi sürecinde doğru kütüphaneleri kullanmak, veri temizliğine özen göstermek ve bulguları akademik standartlara uygun raporlamak başarının anahtarıdır. Yüksek lisans tez yazdırma veya doktora tez yazdırma süreçlerinizde profesyonel veri analizi desteği almak istiyorsanız ekibimizle WhatsApp üzerinden iletişime geçebilirsiniz.
Bu konuda profesyonel destek
Bu yazıdaki konularda akademik danışmanlık almak isterseniz, aşağıdaki hizmetlerimizi inceleyebilir veya WhatsApp üzerinden bizimle iletişime geçebilirsiniz.