Bu hafta gerçekleştirdiğimiz ders kapsamında basit doğrusal regresyonun temellerini öğrenmiş bulunmaktayız. Bu kapsamda derse geç katılım sağlayabildiğimden dolayı ders kaydından eksiğimi kapatmış bulunmaktayım.
Dersin ilk kısmı kapsamında oluşturulan knit
dosyalarının uzun olmaması için setup kısmında
warning = FALSE ve message = FALSE ayarlarının
yapılması gerektiğini öğrendim. Bunun yanı sıra baktığımızda ise
paketlerin en üstte toplu bir şekilde sunulmasının avantajlı bir durum
sağladığını gözlemledim.
Konuya giriş yapmadan önce şunu belirtmek isterim: Regresyondan neden sonuç ilişkisi çıkmaz. İlişki ve ilişkilendirme çıkar. Elde edilen değer x’tki değişime karşılık y deki ortalama değişimi gösterir. Y değişime karşılık x tekini göstermez.
Regresyon konusuna bakıldığında ise temel yapısının
bağımlı değişken = kesişim + esim + bağımsız + hata
yapısıyla birlikte formulüze edileceğini öğrendim. Bu doğrultuda x
bağımsız değişkeni üzerinden y bağımlı değişkeninin yordandığı
söylenebilir. Bu yapı kapsamında ise bazen pozitif bazen negatif hatalar
elde edilebileceğini ve bu hataların ortalamasının ise 0
olacağını öğrendim (Bu nedenle hata formulde tam olarak yansıtılmaz.).
Bu yapı yanı sıra, artık değerlere değinmiş bulunmaktayız. Artık değer
gözlenen değerle, regresyon temelinde hesaplanan değer arasındaki farkı
bizlere sunmaktadır. Bu değerin (artıkların ortalamasının/medyanının)
0 değerine yakın olmasının bizler için önemli olduğunu
ifade edebiliriz.
Bu yapılar yanı sıra kesişim ve eğilim değerlerine de değinmiş
bulunmaktayız. Bu süreçte bu yapılar b0 ve b1 olarak ifade edilmektedir.
B1 için r*(değişken1 sd/değişken2 sd) formulünün, b0 için
ise değişken 1 ort - b1 x değişken2nin ort) değeri ile
hesaplama yapılabileceğini söyleyebiliriz. Burada b0’ değeri
0 olan yapının puanını bizlere yansıtmaktadır.
Regresyon değerini kodlarken ise lm(y ~ x, data ="")
fonksiyonunun kullanıldığını öğrendim. Burada elde edilen yapıda
Interceptteki değişken 2 dekinin 0 daki değerinin değişken 1 deki
değerini yansıtır (formuldekine göre). Intercept yanındaki ise değişken
ikideki her bir artışın diğer değişkende kaç artacağını sunar. Burada
eğim son anlattığım, kesişim ise ıntercept olur. Ayrıca anlamsız
yapılarla da karşılaşılabilir. Dikkat edilmelidir.
Bu süreçte elde edilen değerlerden eğimin standart hatasının düşük
olmasının bizler için önemli olması yanı sıra, eğim katsayının
anlamlılığına da dikkat edilmeliymiş. Ayrıca, artıkların standart
hatasına da dikkat edilmelidir, küçük standart hatalı model tercih
edilmelidir. Bunlar yanı sıra, elde edilen R değerinin boş
modelle de karşılaştırılması gereklidir.
Regresyon bazında kullanılabilecek ek fonksiyonlara bakıldığında ise
coef() ile intercept ve eğim katsayısının
hesaplanabileceğini, summary() ile lineer modele yönelik
özet istatistiklerin hesaplanabileceğini, fitted.values()
ile y’nin yordanan değerlerini görebileceğimizi,
residuals() ile artık değerleri yani yordanan y ile
gözlenen y arasındaki farkı gözlemleyebileceğimizi ve
mean(residuals(model adı) ile de artıkların ortalamasına
bakabileceğimizi öğrendim.
Bu değerler yanı sıra,Adjusted R değeri de önemli bir
yer tutmaktadır. Summary ile elde edebileceğimiz bu değer özellikle
çoklu regresyonlarda önemli olmakla birlikte, değişken sayısı arttıkça o
kadar dengeleyici bir unsur olarak görülebilir. Ayrıca, R^2
ile de varyansın ne kadarının açıklandığını gözlemleyebiliriz. Bunlar
yanı sıra, f-statistics ile de regresyona uygunluğa,
anlamlılığa bakabiliriz.
Boş model oluşturma sürecine bakıldığında ise multiple squared
yapının saptanması açısından önemli bir yer tutulduğunu ifade
edebilirim. Boş modelde tek bir değişken atanır ve genellikle sabit
terim olarak “1” kullanılır. Bu durumda model yalnızca ortalamayı temsil
ettiği için açıklanan varyans değeri hesaplanmaz. Boş modelin üzerine
broom paketindeki augment() fonksiyonu
eklendiğinde, modelin tahmin sonuçları tek bir veri seti halinde
sunulur. Bu veri setinde .fitted (yordanan değer),
.resid (artık),
.hat (her gözlem için kaldıraç değeri) ve
.cooksd (uç veya etkili gözlemleri gösteren Cook’s Distance değeri)
gibi bilgiler yer alır. Boş model tanımlanırken sabit terim “1”
sonrasında = işareti konur ve kullanılacak değişken veri
setinden $ operatörüyle çağrılır. Ayrıca
geom_smooth() fonksiyonunda formül belirtilirken
formula = y ~ 1 biçiminde ifade edilerek yalnızca sabit
terimi içeren bir model oluşturulabilir.
Bu yapıda summarize() fonksiyonu kullanılarak toplam
kareler toplamı (SST) elde edilir. Hesaplama
SST = sum(.resid^2) biçiminde yapılır. Bu değer, yordanan
(tahmin edilen) değerler ile gözlenen değerler arasındaki farkların
karelerinin toplamını ifade eder. Boş modelde elde edilen bu toplam,
daha sonra regresyonlu (dolu) modelle karşılaştırılır. Regresyon modeli
kurulduğunda yine artıkların kareleri toplanarak yeni bir
toplam kareler toplamı (SSE) elde edilir. Boş modeldeki ve
dolu modeldeki artıkların kareler toplamları karşılaştırılarak modelin
ne kadar varyansı açıkladığı belirlenir. Bu açıklama oranı
R-kare (R²) değeriyle ifade edilir ve
(bos_sst - dolu_sst) / bos_sst formülüyle hesaplanır.
Böylece modelin, gözlenen değerlerdeki toplam değişimin ne kadarını
açıkladığı ortaya konur.
Uç değerler ve kaldıraçlar (leverage) regresyon
analizinde modelin güvenilirliğini etkileyen önemli göstergelerdir. Bir
gözlemin kaldıraç değeri, bağımsız değişkenin (x) dağılımına göre
belirlenir. Eğer bir gözlemdeki x değeri diğer gözlemlerden belirgin
şekilde uzaktaysa, bu gözlem yüksek kaldıraç değerine sahiptir. Bu değer
augment() çıktısında .hat olarak gösterilir.
Kaldıraç değerleri büyükten küçüğe sıralanarak incelenmeli, en yüksek
değerlerin model üzerindeki etkisi sorgulanmalıdır.
Etkili gözlemler (influential values) ise hem yüksek
kaldıraç değerine sahip hem de bağımlı değişkeni (y) anlamlı şekilde
etkileyen gözlemlerdir. Bu tür gözlemler, veride gerçekte ilişki
olmadığı hâlde yüksek korelasyon varmış gibi bir izlenim yaratabilir
(Anscombe örneğinde olduğu gibi). Etkili gözlemler
Cook’s Distance (cooksd) değeriyle belirlenir.
cooksd değerleri de büyükten küçüğe sıralanarak
incelenmeli, özellikle yüksek değerler regresyon modelini bozabilecek
yapılar olarak değerlendirilmelidir. Çoklu regresyon modellerinde bu
inceleme daha da önem taşır. Rastgele veri oluşturmak için ise
data.frame() ve runif() fonksiyonları
kullanılabilir. runif(min, max, n) yapısıyla belirtilen alt
ve üst sınırlar arasında, istenen sayıda rastgele sayı üretilir. Tabii
ki, bu süreçte grafikle görmekte avantajlı bir durum yaratmaktadır.