R - Doğrusal Regresyon

Regresyon analizi, iki değişken arasında bir ilişki modeli oluşturmak için çok yaygın olarak kullanılan bir istatistiksel araçtır. Bu değişkenlerden biri, değeri deneylerle elde edilen yordayıcı değişken olarak adlandırılır. Diğer değişken, değeri tahmin değişkeninden türetilen yanıt değişkeni olarak adlandırılır.

Doğrusal Regresyonda bu iki değişken, her iki değişkenin üssünün (kuvvetinin) 1 olduğu bir denklem aracılığıyla ilişkilidir. Matematiksel olarak doğrusal bir ilişki, grafik olarak çizildiğinde düz bir çizgiyi temsil eder. Herhangi bir değişkenin üssünün 1'e eşit olmadığı doğrusal olmayan bir ilişki bir eğri oluşturur.

Doğrusal regresyon için genel matematiksel denklem -

y = ax + b

Aşağıda kullanılan parametrelerin açıklaması verilmiştir -

  • y yanıt değişkendir.

  • x yordayıcı değişkendir.

  • a ve b katsayılar olarak adlandırılan sabitlerdir.

Bir Regresyon Oluşturma Adımları

Basit bir regresyon örneği, bir kişinin boyu bilindiğinde kilosunu tahmin etmektir. Bunu yapmak için bir kişinin boyu ile kilosu arasındaki ilişkiye sahip olmamız gerekir.

İlişkiyi yaratmanın adımları -

  • Gözlenen boy ve buna karşılık gelen ağırlık değerlerinden bir örnek toplama deneyini gerçekleştirin.

  • Kullanarak bir ilişki modeli oluşturun lm() R'deki fonksiyonlar

  • Oluşturulan modelden katsayıları bulun ve bunları kullanarak matematiksel denklemi oluşturun

  • Tahmindeki ortalama hatayı bilmek için ilişki modelinin bir özetini alın. Olarak da adlandırılırresiduals.

  • Yeni kişilerin ağırlığını tahmin etmek için, predict() R işlevi

Giriş Verileri

Gözlemleri temsil eden örnek veriler aşağıdadır -

# Values of height
151, 174, 138, 186, 128, 136, 179, 163, 152, 131

# Values of weight.
63, 81, 56, 91, 47, 57, 76, 72, 62, 48

lm () İşlevi

Bu işlev, yordayıcı ve yanıt değişkeni arasındaki ilişki modelini oluşturur.

Sözdizimi

İçin temel sözdizimi lm() doğrusal regresyondaki fonksiyon -

lm(formula,data)

Aşağıda kullanılan parametrelerin açıklaması verilmiştir -

  • formula x ve y arasındaki ilişkiyi sunan bir semboldür.

  • data formülün uygulanacağı vektördür.

İlişki Modeli oluşturun ve Katsayıları alın

x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)

# Apply the lm() function.
relation <- lm(y~x)

print(relation)

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

Call:
lm(formula = y ~ x)

Coefficients:
(Intercept)            x  
   -38.4551          0.6746

İlişkinin Özetini Alın

x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)

# Apply the lm() function.
relation <- lm(y~x)

print(summary(relation))

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

Call:
lm(formula = y ~ x)

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 ** 
x             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

tahmin () İşlevi

Sözdizimi

Doğrusal regresyonda tahmin () için temel sözdizimi -

predict(object, newdata)

Aşağıda kullanılan parametrelerin açıklaması verilmiştir -

  • object lm () işlevi kullanılarak önceden oluşturulmuş formüldür.

  • newdata yordayıcı değişken için yeni değeri içeren vektördür.

Yeni kişilerin ağırlığını tahmin edin

# The predictor vector.
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)

# The resposne vector.
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)

# Apply the lm() function.
relation <- lm(y~x)

# Find weight of a person with height 170.
a <- data.frame(x = 170)
result <-  predict(relation,a)
print(result)

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

1 
76.22869

Regresyonu Grafik Olarak Görselleştirin

# Create the predictor and response variable.
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
relation <- lm(y~x)

# Give the chart file a name.
png(file = "linearregression.png")

# Plot the chart.
plot(y,x,col = "blue",main = "Height & Weight Regression",
abline(lm(x~y)),cex = 1.3,pch = 16,xlab = "Weight in Kg",ylab = "Height in cm")

# Save the file.
dev.off()

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -