R’ın istatistiksel analizler konusundaki gücünden bahsetmiştik. Şimdi bunu pekiştirmek adına bu yazıda R kullanarak ki-kare bağımsızlık testi gerçekleştirmeyi ve iki değişken arasındaki ilişkinin varlığını test etmeyi anlatacağım. İki değişkenin birbirinden bağımsız olması demek, ikisi arasında ilişki olmaması ve birbirlerinin sonuçlarını etkilememeleri demektir. Tam tersi bağımlı olmaları ise, birinin sonucunun diğerini etkileyeceğini gösterir. Ki-kare bağımsızlık testi, işte bu ilişkinin var olup olmadığını test eder. Gerekli hipotezler kurularak ilişkinin varlığı ya da bir diğer deyişle iki değişkenin birbirinden bağımsız olup olmadığı araştırılır. Bu testin aşamalarına yazı boyunca tabii ki değineceğim. Her istatistiksel analizden veya testten önce, ilgili değişkenler hakkında genel bilgiler edinmek en doğrusudur. Değişkenlerin özet istatistikleri çıkartılarak sayısal olarak, grafikler yardımıyla ise görsel olarak genel nitelikleri tespit edilmeli ve buna göre hareket edilmelidir. Bu yazıda bu aşama da önemli bir yer tutacak ve asıl teste geçmeden önce bunu uygulayacağım.

Fakat en başta belirtilmesi gereken bir nokta var. Bu nokta, istatistikte çok kritik bir yer tutar. İlişki, her zaman nedensellikten kaynaklanmaz. Bu şu anlama geliyor; iki değişken arasında ilişki olduğunu tespit etmemiz, birinin diğerinin nedeni olduğunu kanıtlamaz. Arada bu durumu etkileyen başka değişkenler de olabilir ve değişimin sebebi bunlardan da kaynaklanabilir. Tespit edilen ilişkinin nedensel olup olmadığını söylemek sadece uygun çalışma tipi seçildiğinde mümkündür. Bu noktada kafa karışıklığı olduysa eğer, açıklayacağım. Çalışmalar ikiye ayrılır; gözlemsel ve deneysel çalışmalar. Gözlemsel çalışmalarda verinin ortaya çıkış aşamasıyla doğrudan alakadar olunmadığı ve sadece ortaya çıktıktan sonra veri gözlemlenerek veri setine alındığı için, gözlemsel çalışmalarda ilişkiyi etkileyen bazı görünmez değişkenler olabilir ve tespit edilen ilişki direkt olarak nedenselliğe atfedilemez. Deneysel çalışmalarda ise, verinin ortaya çıkış şekliyle doğrudan alakadar olunur ve “bloklama” adı verilen bir mantık kullanıldığı için görünmez değişkenlerin etkisi minimuma indirilir. Bu tip çalışmalarda tespit edilen ilişkilerin nedenselliğe atfedilmesi mümkündür. Bu anlattıklarım biraz kafa karışıklığına sebep olmuş ve tam olarak anlaşılamamış olabilir :)) Bu noktada çalışma tiplerini ve bunların arasındaki farkları detaylıca araştırmanızı tavsiye ederim. Çünkü bu nokta istatistikte çok kritiktir.

Bu kadar sıkıcı teorik bilgiden sonra, yazıya devam etmek sanırım en doğrusu. Kullanacağım verisetinden ve özellikle kullanacağım değişkenlerden bahsedeyim. Veriseti, GSS(General Social Survey)’in verisetilerinden bir tanesi. Buradan GSS’nin internet sitesine ulaşabilir ve sağ taraftaki “GSS Data set” kısmından verisetlerine ulaşabilirsiniz. Verisetini incelemeye geçmeden önce, verisetinin elde edilme metodolojisine bakmamız gerekiyor ki üstte bahsettiğimiz konu hakkında fikir sahibi olalım. GSS’nin anketlerinde kullandığı metodolojiye de buradan ulaşabilirsiniz. Fakat okumanıza gerek yok, ben kısaca bahsedeyim. GSS anketlerinde “Rastgele Örnekleme” kullanmaktadır ki bu da bizim bu analiz bitiminde ulaşacağımız sonuçların, örneklemden genel popülasyona genelleştirilmesinin mümkün olduğunu göstermektedir. Fakat üstte de bahsettiğimiz gibi çalışma deneysel bir çalışma olmadığından dolayı, nedensellik kurmamız mümkün değil. Sadece ilişkisellik sonucuna ulaşabiliriz. Ona da ulaşıp ulaşamayacağımız test sonucunda belli olacak. Devam edelim.

Öncelikle gerekli paketleri yükleyelim ve kullanacağımız veriyi R üzerine aktaralım.

1

Verisetinin adı “gss” olduğundan dolayı “load” komutu ile veriyi R üzerine attım. “library” komutunun işlevini bir önceki yazımda gösterdiğim için bu noktada anlatmaya gerek yok.  Veriseti hakkında genel bir fikir sahibi olmak için aşağıdaki komutu kullanalım.

2

“str” komutu, çok işe yarayan bir komuttur. Verisetini genel olarak bize anlatır ve hakkında fikir sahibi olmamızı sağlar. Sonucu aşağıdaki gibi:
3

Verisetinin tipinin “Data Frame”olduğu ve 57061 gözlemden, 114 tane de değişkenden oluştuğu bildiriliyor. Düzenli bir verisetinin en belirgin özelliği budur. Sütunlarda değişkenler, satırlarda gözlemler olmalıdır. Bazı verisetleri bu kurala uymaz. Bu tarz verisetleri bu kurala uyar hale getirilmeli çünkü bu analizin de doğru sonuç vermesini sağlar. İstatistiksel analiz çalışmalarında en önemli aşama verisetini analize uygun hale getirmektir. Devam edecek olursak, değişkenlerin tipinin ne olduğu ve ilk birkaç gözlemini de görebiliyoruz bu komutun sonucunda. Örneğin “age” değişkeninin türünün “int” yani tamsayı olduğu, ayrıca gözlemlerin de 23, 70, 48… olarak gittiği. Bu şekilde veriseti hakkında genel bir fikir sahibi olduktan sonra, kullanacağımız değişkenleri seçelim ve tanıtalım.

Veriseti içerisinden “class” ve “degree” değişkenlerini kullanacağız. Tanımlarını aşağıda veriyorum:

class: kişini kendi bakış açısına göre ekonomik sınıfı

degree: kişinin eğitim seviyesi

Biz bu çalışmada ikisi arasında bir ilişki kurup kuramayacağımızı araştıracağız. Teste geçmeden önce, ilgileneceğimiz değişkenleri incelemenin faydalı olacağını yukarıda söylemiştim. Değişkenleri inceleyelim:
4

“str” komutundan yukarıda bahsetmiştik. “summary” komutu ise adından da anlaşılabileceği gibi değişkenin bir özetini sunar. Sonuca bakarak çok daha rahat anlaşılacaktır:
5

“$” işaretinin bir verisetinin bir kolonunu kullanabilmek için kullanıldığından bahsetmştik. “class” değişkeninin “factor” tipinde olduğu görülüyor. “factor” tipi aslında R’da kategorik değişkenlere karşılık gelir. Göreceğiniz gibi 5 farklı sınıf ve birde NA(Not Available) gözlemler var. Bunların kayıp kayıtlar olduğunu da düşünebilirsiniz. “summary” fonksiyonunun sonucunda her sınıfta kaç gözlem/kişi olduğunu görüyoruz. Aynı işlemi “degree” değişkeni için de yapalım:

6

7

Aynı şekilde “degree” değişkeni de bir kategorik değişken ve 5 sınıfı olduğu görülüyor. Biz burada aslında iki kategorik değişken arasındaki ilişkiyi inceliyoruz. Bu da bize ki-kare dağılımını ve yöntemini kullanmak için bir ipucu veriyor. Tabii ki birçok yöntemle bu ilişki analiz edilebilir, fakat biz burada ki-kare’yi kullanmayı seçtik. Veriyi anlamanın iki şekilde gerçekleştiğinden yukarıda bahsetmiştim. Öncelikle özet istatistikler çıkartılarak, daha sonra da grafikler kullanılarak görsel yoldan veri anlaşılmaya çalışılır. Fakat bu noktada söylemem gereken bir şey var. NA’ların olduğu bir veride, özet istatistikleri hesaplamak mümkün değildir. Çünkü sizin de tahmin edebileceğiniz gibi matematiksel hesaplamalar NA’lar ile gerçekleştirilemez. Bu yüzden özet istatistikleri hesaplayabilmek için öncelikle veri içerisindeki NA’ları filtreleyip, daha sonra hesaplama yaptırılmalıdır. Bu noktada bir soru sorayım? Özet istatistikleri bu değişkenler için hesaplayabilir miyiz? Cevap hayır. Çünkü bunlar nümerik değil, kategorik değişkenler. Sayısal değerleri olmadığı için üzerlerinde matematiksel hesaplamalar yapılamaz. Sayısal değerlerle kodlanabilirler fakat o sayısal kodlarla aritmetik işlemleri yapmak da mantıksızdır bu yüzden kategorik değişkenler için özet istatistikler hesaplanmaz. Fakat her sınıfta kaç gözlem olduğunu görebilir ve bunu görselleştirebiliriz.

8

Üstteki kod bloğundaki “%>%” işaretinin ne anlama geldiğini bir önceki yazımda anlatmış ve soldaki nesneyi sağdaki fonksiyonun ilk argümanına atadığını söylemiştim. Kod öncelikle “gss” verisetini alıyor ve “filter” fonksiyonunun içerisine sokuyor. Bir diğer deyişle filtreliyor. Neye göre filtrelediği ise parantez içerisinde yazıyor. “!” işareti R’da olumsuzluk veya değili anlamına gelmektedir. Yani “gss” verisetini “class” değişkeni “NA” olmayan değerlere göre filtrele diyoruz aslında. “is.na” fonksiyonu bir değerin NA olup olmadığını kontrol eder. “!” ile beraber kullanıldığında ise NA olmayanlar anlamını verir. Filtrelenen verisetini “group_by” ifadesiyle yine “class” değişkenine göre grupluyoruz. En sonunda da “summarise” fonksiyonu devreye giriyor. Bu fonksiyon verisetinin özetini çıkarır. Burada “summarise” içerisinde “n()” fonksiyonunu kullanmam şu anlama geliyor: gruplama sonucunda oluşan her bir gruptaki gözlem sayısını bul ve “Adet” adında bir kolon yaratarak ona at. Sonuçta oluşan veri şu şekilde olur:

9

Bahsettiğim gibi “Adet” kolonunun adını ben verdim ve her grubun adedi de o kolon altında hesaplanmış durumda. Bu işlem, değişkenin seviyeleri arasındaki genel dağılımı görmemize yardımcı oldu. Bir de bunu görselleştirirsek daha iyi olur. Kategorik değişkenleri görselleştirmenin en iyi yollarından biri bar grafiklerdir. Aşağıdaki kod ile bu değişkenin bar grafiğini oluşturalım.

10

Grafik üzerinde NA’ları görmek istemediğim için yine verisetini bunlara göre filtreledim. Unutmamak gerekir ki bu işlemi her seferinde yeniden yapmak yerine, bir kere yapıp bir nesneye atayıp sürekli onu da kullanabilirdim. Fakat ben filtreleme işlemini özellikle göstermek istediğimden bu şekilde yapıyorum. Buna ek olarak, bir verisetinde NA bulunan tüm satırları tek seferde elemenin de yolu var. Fakat bu şu an bu yazının konusu olmadığı için, değinmeyeceğim. Üstteki kod bloğu NA’ları filtreledikten sonra x eksenine class değişkenini koyarak bir bar grafik oluşturuyor. Bunun bir benzerini bir önceki yazımda da göstermiştim. Burada “fill = class” kısmı, grafiğin içini yine aynı değişlenle doldurmak istediğimi gösteriyor. Bunun farklı bir versiyonunu, yazı ilerlediğinde yapacağım. Oluşan grafik şöyle:

11

Peki “fill” kısmını kullanmasaydım ne olurdu? Aşağıda göstereyim.

12

Gördüğünüz gibi barların içi renksizleşirdi. Aslında biz “fill = class” derken, koda barların içini class değişkeninin her bir seviyesine farklı renk vererek doldurmasını söylüyoruz. Grafiği yorumlayacak olursak, sorulara cevap verenlerden en büyük kısmının çalışan sınıfta olduğunu görüyoruz. Aynı şekilde orta sınıf da onlara yakın. Düşük sınıf, ilk ikisine göre oldukça geride kalırken en az sayıda gözlem bulunduran sınıf ise üst sınıf. Aslında bu sonuçlar bekleneni yansıtıyor. Diğer değişken için de bir görselleştirme gerçekleştirelim:

13

Grafik:

14

Burada da en yüksek gözlem sayısı Lisede. Anketin daha çok lise öğrencileri ile yapıldığı görülüyor. Diğer sınıfların miktarını da açıklamaya gerek yok. Şimdi, biraz daha farklı bir şey yapalım. İki değişken arasındaki ilişkiye bakmak istediğimiz için, ikisini birlikte inceleyelim. İkisinin birbirleri içindeki dağılımlarını sayısal ve görsel olarak görelim. Aşağıdaki kodlar ile bunu yapacağız.

15

Bu kod bloğunun tek farkı, iki değişkene göre filtrelemiş ve sonrasında gruplamış olmam. Bu sayede ikisinin birbirleri içerisindeki dağılımını göreceğim.

16

Örneğin, düşük ekonomik sınıftaki lise öğrencisi sayısı 1450 iken, çalışan ekonomik sınıftaki lise öğrencisi sayısı 14407 olarak görülüyor. Bu sayılara bakmak fikir yürütmemize ve tahminler yapmamıza yardımcı olabilir, fakat sadece sayılara bakarak karar verilmesi yanıltıcı olur. Mutlaka bir istatistiksel test gerçekleştirilmelidir. Bu tabloyu görsele dökelim;

17

Buradaki “fill” argümanına dikkat edelim. Bu sefer x eksenine “class” değişkenini koyduktan sonra, içerisini “degree” değişkeni ile dolduruyorum. Bu da bana “class” değişkeninin sınıfları içerisinde “degree” değişkeninin dağılımını gösterecek.

18

Grafiğe ilk bakıldığında belirgin farklar görülebiliyor. Fakat sınıfların gözlem sayıları birbirinden farklı olduğu için, sayılara bakarak karar vermek yanıltıcı olur. Burada belirleyici olan yüzdelerdir. Örneğin, düşük ve yüksek ekonomik sınıflardaki lise öğrencisi yüzdeleri nedir? Arada nasıl bir fark vardır? Geldik son bölüm olan çıkarım yapma bölümüne. Çıkarım yapmak için, istatistiksel bir analiz süreci geçirilmelidir. Yani başta da söylediğim gibi, burada ki-kare testi yapacağız. Bu testte kullanacağım değişkenleri, sadece onları tutmak amacıyla farklı bir nesneye alıyorum ve tablo haline getiriyorum.

19

Burada istediğim değişkenleri verisetinden “$” işareti ile alarak, onlardan oluşan bir tabloyu “table” fonksiyonunu kullanarak yaratıyorum ve bunu da “Tbl_Değişleneler” adında bir nesneye atıyorum. Bu nesneyi konsolda çağırdığımda ise karşıma aşağıdaki tablo geliyor:
20

Gördüğünüz gibi “table” fonksiyonu bize anlaşılması kolay, güzel görünen oldukça sade bir tablo veriyor. Bu tablo analiz edilmeye ve teste tabi tutulmaya son derece hazır. Artık test aşamasına geçebiliriz.

Çıkarım yapmadan önce bir kez daha hatırlatalım. İlişki tespit etmemiz, bu iki değişkenin birbirinin nedeni olduğunu asla kanıtlamaz. Çünkü elimizdeki veriseti deneysel bir çalışma sonucunda ortaya çıkmış bir veri seti değil. Bu yüzden hedefimiz sadece ilişki varsa bunu tespit etmek. Çıkarımda ilk aşama, uygun istatistiksel analizi belirlemektir. Biz bunu ki-kare olarak en başta belirlemiştik. Nedenlerinin ise 2’den fazla seviyesi olan 2 kategorik değişkenle çalışmamız ve ki-kare bağımsızlık testi kullanarak ilişki tespit etmenin mümkün olması olduğunu belirtmiştik. İkinci aşama, gerekli hipotezleri belirlemektir. Çünkü çıkarım yapmak, hipotez kurmak demektir. İstatistiksel kurallara uygun biçimde hipotezleri belirleyelim:
H0: Bir kişinin eğitim düzeyi, subjektif ekonomik sınıfından bağımsızdır. Bir başka deyişle, eğitim düzeyi, subjektif ekonomik düzey değiştikçe değişmez.

HA: Bir kişinin eğitim düzeyi, subjektif ekonomik sınıfından bağımsız değildir. Bir başka deyişle, eğitim düzeyi, subjektif ekonomik düzey değiştikçe değişir.

Unutmamak gerekir ki, sıfır hipotezi(H0) her zaman statükoyu, yani ilgi çekecek hiçbir şey bulunmadığını, her şeyin normal gittiğini savunur. Alternatif hipotez ise(HA), ilginç bir şeyler olduğunu, her şeyin normal gitmediğini iddia eder. Burada H0 aralarında ilişki yok, birbirlerini etkilemiyorlar derken, HA bu ilişkinin var olduğunu ve birbirlerini etkilediklerini iddia ediyor. Hipotezleri de kurduğumuza göre üçüncü aşamaya geçebiliriz. Ki-kare bağımsızlık testini uygulayabilmek için gerekli koşullar sağlanıyor mu? Ki-kare bağımsızlık testinin iki koşulu vardır.

  1. Örneklenen gözlemler birbirlerinden bağımsız olmalıdır.
  2. Her senaryo en az 5 gözlem içermelidir.

Birinciye bakacak olursak, bağımsızlığın sağlanması için rastgele örnekleme gereklidir ve örneklem, anakütlenin %10’undan daha küçük olmalıdır. Rastgele örnekleme kullanıldığını yukarıda metodolijiyi açıklarken belirtmiştik. Kesinlikle eminiz ki örneklemimiz, yani anket yapılan kişiler, oradaki tüm kişilerin %10’undan daha az. Bu yüzden ilk koşulumuz yani bağımsızlık koşulu sağlanıyor. İkinci koşula geçelim. Senaryo demek, iki değişkenin iki sınıfının kesiştiği her nokta demektir. Örneğin yukarıdaki tabloya bakacak olursak, “Lower Class” ve “Lt High School” sınıflarının kesiştiği 1322 sayısı bir senaryodur. Burada her senaryonun en az beş olması gerektiğini söyledik fakat “No Class” sınıfının hiçbir senaryosu bu kurala uymuyor. Zaten sınıfa genel olarak bakacak olursak, sadece 1 kişi olduğunu görüyoruz. Bu noktada bu göz ardı edilebilir bir durum. Bu yüzden sadece 1 gözlem barındıran bu sınıfı veri setinden çıkartıyorum.

21

Üstteki kod bloğunu inceleyelim. Öncelikle ilk verisetimiz olan gss’den “class” değişkeni içerisinde “No Class” sınıfı çıkmaş olan halini altküme olarak alıyorum. Buradaki “subset” fonksiyonu, bir verisetinden belirli bir kritere göre altküme almayı sağlar. Daha sonra, bu verisetindeki “class” ve “degree” değişkenlerinden yine bir tablo oluşturuyorum fakar arada “drop.levels” komutunu kullanıyorum. Burada “gss_new” verisetini yani “No Class” sınıfı çıkarılmış verisetini kullandığım için, komut otomatik olarak o sınıfı düşürerek tabloyu oluşturuyor ve aşağıdaki görüntü oluşuyor.

22

Gördüğünüz gibi “No Class” sınıfı düşmüş durumda artık. Bu da demek oluyor ki Ki-kare bağımsızlık testini uygulayabilmek için gerekli koşullar sağlanmış durumda. Analize geçelim. Aşağıdaki gibi ki-kare bağımsızlık testini gerçekleştiriyoruz:
23

Aslında burada anlatılacak pek bir şey yok. Son hazırladığımız tabloya “chisq.test” fonksiyonunu kullanarak ki-kare testini uyguluyoruz ve bize aşağıdaki sonucu döndürüyor:

24

En üstte testin adı yazmakta: “Pearson’s Chi-squared test”. Aşağıya geçtiğimizde, hangi veriye uygulandığını gösteriyor. En alt kısım ise bizim için asıl önemli olan kısım. Hipotezlerin akıbetini buradaki “p-değeri” belirleyecek. X-squared = 5830.3 olarak gösteriliyor. Buna “test istatistiği” denir ve serbestlik derecesi 12 olan (df = 12) bir ki-kare dağılımı üzerinde ki-kare testi için gerekli işlemler R tarafından uygulandığında elde edilen değerdir. Bu değer bize p’nin büyüklüğü hakkında yardımcı olmaktadır. Ki-kare dağılımında bu değerin sağında kalan kısım, bize p değerini verecektir. Bu da bilimsel gösterimle 2.2e-16’ya denk gelmektedir ki oldukça küçük bir sayıdır. p-değerinin 0.05’ten küçük olması, istatistiksel olarak anlamlı bir sonuç elde edildiğini ve sıfır hipotezinin(H0) reddedileceğini gösterir. Bu da şu anlama gelmektedir ki elimizde kalan hipotez alternatif hipotezdir ve biz de onu baz alacağız. O halde şu sonuca varıyoruz, subjektif ekonomik sınıf ve eğitim düzeyi arasında bir ilişki var. Çünkü sıfır hipotezi olmadığını söylüyordu ve biz onu reddettik. Bu da bizi alternatif hipoteze yönlendirdi.

Yazıyı bitirmeden önce değinmem gereken bir nokta var. Ben buradaki yazılarda genellikle istatistiksel analiz ve testlerin teorik kısımlarını açıklamaktan çok, teknik kısımlarıyla ilgileneceğim ve teoriye az bir yer bırakacağım. Daha fazla teorik bilgi edinmek isterseniz, internette bunlarla ilgili araştırmalar yaparak elde edebilirsiniz. Son aşamada biraz teoriye yer vererek p değerinin ne olduğunu ve neden 0.05’ten küçük olduğunda sıfır hipotezini reddederek alternatif hipoteze yöneldiğimizi açıklamak istiyorum. Teoriye az bir yer vereceğimi söylememe rağmen bunu yapmamın sebebi ise, bu noktanın istatistikte hayati önem taşıması. p değeri şu şekilde tanımlanır:

P(Gözlenen veya daha aşırı sonuç|H0 doğru kabul edildiğinde)

Bu bir koşullu olasılıktır ve şu şekilde okunur. Sıfır hipotezi doğru kabul edildiğinde, örneklemden gözlenen veya ondan daha aşırı bir sonucun ortaya çıkma olasılığı. Açıklayacak olursak, sıfır hipotezinin doğru kabul edilmesi, her şeyin normal seyrinde olması ve ilginç hiçbir olayın olmaması anlamına geliyordu bundan yukarıda bahsetmiştim. Bu şartlar altında, bizim örneklemimizdeki değerlerin veya bundan daha aşırı değerlerin ortaya çıkma olasılığı nedir? Burada belirlediğimiz bir olasılık payı var. Bunu analizi yapan kişi kendi seçmelidir. Genellikle bu pay %5 kabul edilir. Bu da örneklemde gözlenen sonucun sadece şansa bağlı olarak çıkma olasılığının tümleyenidir. Yani düşünün ki örnekleminizde ilginç bulabileceğiniz ve normalde olmayacak değerler gözlemlediniz. Bunlar her ne kadar uçuk olsa da, yine de şansa denk gelmiş olabilirler. İşte p değeri bu olasılığı ölçer. Şansa bağlı olarak çıkma olasılığı %95 ise ( 1 – 0.05), demek ki %5’ten küçük bir olasılıkla karşılaştığımızda deriz ki bu durum şansa bağlı değil. İşte p değeri 0.05’ten küçük olduğunda da şu sonuca varıyoruz; bu o kadar küçük bir olasılık ki, %5’ten daha küçük ve bu yüzden şansa bağlı olarak ortaya çıkmış olamaz. Demek ki ilginç, anlamlı bir durum var. Ve bizim araştırmamıza göre bakarsak da bu anlamlı durum değişkenlerimiz arasında ilişki olması.