R'de ikinci dereceden regresyon nasıl gerçekleştirilir?


İki değişkenin doğrusal bir ilişkisi olduğunda, ilişkilerini ölçmek için sıklıkla basit doğrusal regresyon kullanabiliriz.

Doğrusal ilişki örneği

Bununla birlikte, iki değişken ikinci dereceden bir ilişkiye sahip olduğunda, ilişkilerini ölçmek için ikinci dereceden regresyonu kullanabiliriz.

İkinci dereceden ilişki örneği

Bu eğitimde R’de ikinci dereceden regresyonun nasıl gerçekleştirileceği açıklanmaktadır.

Örnek: R’de ikinci dereceden regresyon

Çalışılan saat sayısı ile bildirilen mutluluk arasındaki ilişkiyi anlamak istediğimizi varsayalım. 11 farklı kişi için haftada çalışılan saat sayısı ve rapor edilen mutluluk düzeyi (0’dan 100’e kadar bir ölçekte) hakkında aşağıdaki verilere sahibiz:

R’ye ikinci dereceden bir regresyon modelini sığdırmak için aşağıdaki adımları kullanın.

Adım 1: Verileri girin.

İlk olarak verilerimizi içeren bir veri çerçevesi oluşturacağız:

 #createdata
data <- data.frame(hours=c(6, 9, 12, 14, 30, 35, 40, 47, 51, 55, 60),
                   happiness=c(14, 28, 50, 70, 89, 94, 90, 75, 59, 44, 27))

#viewdata 
data

   hours happiness
1 6 14
2 9 28
3 12 50
4 14 70
5 30 89
6 35 94
7 40 90
8 47 75
9 51 59
10 55 44
11 60 27

Adım 2: Verileri görselleştirin.

Daha sonra verileri görselleştirmek için basit bir dağılım grafiği oluşturacağız.

 #create scatterplot
plot(data$hours, data$happiness, pch=16) 

R'deki dağılım grafiği

Verilerin doğrusal bir kalıp izlemediğini açıkça görebiliyoruz.

Adım 3: Basit bir doğrusal regresyon modeli yerleştirin.

Daha sonra verilere ne kadar iyi uyduğunu görmek için basit bir doğrusal regresyon modeli uygulayacağız:

 #fit linear model
linearModel <- lm(happiness ~ hours, data=data)

#view model summary
summary(linearModel)

Call:
lm(formula = happiness ~ hours)

Residuals:
   Min 1Q Median 3Q Max 
-39.34 -21.99 -2.03 23.50 35.11 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept) 48.4531 17.3288 2.796 0.0208 *
hours 0.2981 0.4599 0.648 0.5331  
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 28.72 on 9 degrees of freedom
Multiple R-squared: 0.0446, Adjusted R-squared: -0.06156 
F-statistic: 0.4201 on 1 and 9 DF, p-value: 0.5331

Model tarafından açıklanan mutluluktaki toplam varyans, çoklu R-kare değerinin gösterdiği gibi yalnızca %4,46’dır .

Adım 4: İkinci dereceden bir regresyon modeli yerleştirin.

Daha sonra ikinci dereceden bir regresyon modeli uygulayacağız.

 #create a new variable for hours 2
data$hours2 <- data$hours^2

#fit quadratic regression model
quadraticModel <- lm(happiness ~ hours + hours2, data=data)

#view model summary
summary(quadraticModel)

Call:
lm(formula = happiness ~ hours + hours2, data = data)

Residuals:
    Min 1Q Median 3Q Max 
-6.2484 -3.7429 -0.1812 1.1464 13.6678 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -18.25364 6.18507 -2.951 0.0184 *  
hours 6.74436 0.48551 13.891 6.98e-07 ***
hours2 -0.10120 0.00746 -13.565 8.38e-07 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 6.218 on 8 degrees of freedom
Multiple R-squared: 0.9602, Adjusted R-squared: 0.9502 
F-statistic: 96.49 on 2 and 8 DF, p-value: 2.51e-06

Modelin açıkladığı mutluluktaki toplam varyans %96,02’ye yükseldi.

Modelin verilere ne kadar iyi uyduğunu görselleştirmek için aşağıdaki kodu kullanabiliriz:

 #create sequence of hour values
hourValues <- seq(0, 60, 0.1)

#create list of predicted happiness levels using quadratic model
happinessPredict <- predict(quadraticModel, list(hours=hourValues, hours2=hourValues^2))

#create scatterplot of original data values
plot(data$hours, data$happiness, pch=16)
#add predicted lines based on quadratic regression model
lines(hourValues, happinessPredict, col='blue')

R'de İkinci Dereceden Regresyon Dağılım Grafiği

İkinci dereceden regresyon çizgisinin veri değerlerine oldukça iyi uyum sağladığını görebiliriz.

Adım 5: İkinci dereceden regresyon modelini yorumlayın.

Bir önceki adımda ikinci dereceden regresyon modelinin sonucunun şöyle olduğunu gördük:

 Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -18.25364 6.18507 -2.951 0.0184 *  
hours 6.74436 0.48551 13.891 6.98e-07 ***
hours2 -0.10120 0.00746 -13.565 8.38e-07 ***

Burada sunulan katsayılara dayanarak düzeltilmiş ikinci dereceden regresyon şu şekilde olacaktır:

Mutluluk = -0,1012 (saat) 2 + 6,7444 (saat) – 18,2536

Bu denklemi, bir bireyin haftada kaç saat çalıştığı göz önüne alındığında tahmin edilen mutluluğunu bulmak için kullanabiliriz.

Örneğin haftada 60 saat çalışan bir kişinin mutluluk düzeyi 22,09 olacaktır:

Mutluluk = -0,1012(60) 2 + 6,7444(60) – 18,2536 = 22,09

Haftada 30 saat çalışan bir kişinin ise mutluluk düzeyi 92,99 olmalıdır:

Mutluluk = -0,1012(30) 2 + 6,7444(30) – 18,2536 = 92,99

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir