Bagaimana melakukan regresi kuantil di r


Regresi linier merupakan metode yang dapat kita gunakan untuk memahami hubungan antara satu atau lebih variabel prediktor dan variabel respon .

Biasanya, saat kita melakukan regresi linier, kita ingin memperkirakan nilai rata-rata variabel respon.

Namun, kita dapat menggunakan metode yang disebut regresi kuantil untuk memperkirakan nilai kuantil atau persentil dari nilai respons, seperti persentil ke-70, persentil ke-90, persentil ke-98, dan sebagainya.

Untuk melakukan regresi kuantil di R, kita dapat menggunakan fungsi rq() dari paket quantreg , yang menggunakan sintaks berikut:

 library (quantreg)

model <- rq(y ~ x, data = dataset, tau = 0.5 )

Emas:

  • y : variabel respon
  • x: variabel prediktif
  • data: nama kumpulan data
  • tau : Persentil yang ditemukan. Standarnya adalah median (tau = 0,5), namun Anda dapat mengaturnya ke angka apa pun antara 0 dan 1.

Tutorial ini memberikan contoh langkah demi langkah tentang cara menggunakan fungsi ini untuk melakukan regresi kuantil di R.

Langkah 1: Masukkan datanya

Untuk contoh ini, kami akan membuat kumpulan data yang berisi jam belajar dan hasil ujian yang diperoleh untuk 100 mahasiswa berbeda di sebuah universitas:

 #make this example reproducible
set.seed(0)

#create data frame 
hours <- runif(100, 1, 10)
score <- 60 + 2*hours + rnorm(100, mean=0, sd=.45*hours)
df <- data.frame(hours, score)

#view first six rows
head(df)

     hours score
1 9.070275 79.22682
2 3.389578 66.20457
3 4.349115 73.47623
4 6.155680 70.10823
5 9.173870 78.12119
6 2.815137 65.94716

Langkah 2: Lakukan Regresi Kuantil

Selanjutnya, kita akan menyesuaikan model regresi kuantil dengan menggunakan jam belajar sebagai variabel prediktor dan nilai ujian sebagai variabel respon.

Kami akan menggunakan model tersebut untuk memprediksi perkiraan nilai ujian persentil ke-90 berdasarkan jumlah jam belajar:

 library (quantreg)

#fit model
model <- rq(score ~ hours, data = df, tau = 0.9 )

#view summary of model
summary(model)

Call: rq(formula = score ~ hours, tau = 0.9, data = df)

tau: [1] 0.9

Coefficients:
            coefficients lower bd upper bd
(Intercept) 60.25185 59.27193 62.56459
hours 2.43746 1.98094 2.76989

Dari hasilnya kita dapat melihat persamaan regresi estimasi:

Nilai ujian persentil ke-90 = 60,25 + 2,437*(jam)

Misalnya, nilai persentil ke-90 untuk seluruh siswa yang belajar 8 jam seharusnya adalah 79,75:

Persentil ke-90 nilai ujian = 60,25 + 2,437*(8) = 79,75 .

Outputnya juga menampilkan batas kepercayaan atas dan bawah untuk intersep dan waktu variabel prediktor.

Langkah 3: Visualisasikan hasilnya

Kita juga dapat memvisualisasikan hasil regresi dengan membuat plot sebar dengan persamaan regresi kuantil yang dilapiskan pada grafik:

 library (ggplot2)

#create scatterplot with quantile regression line
ggplot(df, aes(hours,score)) +
  geom_point() + 
  geom_abline(intercept= coef (model)[1], slope= coef (model)[2]) 

Contoh regresi kuantil di R

Berbeda dengan garis regresi linier tradisional, perhatikan bahwa garis yang dipasang ini tidak melewati inti data. Sebaliknya, ia melewati perkiraan persentil ke-90 pada setiap tingkat variabel prediktor.

Kita dapat melihat perbedaan antara persamaan regresi kuantil pas dan persamaan regresi linier sederhana dengan menambahkan argumen geom_smooth() :

 library (ggplot2)

#create scatterplot with quantile regression line and simple linear regression line
ggplot(df, aes(hours,score)) +
  geom_point() + 
  geom_abline(intercept= coef (model)[1], slope= coef (model)[2]) +
  geom_smooth(method=" lm ", se= F ) 

Regresi kuantil vs plot regresi linier sederhana

Garis hitam menampilkan garis regresi kuantil yang disesuaikan dengan persentil ke-90 dan garis biru menampilkan garis regresi linier sederhana yang memperkirakan nilai rata-rata variabel respon.

Seperti yang diharapkan, garis regresi linier sederhana menelusuri data dan menunjukkan perkiraan nilai rata-rata nilai ujian pada setiap tingkat jam.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:

Cara melakukan regresi linier sederhana di R
Cara melakukan regresi linier berganda di R
Bagaimana melakukan regresi kuadrat di R

Tambahkan komentar

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