library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(openintro)
## Loading required package: airports
## Loading required package: cherryblossom
## Loading required package: usdata
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.1

Basit Doğrusal Regresyon

Bağımlı=f(bağımsız)+ hata Bağımlı=kesişim(b0)+eğim(b1).bağımsız+ hata

  1. Kesişim (Intercept, b₀)

x = 0 olduğunda y’nin aldığı değeri gösterir.

Regresyon doğrusunun y-eksenini kestiği noktadır.

Yani, bağımsız değişken 0 olduğunda beklenen y değeridir

Örnek: Model: Gelir = 1000 + 200 × EğitimYılı

Burada b₀ = 1000 → Eğitim yılı 0 olduğunda beklenen gelir 1000 birimdir.

  1. Eğim (Slope, b₁)

x’teki 1 birimlik değişimin, y’de ne kadar değişime neden olduğunu gösterir.

Regresyon doğrusunun yatıklığını ifade eder.

FORMÜLLER: b0=yˉ−b1.xˉ

b1=rxy(sy/sx)

Örnek: Aynı modelde b₁ = 200 → Eğitim yılı 1 arttığında gelir ortalama 200 birim artar.

Örnek: ABD eyaletlerindeki lise mezuniyet oranının (hsgrad) bir fonksiyonu olarak yoksulluk oranı (poverty) yordayan model:

poverty=64.594-0.591.hsgrad lise mezuniyet=%92.4 64.594-0.591.92.4 =9.986= 10%(ortalama yoksulluk oranı)

Regresyon Modellerini Yorumlama

lm(ucla_new ~ amaz_new, data = textbooks)

Call: lm(formula = ucla_new ~ amaz_new, data = textbooks)

Coefficients: (Intercept) amaz_new
0.929 1.199
Çıktıdan elde edilen katsayılar:

Kesişim (b0): $0.929 Eğim (b1): $1.199

ucla_new=0.929+1.199.amaz_new

Yorum: Amazon’un bir kitap için talep ettiği fiyattaki her bir ek $1’lık artış için, UCLA kitapçısındaki kitapların ortalama fiyatının yaklaşık $1.20 artması beklenir.

Bu, ortalama olarak, UCLA kitapçısındaki kitap fiyatının Amazon’daki karşılık gelen fiyattan yaklaşık %20 daha yüksek olduğu anlamına gelir(1.20 katı).

Eğim, açıklayıcı değişkendeki bir birimlik değişikliğe karşılık, bağımlıdeğişkendeki (yanıt) tahmini ortalama değişimi gösterir.

Yorum: Amazon’da $0 olan bir kitabın, UCLA kitapçısında ortalama $0.93’a mal olması beklenir.

Dikkat: Bu değer, veri kümesindeki Amazon fiyatlarının aralığının dışında (en düşük fiyat $8.60’dı) olduğu için alakasızdır ve ekstrapolasyon (verinin aralığı dışındaki tahmin) tehlikesini taşır.

Ölçek değişimi, katsayıları değiştirir ancak temel ilişkiyi değiştirmez. Örneğin, Amazon fiyatını sent cinsinden kullanırsak:

Call: lm(formula = ucla_new ~ amaz_new_cents, data = textbooks)

Coefficients: (Intercept) amaz_new_cents
0.92897 0.01199

Yorum: Amazon fiyatındaki her bir ek centlik artış,

UCLA fiyatında ortalama $0.01199 (yaklaşık 1.2 cent) artışa neden olur. Temel ilişki (1.20 katı) korunmuştur.

Yorum Hataları

BASİT LİNEER MODEL lm() fonksiyonunun çıktısı, lm sınıfından bir model nesnesidir. Bu nesne, model hakkındaki tüm bilgileri depolar.

Katsayılar (coef()) Sadece kesişim ve eğim katsayılarını bir vektör olarak döndürür.

Modelin tamamına ait istatistiksel çıktsı için, summary()

fitted.values= Orijinal veri kümesindeki her bir gözlem için modelin tahmin ettiği (yordanmıs değerleri-ŷ) döndürür.

residuals()= Modelin tahmini ile gerçek değer arasında ne kadar fark var? Gerçek değerleri ile tahmin edilen değerleri arasındaki farkları (ei=yi−y^i) döndürür. En küçük kareler yöntemi ile oluşturulan modelde, artıkların ortalaması her zaman sıfırdır (teknik olarak sıfıra çok yakındır).

predict()= “Modeli kullanarak belirli x değerleri için y tahmini yap.” Modeli kullanarak tahmin üretir. Hem modeldeki gözlemler için hem de yeni veriler için kullanılabilir.

broom paketindeki augment() fonksiyonu, orijinal veriyi yordanan değerler, artıklar ve diğer model bilgileriyle birlikte içeren düzenli bir veri seti (data.frame) döndürür.

Regresyon Çizgisini Elle Ekleme geom_smooth() yerine geom_abline() ile de regresyon çizgisini bir serpilme grafiğine ekleyebiliriz.

Örnek kod:ggplot(data = textbooks, aes(x = amaz_new, y = ucla_new )) + geom_point() + geom_abline(data = books_mod_coefs, aes(intercept = (Intercept), slope = amaz_new), color = “dodgerblue”)

Modelin ne kadar iyi çalıştığını ölçmenin temel yolu, tipik bir hatanın (artığın) büyüklüğüne bakmaktır. Modelin tipik hatasını yanıt değişkeninin birimlerinde ölçen en yaygın yol ortalama hata kareleri toplamı kökü (RMSE) veya regresyon çıktısında görünen adıyla Artık Standart Hatası’dır. Bu, esasen artıkların standart sapmasıdır.

n-2 terimi, basit regresyonda serbestlik derecesidir (iki katsayı, b0 ve b1 tahmin edildiği için).

Yorum: RMSE (veya Artık Standart Hatası), gözlemlenen yanıt değişkeni değeri ile modelin tahmin ettiği değer arasındaki tipik farkı (yanıltıcı mesafe) yanıt değişkeninin orijinal birimlerinde verir.

Ders kitapları için artık standart hatası 10.47’dir.

Residual standard error: 10.47 on 71 degrees of freedom Multiple R-squared: 0.9696, Adjusted R-squared: 0.9692 F-statistic: 2266 on 1 and 71 DF, p-value: < 2.2e-16

MODEL UYGUNLUĞU Farklı birimlere sahip modellerin uyumunu karşılaştırmak için birimsiz bir ölçüye ihtiyacımız var. Bu, Belirtme Katsayısı veya yaygın adıyla R2’dir.

R2, regresyon modelimizin (SSE) hatasını, boş modelin (SST) hatasına kıyasla ne kadar azalttığını gösterir.

Yorum: R2, yanıt değişkenindeki değişkenliğin modelimiz tarafından açıklanan oranıdır (yüzdesi). 0 ile 1 arasında değişir.

0: Modelimiz, boş modelden daha iyi değildir (hiçbir değişkenliği açıklamaz).

1: Modelimiz, yanıttaki değişkenliğin tamamını açıklar (tüm noktalar çizgidedir).

Ders Kitabı Modeli (R2): UCLA fiyatındaki değişkenliğin %97’si Amazon fiyatı ile açıklanır.

R2 ve Korelasyon: Tek bir açıklayıcı değişkenli basit doğrusal regresyonda, R2 değeri, korelasyon katsayısının karesine eşittir.

Yüksek bir R2 tek başına “iyi” bir modele sahip olduğunuz anlamına gelmez ve düşük bir “kötü” bir modele sahip olduğunuz anlamına gelmez. Düşük bir R2’li bir model, karmaşık bir problem hakkında önemli içgörüler sağlayabilir.

ABD eyaletlerindeki lise mezuniyet oranına göre yoksulluk oranı için regresyon modelinde bildirilen R2, 0.464’tür.

Yorum: ABD eyaletleri arasındaki yoksulluk oranındaki değişkenliğin %46.4’ü, lise mezuniyet oranı ile açıklanabilir.

Kaldıraç (Leverage) ve Etki (Influence) Regresyon analizinde, bazı gözlemler modelin eğimini diğerlerinden daha fazla etkileyebilir. Bu noktaları incelemek için iki ana kavram kullanılır: Kaldıraç ve Etki.

Bir gözlemin kaldıracı, yalnızca bağımsız değişkenin (X) değerine bağlıdır. Bir noktanın bağımsız değişkenin ortalamasından ne kadar uzak olduğunu ölçer.

Kaldıraç, bir gözlemin açıklayıcı değişkenin ortalamasından ne kadar uzakta olduğunun bir fonksiyonudur. Yani, serpilme grafiğinin merkezine (x-ekseni boyunca) yakın olan noktalar düşük kaldıraçlı, uzakta olan noktalar ise yüksek kaldıraçlıdır.

Yüksek kaldıraca sahip gözlemler, bağımsız değişkenin aşırı değerleri nedeniyle, regresyon doğrusunun eğimi üzerinde önemli bir etkiye sahip olabilir veya olmayabilir. Böyle bir etkiye sahip olan gözleme etkili (influential) denir.

X ekseni boyunca merkezden uzak olan noktalar yüksek kaldıraca sahiptir. Kaldıraç, augment() çıktısındaki .hat sütununda bulunur.

Etki (Influence) Tanım: Bir gözlemin etkisi, regresyon çizgisinin eğimini ne kadar değiştirdiğini ölçer.

Yüksek etki, hem yüksek kaldıraç hem de büyük bir artık (model çizgisinden dikey olarak uzaklık) kombinasyonunu gerektirir.

Cook Mesafesi (Cook’s Distance) Tanım: Kaldıraç ve artığı birleştirerek etkiyi ölçen tek bir sayıdır.

Yorum: Yüksek Cook mesafesi, noktanın modelin eğimini önemli ölçüde değiştirdiğini gösterir.

Cook mesafesi, augment() çıktısındaki .cooksd sütununda bulunur.

Örnek kod: # Grafik: kaldıraç ve etki gösterimi ggplot(aug[-21,], aes(x = size, y = price)) + geom_point(aes(size = .hat, color = .cooksd)) + geom_smooth(method = “lm”, se = FALSE, color = “blue”) + scale_color_gradient(low = “gray70”, high = “red”) + labs( title = “Kaldıraç ve Etki (Leverage & Influence) Örneği”, subtitle = “Büyük kırmızı nokta = yüksek kaldıraca ve yüksek etkiye sahip gözlem”, x = “Ev Büyüklüğü (m²)”, y = “Ev Fiyatı”, color = “Cook’s Distance(Etki)”, size = “Leverage(Kaldıraç)” ) + theme_minimal()

ÖĞRENME GÜNLÜĞÜM

Bugün basit doğrusal regresyon öğrendim. Bir bağımlı değişkenin, bir bağımsız değişkenle doğrusal bir ilişki kurularak ve rastgele bir hata terimi eklenerek modellendiğini anladım. Kesişimin (b0), bağımsız değişken sıfır olduğunda beklenen y değeri olduğunu, eğimin(b1) x’teki 1 birimlik değişimin, y’de ne kadar değişime neden olduğunu gösterdiğini öğrendim. R’de lm() fonksiyonuyla model kurmayı, coef(), summary(), residuals() ve predict() gibi fonksiyonlarla modeli inceleyebileceğimizi öğrendim. Ayrıca, modelin uygunluğunu değerlendirmek için R2 ve Artık Standart Hatası (RMSE) gibi değerleri incelemek gerektiğini öğrendim. Kaldıraç ve etki kavramlarının, bazı gözlemlerin modelin eğimini nasıl değiştirebileceğini gösterdiğini gördüm. Regresyonun yalnızca bir ilişkiyi açıkladığını, nedensellik açıklamadığını öğrendim.