RMarkdown Ogrenme Gunlugum (04.11.2025)

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.