Bagaimana melakukan regresi kuadrat di r


Ketika dua variabel memiliki hubungan linier, kita sering kali dapat menggunakan regresi linier sederhana untuk mengukur hubungan keduanya.

Contoh hubungan linier

Namun, jika dua variabel mempunyai hubungan kuadrat, kita dapat menggunakan regresi kuadrat untuk mengukur hubungannya.

Contoh hubungan kuadrat

Tutorial ini menjelaskan cara melakukan regresi kuadrat di R.

Contoh: regresi kuadratik di R

Misalkan kita ingin memahami hubungan antara jumlah jam kerja dan kebahagiaan yang dilaporkan. Kami memiliki data berikut mengenai jumlah jam kerja per minggu dan tingkat kebahagiaan yang dilaporkan (dalam skala 0 hingga 100) untuk 11 orang berbeda:

Gunakan langkah-langkah berikut untuk menyesuaikan model regresi kuadrat di R.

Langkah 1: Masukkan datanya.

Pertama, kita akan membuat bingkai data yang berisi data kita:

 #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

Langkah 2: Visualisasikan datanya.

Selanjutnya kita akan membuat scatterplot sederhana untuk memvisualisasikan data.

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

Plot sebar di R

Kita dapat melihat dengan jelas bahwa data tidak mengikuti pola linier.

Langkah 3: Sesuaikan model regresi linier sederhana.

Selanjutnya, kita akan menyesuaikan model regresi linier sederhana untuk melihat seberapa cocok model tersebut dengan data:

 #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

Total varians kebahagiaan yang dijelaskan oleh model hanya sebesar 4,46% yang ditunjukkan oleh nilai multiple R-squared.

Langkah 4: Sesuaikan model regresi kuadrat.

Selanjutnya, kita akan menyesuaikan model regresi kuadratik.

 #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

Total varian kebahagiaan yang dijelaskan oleh model meningkat menjadi 96,02% .

Kita dapat menggunakan kode berikut untuk memvisualisasikan seberapa cocok model dengan data:

 #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')

Plot Regresi Kuadrat di R

Kita dapat melihat bahwa garis regresi kuadrat cukup sesuai dengan nilai data.

Langkah 5: Tafsirkan model regresi kuadratik.

Pada langkah sebelumnya kita melihat bahwa hasil model regresi kuadrat adalah:

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

Berdasarkan koefisien yang disajikan di sini, regresi kuadrat yang disesuaikan adalah:

Kebahagiaan = -0,1012 (jam) 2 + 6,7444 (jam) – 18,2536

Kita dapat menggunakan persamaan ini untuk mengetahui prediksi kebahagiaan seseorang, berdasarkan jumlah jam kerja mereka per minggu.

Misalnya seseorang yang bekerja 60 jam per minggu akan memiliki tingkat kebahagiaan 22,09 :

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

Sebaliknya, seseorang yang bekerja 30 jam per minggu seharusnya memiliki tingkat kebahagiaan 92,99 :

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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *