Regresi Piecewise


Perhatikan plot data berikut: 37

Apakah menurut kalian, model

38

ocok untuk data tersebut?

Jika data tersebut dimodelkan seperti di atas, akan diperoleh garis regresi seperti berikut:

39

Apakah menurut kalian garis tersebut fit dengan data?

Bandingkan dengan garis biru berikut:

40

Mana yang lebih sesuai dengan data? Garis merah, atau garis biru?

Contoh di atas mengilustrasikan permasalahan yang dapat diselesaikan dengan regresi piecewise.

Apakah regresi piecewise itu? 

Perhatikan lagi gambar di atas. Terlihat seperti ada ‘patahan’ pada garis biru, di sekitar nilai x=70.  Kemiringan garis untuk x<70 berbeda dengan kemiringan garis untuk x>70. Sehingga, dapat dikatakan bahwa garis biru tersebut adalah gabungan dari 2 garis dengan kemiringan yang berbeda. Inilah yang disebut dengan regresi piecewise. Nilai x=70 disebut knot value, yaitu titik dimana terjadi perubahan kemiringan garis.

Bagaimana model regresi piecewise?

Misalkan model regresi linear sederhana, dengan knot value k. Misalkan model tersebut berbentuk:

41

Model di atas dapat ditulis lebih ringkas sebagai berikut:

42 dengan 43 Dari bentuk di atas, dapat diperoleh: dan Contoh Akan diteliti pengaruh komposisi (rasio) air dan semen(water-cement) terhadap kekuatan concrete yang dibuat. Menggunakan data Tabel 9.1 pada buku Mendenhall dan Sincich 7th ed (hal.468); dilakukan langkah-langkah sebagai berikut:
compressive.strength<-c(4.67, 3.54,2.25,3.82,4.5,4.07,.76,3.01,4.29,

                        2.21,4.2,1.13,1.67,1.59,3.91,3.15,4.37,3.75)

water.cement<-c(47,68,75,65,50,55,82,72,52,

                73,60,85,80,75,63,70,50,57)

data.cement<-data.frame(compressive.strength,water.cement)

data.cement

Dengan plot data sebagai berikut:

plot(water.cement,compressive.strength)
47 Misalkan diduga bahwa terdapat perubahan pola hubungan antara water.cement dan compressive.strength di sekitar nilai x=70, yaitu seperti berikut:

Maka akan lebih baik jika data tersebut dimodelkan dengan  regresi piecewise.

 Langkah-langkahnya adalah sebagai berikut:

  1. Tentukan knot value, k=70
  2. Tuliskan modelnya
dengan
dimana x1=water.cement.
3. Lakukan pengolahan data di R
y<-compressive.strength
      x1<-water.cement
      x2<-NA

     #Membuat dummy variabel x2
        x2[x1> 70] <- 1
        x2[x1<= 70] <- 0
        x2star<-(x1-70)*x2

      #Fit regresi piecewise
        model.1<-lm(y~x1+x2star)
        summary(model.1)

Interpretasi

Persamaan regresinya adalah:

atau,

Kemiringan garis negatif menyatakan bahwa semakin tinggi rasio water cement, cenderung menghasilkan concrete yang kekuatannya makin berkurang. Setiap kenaikan rasio water cement sebesar 1 %, secara rata – rata kekuatan concrete yang terbentuk berkurang sebesar 0.07; untuk rasio water cement < 70%.

Pengurangan ini jauh lebih cepat untuk rasio water cement di atas 70%. Setiap kenaikan rasio water cement sebesar 1 %, secara rata – rata kekuatan concrete yang terbentuk berkurang sebesar 0.172.

Uji model dan ukuran kesesuaian model juga cukup baik, menandakan bahwa regresi piecewise cocok untuk memodelkan data ini. Bandingkan dengan regresi linear sederhana (tanpa piecewise) berikut.

Latihan.

  1. Jelaskan mengenai model regresi linear piecewise pada halaman 470 buku Mendenhall dan             Sincich,  7thed. Bagaimana interpretasi dari parameter – parameter tersebut?
  1. Jawablah pertanyaan no. 9.4 hal 475-476 buku Mendenhall & Sincich, 7thed.

Selanjutnya: Regresi piecewise diskontinu

Code R lengkap untuk hasil di atas.

==================START==========================
##############################
#Simulasi piecewise regression
##############################
#Generate data

x.1<-runif(50,0,70)
x.2<-runif(20,70,90)
y.1<-150-1.5*x.1+rnorm(50,3,6)
y.2<-400-5*x.2+rnorm(20,2,5)
x<-c(x.1,x.2)
y<-c(y.1,y.2)

#Plot data

plot(x,y)

abline(lm(y~x), col="red") # garis regresi 
lines(lowess(x,y), col="blue") # garis lowess

######################################################
#Data Tabel 9.1 Mendenhall & Sincich, 7th ed, hal.468
######################################################


compressive.strength<-c(4.67, 3.54,2.25,3.82,4.5,4.07,.76,3.01,
                   4.29,2.21,4.2,1.13,1.67,1.59,3.91,3.15,4.37,3.75)
water.cement<-c(47,68,75,65,50,55,82,72,52,
                73,60,85,80,75,63,70,50,57)
data.cement<-data.frame(compressive.strength,water.cement)
data.cement
plot(water.cement,compressive.strength)

y<-compressive.strength
x1<-water.cement
x2<-NA

#Membuat dummy variabel x2
##########################
x2[x1> 70] <- 1
x2[x1<= 70] <- 0

x2star<-(x1-70)*x2

#Fit regresi piecewise
######################
model.1<-lm(y~x1+x2star)
summary(model.1)

#Bandingkan dengan regresi tanpa piecewise
##########################################
model.0<-lm(y~x1)
summary(model.0)
========================END======================
 

No comments:

Post a Comment

Relevant & Respectful Comments Only.