Lineer Regresyon


Merhaba R severler,

Bugün dersimizde lineer regresyon R programlamada nasıl yapılır bir göz atacağız. Fakat öncesinde lineer regresyonun ne olduğunu öğrenmeliyiz. Lineer regresyon iki ve ya daha fazla değişken arasındaki ilişkiyi ölçmek için kullanılan analiz metodudur. Doğada meydana gelen olayları neden sonuç ilişkisi üzerine tahminler yürütmek için kullanılır diyebiliriz. Basit bir regresyon modeli aşağıdaki gibi oluşturulur:

Y=α + βX + ε

Y : bağımlı değişkendir ve belli bir hataya sahip olduğu varsayılır.

X : bağımsız değişkendir ve hatasız ölçüldüğü var sayılır.

α : sabit değerdir ve X=0 olduğunda Y’nin aldığı değeri gösterir

β : regresyon katsayısıdır ve X’te meydana gelecek bir birimlik değişmesine karşılık Y’deki değişim miktarını ifade eder.

ε : tesadüfi hata terimidir. Katsayıların önem kontrolleri için geçerlidir.

Daha fazla bilgi için ; http://w3.balikesir.edu.tr/~bsentuna/wp-content/uploads/2013/03/Regresyon-Analizi.pdf

Konuyu daha iyi kavramak amacıyla verilebilecek en basit örnek bir kişinin boyu biliniyorsa ağırlığının tahmin edilmesidir. Bunu tahmini yapabilmek için boy ve kilo arasındaki ilişkiyi bilmek gerekmektedir. Şimdi adımlar halinde regresyonu kurgulayalım;

1.       Deneyler sonucu gözlemlenen boy ve kilo oranlarını bilgi olarak topla

2.       R programlama dilinde lm() fonksiyonunu kullanarak modeli kurgula

3.       Predict() fonksiyonu ile tahmin üret

Öncelikle R programı içerisine kişiye ait boy ve kilo değerlerini girelim;

kilo<- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)

boy <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)

Şimdi ikinci adıma geçebiliriz. Fakat öncesinde lm() fonksiyonunun kullanımına bakalım

lm(formula,data)

formula : boy ve kilo arasındaki ilişkiyi gösteren sembolleri ifade eder

data : ilgili konuya ait verilerin bulunduğu kısımdır.

Veri girişi tamamlandıktan sonra şimdi model oluşturabiliriz.

relation <- lm(kilo~boy)

sonuçlara bakmak istersek aşağıdaki gibi bir çıktıyı elde edeceğiz.

Call:

lm(formula = kilo ~ boy)

Coefficients:

(Intercept)          boy 

   -38.4551       0.6746

Eğer özet bir bilgi görmek istersek aşağıdaki komutu uygulamamız yeterlidir.

> summary(relation)

 

Call:

lm(formula = kilo ~ boy)

 

Residuals:

    Min                   1Q                          Median                3Q                          Max

-6.3002                 -1.6629                 0.0412  1.8944  3.9775

Coefficients:

             Estimate Std. Error t value Pr(>|t|)   

(Intercept) -38.45509    8.04901  -4.778  0.00139 **

boy           0.67461    0.05191  12.997 1.16e-06 ***

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.253 on 8 degrees of freedom

Multiple R-squared:  0.9548,      Adjusted R-squared:  0.9491

F-statistic: 168.9 on 1 and 8 DF,  p-value: 1.164e-06

Formül oluşumundan sonra tahmin durumlarına bakalım. Bu işlem predict() isimli fonksiyon ile yapılmaktadır. Kullanımı ise aşağıdaki gibidir.

predict(object, newdata)

object : lm() fonksiyonu ile oluşturulan formülü ifade eder.

Newdata : tahmin edilecek yeni değerleri ifade eder.

Şimdi yaptığımız formül sonucunda program bize kilo ve boy arasında bir ilişki kurdu. Yeni bir kişiye ait boy değeri girdiğimiz zaman acaba tahmin değerimiz ne olacak bir bakalım

Önce yeni kişinin boy değerini bilgisayara tanıtalım;

a <- data.frame(boy = 170)

daha sonra bu kişinin boy değerine bakarak kilo tahmini yapalım;

predict(relation,a)

sonuç

1

76.22869

Konu ile ilgili sorularınızı sayfanın sağ alt köşesindeki chat sayfasından ve ya facebook sayfamızdan bize iletebilirsiniz.

Yazar Kimdir?

Sıtkı Cansu, 19 Ekim 1985 yilinda Konya-Beyşehir'de dogmustur.İlk, orta ve liseyi Beyşehir'de bitirmis olup Konya-Ereğli Selçuk MYO Bilgisayar programcılığı ve Mugla Sıtkı Koçman Üniversitesi İstatistik bölümünden mezun olmustur. Çesitli yerlerde web tasarımcı ve veri tabani yöneticisi olarak çalışan yazar, son üç senedir ingilizce öğretmenliği yapmaktadir. Şu anda yüksek lisansını tamamlamak üzere Mugla Üniversitesinde öğrenim görmektedir.