Akses Data di sini:
https://docs.google.com/spreadsheets/d/1Vy3fnvyHrovL_0IK2r17H9hOX232P7a2G8GA-0-3iA0/edit?usp=sharing
Response surface methodology merupakan teknik pemodelan dan analisis di mana respon yang diinginkan dipengaruhi oleh beberapa peubah bebas atau faktor dan tujuannya adalah untuk mengoptimalkan peubah respon tersebut.
- Faktor –faktor yang dicobakan bersifat kuantitatif.
- Tujuan percobaan adalah optimisasi respon.
- Tiga level/taraf untuk masing-masing faktor (satu taraf tinggi, satu
taraf rendah, dan satu taraf tengah).
- Model yang digunakan adalah model kuadratik.
- Rancangan ini digunakan untuk mengatasi kelemahan rancangan
faktorial dimana semakin banyak faktor, maka jumlah unit percobaan akan
semakin banyak.
- Rancangan dalam RSM yang dapat digunakan: Faktorial, Central Composite design, Box Behken, Mixture Design (kasus khusus di RSM).
Central Composite Design
Merupakan kombinasi dari full factorial design atau fractional factorial design dengan tambahan a star design. CCD terdiri dari 3 bagian yaitu faktorial points, centre points, dan axial points. Metode ini bertujuan untuk mencari estimasi dari kondisi optimum di dalam wilayah spherical (bola) pada percobaan selama proses optimasi.
Contoh Generate CCD 2 Faktor
library(rsm)
ccdf2a<-ccd(2, n0=c(4,2), alpha="rotatable", randomize=FALSE, oneblock = TRUE)
ccdf2a
## run.order std.order x1.as.is x2.as.is
## 1 1 1 -1.000000 -1.000000
## 2 2 2 1.000000 -1.000000
## 3 3 3 -1.000000 1.000000
## 4 4 4 1.000000 1.000000
## 5 5 5 0.000000 0.000000
## 6 6 6 0.000000 0.000000
## 7 7 7 0.000000 0.000000
## 8 8 8 0.000000 0.000000
## 9 1 1 -1.414214 0.000000
## 10 2 2 1.414214 0.000000
## 11 3 3 0.000000 -1.414214
## 12 4 4 0.000000 1.414214
## 13 5 5 0.000000 0.000000
## 14 6 6 0.000000 0.000000
##
## Data are stored in coded form using these coding formulas ...
## x1 ~ x1.as.is
## x2 ~ x2.as.is
Ubah Taraf Coded ke Taraf Asal
Hasil rancangan di atas merupakan hasil perancangan menggunakan CCD 2 faktor dengan tarafnya berupa taraf dalam pengkodean.
Taraf ini dapat diubah ke nilai aslinya. Misal faktor yang dicobakan adalah Suhu (taraf tinggi = 840, taraf rendah = 810) dan Tekanan (taraf tinggi = 3, taraf rendah = 1).
ccd2fb<-ccd(2,n0=c(4,2),alpha="rotatable", coding=list(x1~(Suhu-825)/15,x2~(Tekanan-2)/1), randomize=FALSE, oneblock = TRUE)
ccd2fb
## run.order std.order Suhu Tekanan
## 1 1 1 810.0000 1.0000000
## 2 2 2 840.0000 1.0000000
## 3 3 3 810.0000 3.0000000
## 4 4 4 840.0000 3.0000000
## 5 5 5 825.0000 2.0000000
## 6 6 6 825.0000 2.0000000
## 7 7 7 825.0000 2.0000000
## 8 8 8 825.0000 2.0000000
## 9 1 1 803.7868 2.0000000
## 10 2 2 846.2132 2.0000000
## 11 3 3 825.0000 0.5857864
## 12 4 4 825.0000 3.4142136
## 13 5 5 825.0000 2.0000000
## 14 6 6 825.0000 2.0000000
##
## Data are stored in coded form using these coding formulas ...
## x1 ~ (Suhu - 825)/15
## x2 ~ (Tekanan - 2)/1
Mengubah taraf coded ke taraf asal juga dapat menggunakan formula
berikut:
\[
x_{cod} = \frac{x_0 - \frac{x_{max} + x_{min}}{2}}{\frac{x_{max} -
x_{min}}{2}}
\] Keterangan:
\(x_{cod}\): Nilai taraf dalam coded
value.
\(x_{max}\): Nilai taraf asal
maksimum.
\(x_{min}\): Nilai taraf asal
minimum.
\(x_0\): Nilai taraf yang akan diubah
ke coded value.
Contoh CCD 3 Faktor
Misalkan ditambahkan satu faktor lagi yaitu pH (taraf tinggi = 11, taraf rendah = 9).
ccd3fa<-ccd(3, n0=c(4,2), alpha="rotatable", randomize=FALSE, oneblock = TRUE)
ccd3fa
## run.order std.order x1.as.is x2.as.is x3.as.is
## 1 1 1 -1.000000 -1.000000 -1.000000
## 2 2 2 1.000000 -1.000000 -1.000000
## 3 3 3 -1.000000 1.000000 -1.000000
## 4 4 4 1.000000 1.000000 -1.000000
## 5 5 5 -1.000000 -1.000000 1.000000
## 6 6 6 1.000000 -1.000000 1.000000
## 7 7 7 -1.000000 1.000000 1.000000
## 8 8 8 1.000000 1.000000 1.000000
## 9 9 9 0.000000 0.000000 0.000000
## 10 10 10 0.000000 0.000000 0.000000
## 11 11 11 0.000000 0.000000 0.000000
## 12 12 12 0.000000 0.000000 0.000000
## 13 1 1 -1.681793 0.000000 0.000000
## 14 2 2 1.681793 0.000000 0.000000
## 15 3 3 0.000000 -1.681793 0.000000
## 16 4 4 0.000000 1.681793 0.000000
## 17 5 5 0.000000 0.000000 -1.681793
## 18 6 6 0.000000 0.000000 1.681793
## 19 7 7 0.000000 0.000000 0.000000
## 20 8 8 0.000000 0.000000 0.000000
##
## Data are stored in coded form using these coding formulas ...
## x1 ~ x1.as.is
## x2 ~ x2.as.is
## x3 ~ x3.as.is
ccd3fb<-ccd(3,n0=c(4,2),alpha="rotatable", coding=list(x1~(Suhu-825)/15,x2~(Tekanan-2)/1, x3~(pH-10/1)), randomize=FALSE, oneblock = TRUE)
ccd3fb
## run.order std.order Suhu Tekanan pH
## 1 1 1 810.0000 1.0000000 9.000000
## 2 2 2 840.0000 1.0000000 9.000000
## 3 3 3 810.0000 3.0000000 9.000000
## 4 4 4 840.0000 3.0000000 9.000000
## 5 5 5 810.0000 1.0000000 11.000000
## 6 6 6 840.0000 1.0000000 11.000000
## 7 7 7 810.0000 3.0000000 11.000000
## 8 8 8 840.0000 3.0000000 11.000000
## 9 9 9 825.0000 2.0000000 10.000000
## 10 10 10 825.0000 2.0000000 10.000000
## 11 11 11 825.0000 2.0000000 10.000000
## 12 12 12 825.0000 2.0000000 10.000000
## 13 1 1 799.7731 2.0000000 10.000000
## 14 2 2 850.2269 2.0000000 10.000000
## 15 3 3 825.0000 0.3182072 10.000000
## 16 4 4 825.0000 3.6817928 10.000000
## 17 5 5 825.0000 2.0000000 8.318207
## 18 6 6 825.0000 2.0000000 11.681793
## 19 7 7 825.0000 2.0000000 10.000000
## 20 8 8 825.0000 2.0000000 10.000000
##
## Data are stored in coded form using these coding formulas ...
## x1 ~ (Suhu - 825)/15
## x2 ~ (Tekanan - 2)/1
## x3 ~ (pH - 10/1)
Import Data CCD
library(readxl)
DataCCD<-read_xlsx("D:/Rancob/DataFull.xlsx",sheet = "RSM")
DataCCD
## # A tibble: 20 × 4
## x1 x2 x3 y
## <dbl> <dbl> <dbl> <dbl>
## 1 -1 -1 -1 66
## 2 -1 -1 1 70
## 3 -1 1 -1 78
## 4 -1 1 1 60
## 5 1 -1 -1 80
## 6 1 -1 1 70
## 7 1 1 -1 100
## 8 1 1 1 75
## 9 -1.68 0 0 100
## 10 1.68 0 0 80
## 11 0 -1.68 0 68
## 12 0 1.68 0 63
## 13 0 0 -1.68 65
## 14 0 0 1.68 82
## 15 0 0 0 113
## 16 0 0 0 100
## 17 0 0 0 118
## 18 0 0 0 88
## 19 0 0 0 100
## 20 0 0 0 85
Analisis Data CCD
ModelCCD<- rsm(y ~ SO(x1,x2,x3),data=DataCCD)
summary(ModelCCD)
##
## Call:
## rsm(formula = y ~ SO(x1, x2, x3), data = DataCCD)
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 100.6661 5.5637 18.0933 5.702e-09 ***
## x1 1.2715 3.6914 0.3444 0.737651
## x2 1.3613 3.6914 0.3688 0.719983
## x3 -1.4945 3.6914 -0.4048 0.694115
## x1:x2 2.8750 4.8231 0.5961 0.564360
## x1:x3 -2.6250 4.8231 -0.5443 0.598187
## x2:x3 -4.6250 4.8231 -0.9589 0.360202
## x1^2 -3.7675 3.5935 -1.0484 0.319121
## x2^2 -12.4296 3.5935 -3.4589 0.006134 **
## x3^2 -9.6011 3.5935 -2.6718 0.023419 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Multiple R-squared: 0.6631, Adjusted R-squared: 0.3598
## F-statistic: 2.186 on 9 and 10 DF, p-value: 0.1194
##
## Analysis of Variance Table
##
## Response: y
## Df Sum Sq Mean Sq F value Pr(>F)
## FO(x1, x2, x3) 3 77.9 25.96 0.1395 0.9341
## TWI(x1, x2, x3) 3 292.4 97.46 0.5237 0.6757
## PQ(x1, x2, x3) 3 3291.7 1097.25 5.8962 0.0139
## Residuals 10 1860.9 186.09
## Lack of fit 5 1001.6 200.32 1.1656 0.4353
## Pure error 5 859.3 171.87
##
## Stationary point of response surface:
## x1 x2 x3
## 0.2598320 0.1108666 -0.1400497
##
## Eigenanalysis:
## eigen() decomposition
## $values
## [1] -3.078922 -8.953288 -13.765960
##
## $vectors
## [,1] [,2] [,3]
## x1 0.9414140 0.3309019 -0.06514377
## x2 0.2099914 -0.4239868 0.88098739
## x3 -0.2639003 0.8430535 0.46863366
qf(0.05,3,10,lower.tail = FALSE)
## [1] 3.708265
Uji kesesuaian model regresi (Lack of Fit):
\(H_0\) : Model regresi cocok (tidak
ada lack of fit).
\(H_1\) : Model regresi tidak cocok
(ada lack of fit).
Dari uji Lack of Fit terhadap model diperoleh \(p-value = 0.4353 > \alpha = 0.05\) yang
mana tidak tolak \(H_0\). Artinya model
regresi cocok.
Uji parameter regresi secara serentak (kuadratik):
\(H_0\) : \(\beta_i=0, i = 1,2,3,...,k\).
\(H_1\) : Minimal ada satu \(\beta_i≠0\).
\(F-hitung\) pada model kuadratik
sebesar \(5.8962\) (lihat PQ(x1, x2,
x3)), sedangkan \(Ftabel = F(3;10;0.05) =
3.7083\). Karena \(Fhitung >
Ftabel\) maka tolak \(H_0\).
Kesimpulannya minimal ada satu faktor yang memberikan sumbangan berarti
terhadap model.
Berdasarkan hasil analisis dapat dilihat bahwa untuk titik optimal atau taraf optimal dari ketiga faktor yang mengoptimalkan nilai respon adalah X1 = 0.2598320, X2 = 0.1108666, X3 = -0.1400497. Namun ketiga nilai tersebut masih dalam taraf coded, sehingga perlu dilakukan transformasi ulang ke taraf asal menggunakan formula sebelumnya.
Contour Plot CCD
2D
contour(ModelCCD, ~ x1 + x2 + x3, image = TRUE, main="second-order model")
3D
persp(ModelCCD, ~ x1 + x2 + x3, col=terrain.colors(50), contours="color", zlab = "y", main="second-order model")
Box Behken Design
Box Behken Design merupakan salah satu rancangan dalam RSM yang tidak menambahkan faktorial atau fraksional faktorial ke dalam model. Titik yang dicobakan merupakan titik tengah dari suatu garis dan titik center nya. Berbeda dengan CCD yang dapat diaplikasikan pada 2 faktor, dalam Box Behken design faktor minimal yang dicobakan adalah sebanyak 3 faktor.
BBD 3 Faktor
BBD3f<-bbd(3, randomize=FALSE, n0=3)
BBD3f
## run.order std.order x1.as.is x2.as.is x3.as.is
## 1 1 1 -1 -1 0
## 2 2 2 1 -1 0
## 3 3 3 -1 1 0
## 4 4 4 1 1 0
## 5 5 5 -1 0 -1
## 6 6 6 1 0 -1
## 7 7 7 -1 0 1
## 8 8 8 1 0 1
## 9 9 9 0 -1 -1
## 10 10 10 0 1 -1
## 11 11 11 0 -1 1
## 12 12 12 0 1 1
## 13 13 13 0 0 0
## 14 14 14 0 0 0
## 15 15 15 0 0 0
##
## Data are stored in coded form using these coding formulas ...
## x1 ~ x1.as.is
## x2 ~ x2.as.is
## x3 ~ x3.as.is
Langkah analisis pada BBD sama dengan langkah analisis pada CCD.