Cara melakukan tes kurangnya kesesuaian di r (langkah demi langkah)


Uji kekurangan kecocokan digunakan untuk menentukan apakah model regresi penuh memberikan kesesuaian yang jauh lebih baik terhadap kumpulan data dibandingkan dengan versi model yang diperkecil.

Misalnya, kita ingin menggunakan jumlah jam belajar untuk memprediksi nilai ujian siswa di perguruan tinggi tertentu. Kita dapat memutuskan untuk mengadaptasi dua model regresi berikut:

Model lengkap: skor = β 0 + B 1 (jam) + B 2 (jam) 2

Model tereduksi: skor = β 0 + B 1 (jam)

Contoh langkah demi langkah berikut menunjukkan cara melakukan uji kekurangan kecocokan di R untuk menentukan apakah model penuh memberikan kesesuaian yang jauh lebih baik daripada model tereduksi.

Langkah 1: Buat dan visualisasikan kumpulan data

Pertama, kita akan menggunakan kode berikut untuk membuat kumpulan data yang berisi jumlah jam belajar dan nilai ujian yang diperoleh untuk 50 siswa:

 #make this example reproducible
set. seeds (1)

#create dataset
df <- data. frame (hours = runif (50, 5, 15), score=50)
df$score = df$score + df$hours^3/150 + df$hours* runif (50, 1, 2)

#view first six rows of data
head(df)

      hours score
1 7.655087 64.30191
2 8.721239 70.65430
3 10.728534 73.66114
4 14.082078 86.14630
5 7.016819 59.81595
6 13.983897 83.60510

Selanjutnya, kita akan membuat diagram sebar untuk memvisualisasikan hubungan antara jam dan skor:

 #load ggplot2 visualization package
library (ggplot2)

#create scatterplot
ggplot(df, aes (x=hours, y=score)) +
  geom_point() 

Langkah 2: Sesuaikan dua model berbeda ke kumpulan data

Selanjutnya, kita akan memasukkan dua model regresi berbeda ke kumpulan data:

 #fit full model
full <- lm(score ~ poly (hours,2), data=df)

#fit reduced model
reduced <- lm(score ~ hours, data=df)

Langkah 3: Lakukan uji kekurangan kecocokan

Selanjutnya, kita akan menggunakan perintah anova() untuk melakukan uji kekurangan kecocokan antara kedua model:

 #lack of fit test
anova(full, reduced)

Analysis of Variance Table

Model 1: score ~ poly(hours, 2)
Model 2: score ~ hours
  Res.Df RSS Df Sum of Sq F Pr(>F)   
1 47 368.48                                
2 48 451.22 -1 -82.744 10.554 0.002144 **
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Statistik uji F ternyata 10,554 dan nilai p yang sesuai adalah 0,002144 . Karena nilai p ini kurang dari 0,05, kita dapat menolak hipotesis nol dari pengujian tersebut dan menyimpulkan bahwa model lengkap secara statistik memberikan kesesuaian yang jauh lebih baik daripada model tereduksi.

Langkah 4: Visualisasikan model akhir

Terakhir, kita dapat memvisualisasikan model akhir (model lengkap) terhadap kumpulan data asli:

 ggplot(df, aes (x=hours, y=score)) + 
          geom_point() +
          stat_smooth(method=' lm ', formula = y ~ poly (x,2), size = 1) + 
          xlab(' Hours Studied ') +
          ylab(' Score ') 

Memvisualisasikan kurangnya kecocokan di R

Kita dapat melihat bahwa kurva model cukup sesuai dengan data.

Sumber daya tambahan

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

Tambahkan komentar

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