Excel'de hazırlanan bir veri SPSS'e aktarıldığında bazen tüm değerler "system missing" (sistem eksik değeri) görünüyor, tarihler sayıya dönüyor ya da bir sütun beklenmedik kategorilere bölünüyor. Bunların kaynağı çoğu zaman SPSS değil, Excel'i bir "veri tablosu" gibi kullanma alışkanlığıdır.
Aşağıdaki 9 hata ve pratik çözümleri, aktarımda sık karşılaşılan sorunları kapsıyor. Aktarım sürecinin kendisini adım adım görmek isterseniz Excel'den SPSS'e veri aktarımı rehberimize bakabilirsiniz.
1. Birleştirilmiş hücrelerin felaketi
Excel'de tablo başlığını güzel göstermek için üç hücre birleştirilir, altına "Hasta No", "Yaş", "Cinsiyet" sütun adları yazılır ve SPSS'te "Open Data" ile içe aktarılır. Varsayılan ayarda SPSS ilk satırı değişken adı sayar; birleştirilmiş başlık satırı ad satırı olur, gerçek sütun adları ("Hasta No", "Yaş", "Cinsiyet") ise ilk hasta satırına düşer.
SPSS'e aktarılacak Excel dosyasında birleştirilmiş hücre olmamalı. İlk satır sadece değişken adları içermeli, arada boş satır bulunmamalı. Basit ama sıklıkla gözden kaçan bir kural.
2. Tarih formatı kâbusu
Excel'de doğum tarihi "15.03.1985" yazıyor ama SPSS'e aktarınca "31121" gibi bir sayı çıkıyor.
Excel tarihleri "1 Ocak 1900'den bu yana kaç gün geçti" olarak tutuyor; sütun tarih yerine düz sayı olarak gelince görünen sayı bu gün sayısı oluyor. SPSS ise tarihleri "14 Ekim 1582'den bu yana kaç saniye geçti" şeklinde tuttuğu için biçimi tarihe çevirmek bu sayıyı doğru tarihe dönüştürmüyor.
En güvenli yaklaşım tarihleri Excel'de üç ayrı sütuna bölmek: dogum_gun, dogum_ay, dogum_yil. SPSS'te gerekirse COMPUTE komutuyla birleştiriliyor: DATE.MDY(dogum_ay, dogum_gun, dogum_yil). Hantal görünüyor ama tarih hatası riskini en aza indiriyor.
3. "Evet / Hayır / boş" karışması
"Diyabet var mı?" sorusuna bazı hastalar "Evet", bazıları "Hayır" demiş, 15 hastada cevap yok ve o 15 hücre Excel'de boş bırakılmış.
SPSS'e aktarınca sayısal bir sütundaki boş hücreler "system missing" olur, ama sütun metin olarak gelirse boş hücre geçerli bir "boş metin" sayılır ve eksik diye tanınmaz; hücre boş görünse de içinde biçimle gizlenmiş bir 0 ya da 0 döndüren bir formül varsa değer 0 olarak gelir. Böylece diyabeti olmayan ile cevap vermeyen karışıyor; frekans tablosu ve yüzdeler yanlış çıkıyor.
Çözüm, kategorik değişkenleri sayıya kodlamak (0=Hayır, 1=Evet), eksik veriyi boş bırakmak ya da "99" gibi özel bir kod vermek ve SPSS'te Missing Values tanımı yapmak. Böylece "gerçekten hayır" ile "bilmiyoruz" ayrışıyor.
4. Ondalık ayracı: virgül mü, nokta mı?
Türkiye'de ondalık ayracı virgül. Excel'de sayı olarak saklanan "12,5" SPSS'e sorunsuz geçer; sorun, değer Excel'de metin olarak durduğunda ya da veri CSV/metin dosyasıyla aktarıldığında çıkar. Bu durumda SPSS değeri "125" olarak okuyabiliyor ya da metin (string) olarak algılayıp ortalama alamıyor.
Pratikte en güvenli yol sayıları Excel'de metin değil sayı olarak saklamak; veri CSV ile aktarılıyorsa içe aktarma penceresinde "Decimal symbol" olarak virgülü seçmek ya da SET DECIMAL=COMMA komutunu kullanmak da işe yarıyor.
5. Gizli karakterler ve boşluklar
Hastanın yaşı " 45 " biçiminde (başta ve sonda boşlukla) girilmişse sonuç, sütunun geri kalanına bağlı. Sütunun çoğu sayıysa SPSS değişkeni sayısal yapıyor ve bu tür değerleri sessizce eksik veriye çeviriyor; sütun metin olarak gelirse frekans tablosunda "45" ve " 45 " ayrı kategoriler oluşturabiliyor.
Excel'de formülle hesaplanan bir sütunda #DIV/0! veya #VALUE! hataları varsa, sütun sayısal geldiğinde SPSS bunları sessizce eksik veriye çeviriyor.
Temizlik adımları: Excel'de Find & Replace ile gereksiz boşlukları temizlemek, formül sütunlarını "Paste Special > Values" ile değerlere dönüştürmek ve "Go To Special > Blanks" ile boş hücreleri tespit edip düzeltmek.
6. Tek satıra çoklu gözlem sığdırmak
Bir hastanın 4 kontrolü varsa ve Excel'de Sütun A hasta no, Sütun B-E sırasıyla 1., 2., 3., 4. kontrol HbA1c olarak yazılmışsa, veri geniş formattadır (wide). SPSS'te Repeated Measures ANOVA tam da bu düzeni ister; sorun, aynı veriyle karma model (Mixed Models) kurulmak istendiğinde çıkar, çünkü bu yordam her ölçümün ayrı satırda olduğu uzun formatı (long) bekler.
Bu durumda veriyi uzun formata çevirmek gerekiyor; her kontrol ayrı satırda, sütunlar hasta_no, kontrol_sayisi ve hba1c_degeri olur. Excel'de bunu elle yapmak saatler alır; SPSS'te Data > Restructure menüsü ya da Python'da pandas melt fonksiyonu işi dakikalara indiriyor. Hangi formatın gerektiğine kullanılacak analiz karar veriyor.
7. Kategorik değişkeni "scale" olarak bırakmak
Eğitim durumu 1=İlkokul, 2=Ortaokul, 3=Lise, 4=Üniversite olarak kodlanmış ama SPSS bunu "scale" (sürekli) değişken olarak algılamışsa, ortalama hesaplandığında 2,7 gibi bir sayı çıkıyor.
Bu sayı hiçbir anlam ifade etmiyor; "ortalama eğitim düzeyi 2,7" diye bir kavram yok.
SPSS'te Variable View'da Measure (ölçüm düzeyi) sütununu "Nominal" veya "Ordinal" yapmak ve Value Labels eklemek iyi bir başlangıç; ama ölçüm düzeyi ne olursa olsun SPSS ortalama hesaplayabildiği için asıl önlem, analizi değişkenin türüne göre seçmek. Sıralı değişkense Spearman korelasyonu, kategorikse ki-kare. İstatistik testi seçim rehberimiz bu ayrımı detaylı anlatıyor.
8. Metin (string) tutarsızlıkları
"Cinsiyet" sütununda çoğu zaman şunlar bir arada görülür: Erkek, erkek, E, e, ERKEK, Erke (yazım hatası). SPSS bunları 6 farklı kategori olarak algılıyor ve frekans tablosu kaotik hâle geliyor.
En sağlam önlem, veri toplamadan önce kodlama yapmak: 1=Erkek, 2=Kadın. Veri zaten toplandıysa Find & Replace ile standartlaştırmak; Excel'de Data Validation ile açılır liste (dropdown) oluşturmak gelecekte bu sorunu önlüyor.
Tüm kategorik değişkenler için anket veri kodlama rehberindeki gibi bir kodlama sözlüğü (codebook) oluşturmak hem veri toplayana yol gösteriyor hem kendi kontrolünüzü kolaylaştırıyor.
Uyarı
Excel'de "Auto-correct" ve "Auto-format" özellikleri bazen veriyi sessizce bozuyor. Türkçe tarih ayarında "1/2" yazınca Excel bunu "1 Şubat" yapıyor. İngilizce ayarlı Excel'de ise "MARCH1" gibi gen adları "1 Mart" tarihine dönüyor. Ziemann ve arkadaşlarının (2016) gösterdiği gibi, önde gelen genomik dergilerinde ek dosyasında Excel gen listesi yayımlayan makalelerin yaklaşık beşte birinde bu tür gen adı bozulmaları var. Excel'in yeni sürümlerinde File > Options > Data altındaki otomatik veri dönüştürme seçenekleri kapatılabiliyor; "1/2" gibi ayraçlı değerler için ise sütunu önceden metin biçimine almak gerekiyor.
9. "Toplam" satırını unutmak
Excel'de güzel bir tablo yapılıp en alta "Toplam" satırı eklenmişse, SPSS'e aktarınca bu satır bir hasta olarak algılanıyor.
300 hastanın ortalama yaşı 60 ise toplam 18.000 eder; bu "hasta" 301. satırda 18.000 yaşında gözüküyor ve ortalama yaş birden 60'tan yaklaşık 120'ye fırlıyor. Küçük bir ayrıntı ama analizi tamamen bozuyor.
SPSS'e aktarmadan önce toplam ve ortalama satırlarını silmek yeterli; SPSS zaten her şeyin toplamını ve ortalamasını kendisi hesaplıyor.
Genel kural: 1 saat hazırlık, 10 saat tasarruf
Klinik araştırma deneyimimize göre veri toplama aşamasında yapılan bir saatlik dikkatli hazırlık, analiz aşamasında saatlerce zaman kazandırıyor.
Veri toplama formunu hazırlarken kategorik değişkenleri sayısal kodlamak, tarihleri gün/ay/yıl olarak ayrı sütunlara almak, ondalıklarda tutarlı bir ayraç kullanmak ve değişken adlarını kısa, net ve Türkçe karaktersiz tutmak neredeyse tüm aktarım sorunlarını baştan önlüyor.
Model İstatistik olarak veri aktarım sürecinde ve sonrasında araştırmacılara destek sağlıyoruz; veri kontrolünden analiz raporlamasına kadar tüm süreci birlikte yürütüyoruz. Veri ne kadar temiz gelirse, analiz o kadar güvenilir çıkıyor.
Kullanılan kaynaklar
- Ziemann M, Eren Y, El-Osta A. Gene name errors are widespread in the scientific literature. Genome Biology. 2016;17(1):177. · DOI