Akses Data di sini:
https://docs.google.com/spreadsheets/d/1Vy3fnvyHrovL_0IK2r17H9hOX232P7a2G8GA-0-3iA0/edit?usp=sharing
Rancangan Faktorial \(2^k\) merupakan kasus khusus pada rancangan faktorial dimana rancangan ini terdiri dari beberapa faktor (2 atau lebih) dengan masing-masing taraf dari faktor yang dicobakan sebanyak 2. Rancangan ini membutuhkan sedikit satuan percobaan untuk faktor yang dipelajari.
Apabila faktornya kuantitatif, level dari masing-masing faktor ditandai sebagai min(-) untuk taraf minimum dan max(+) untuk taraf maksimum. Hal ini dikarenakan hanya terdapat 2 taraf pada masing-masing faktor.
Studi Kasus
Sebuah router digunakan untuk memotong lokasi notches pada papan sirkuit. Tingkat getaran pada permukaan papan dianggap sebagai sumber variasi dimensi notches. Ada 2 faktor yang diduga memengaruhi getaran: ukuran bit (A) dan kecepatan potong (B). Dua ukuran bit ( \(\frac{1}{16}\) dan \(\frac{1}{8}\)) dan dua kecepatan (40 dan 90 rpm) dipilih. Empat papan dipotong pada setiap rangkaian. Respon yang diukur adalah getaran yang diukur sebagai vektor resultan dari tiga akselerator pada setiap papan sirkuit uji.
Import Data
library(readxl)
Data2k<-read_xlsx("D:/Rancob/DataFull.xlsx",sheet="Faktorial-2^k")
Data2k
## # A tibble: 16 × 6
## A B Coded.A Coded.B Ulangan Getaran
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.0625 40 -1 -1 1 18.2
## 2 0.0625 40 -1 -1 2 18.9
## 3 0.0625 40 -1 -1 3 12.9
## 4 0.0625 40 -1 -1 4 14.4
## 5 0.125 40 1 -1 1 27.2
## 6 0.125 40 1 -1 2 24
## 7 0.125 40 1 -1 3 22.4
## 8 0.125 40 1 -1 4 22.5
## 9 0.0625 90 -1 1 1 15.9
## 10 0.0625 90 -1 1 2 14.5
## 11 0.0625 90 -1 1 3 15.1
## 12 0.0625 90 -1 1 4 14.2
## 13 0.125 90 1 1 1 41
## 14 0.125 90 1 1 2 43.9
## 15 0.125 90 1 1 3 36.3
## 16 0.125 90 1 1 4 39.9
ANOVA
Data2k$FacCodedA<-as.factor(Data2k$Coded.A)
Data2k$FacCodedB<-as.factor(Data2k$Coded.B)
Data2k
## # A tibble: 16 × 8
## A B Coded.A Coded.B Ulangan Getaran FacCodedA FacCodedB
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <fct> <fct>
## 1 0.0625 40 -1 -1 1 18.2 -1 -1
## 2 0.0625 40 -1 -1 2 18.9 -1 -1
## 3 0.0625 40 -1 -1 3 12.9 -1 -1
## 4 0.0625 40 -1 -1 4 14.4 -1 -1
## 5 0.125 40 1 -1 1 27.2 1 -1
## 6 0.125 40 1 -1 2 24 1 -1
## 7 0.125 40 1 -1 3 22.4 1 -1
## 8 0.125 40 1 -1 4 22.5 1 -1
## 9 0.0625 90 -1 1 1 15.9 -1 1
## 10 0.0625 90 -1 1 2 14.5 -1 1
## 11 0.0625 90 -1 1 3 15.1 -1 1
## 12 0.0625 90 -1 1 4 14.2 -1 1
## 13 0.125 90 1 1 1 41 1 1
## 14 0.125 90 1 1 2 43.9 1 1
## 15 0.125 90 1 1 3 36.3 1 1
## 16 0.125 90 1 1 4 39.9 1 1
Anova2k<-aov(Getaran~FacCodedA*FacCodedB,data=Data2k)
summary(Anova2k)
## Df Sum Sq Mean Sq F value Pr(>F)
## FacCodedA 1 1107.2 1107.2 185.25 1.17e-08 ***
## FacCodedB 1 227.3 227.3 38.02 4.83e-05 ***
## FacCodedA:FacCodedB 1 303.6 303.6 50.80 1.20e-05 ***
## Residuals 12 71.7 6.0
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Hasil ANOVA menunjukkan bahwa terdapat perbedaan baik pada pengaruh ukuran bit, pengaruh kecepatan potong, dan interaksi ukuran bit dengan kecepatan potong pada taraf nyata 5%.
Pemodelan dengan Regresi
Mengubah Taraf Asal ke Taraf Coded
Pengubahan taraf dari taraf asal ke taraf coded 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
Taraf Coded
ModelCoded<-lm(Getaran~Coded.A+Coded.B+Coded.A:Coded.B,data=Data2k)
summary(ModelCoded)
##
## Call:
## lm(formula = Getaran ~ Coded.A + Coded.B + Coded.A:Coded.B, data = Data2k)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.975 -1.550 -0.200 1.256 3.625
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 23.8313 0.6112 38.991 5.22e-14 ***
## Coded.A 8.3187 0.6112 13.611 1.17e-08 ***
## Coded.B 3.7687 0.6112 6.166 4.83e-05 ***
## Coded.A:Coded.B 4.3562 0.6112 7.127 1.20e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.445 on 12 degrees of freedom
## Multiple R-squared: 0.9581, Adjusted R-squared: 0.9476
## F-statistic: 91.36 on 3 and 12 DF, p-value: 1.569e-08
Pada model didapatkan hasil bahwa intercept dan ketiga peubah penjelas signifikan pada taraf nyata 5%. Didapatkan pula nilai RSE yang relatif kecil yaitu sebesar 2.445 dan nilai \(R^2\) yang cenderung besar yaitu sebesar 95.81%.
Taraf Asal
ModelAsli<-lm(Getaran~A+B+A:B,data=Data2k)
summary(ModelAsli)
##
## Call:
## lm(formula = Getaran ~ A + B + A:B, data = Data2k)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.975 -1.550 -0.200 1.256 3.625
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 23.05500 5.38404 4.282 0.001065 **
## A -96.24000 54.48261 -1.766 0.102725
## B -0.37200 0.07731 -4.812 0.000425 ***
## A:B 5.57600 0.78232 7.127 1.2e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.445 on 12 degrees of freedom
## Multiple R-squared: 0.9581, Adjusted R-squared: 0.9476
## F-statistic: 91.36 on 3 and 12 DF, p-value: 1.569e-08
Pada model didapatkan hasil bahwa intercept dan dua peubah penjelas signifikan pada taraf nyata 5%. Didapatkan pula nilai RSE yang relatif kecil yaitu sebesar 2.445 dan nilai \(R^2\) yang cenderung besar yaitu sebesar 95.81%.
Pada hasil model dengan Coded Peubah dan Peubah Asli, terdapat perbedaan model hasil pada signifikansi pengaruh peubah penjelas ke respon. Hal ini dikarenakan adanya perbedaan pada matriks \(X'X\). Selain itu juga diduga adanya multikolinearitas yang memengaruhi hal tersebut karena adanya peubah interaksi pada model.
Cek Nilai VIF
library(car)
vif(ModelAsli)
## A B A:B
## 7.76 10.00 16.76
Residual Plot (Plot Sisaan)
Model Taraf Asal
qqnorm(ModelAsli$residuals)
qqline(ModelAsli$residuals, col="red")
plot(Data2k$Getaran,ModelAsli$residuals,
xlab="Getaran", ylab="residuals")
abline(h=0, col='red')
Model Taraf Coded
qqnorm(ModelCoded$residuals)
qqline(ModelCoded$residuals, col="blue")
plot(Data2k$Getaran,ModelCoded$residuals,
xlab="Getaran", ylab="residuals")
abline(h=0, col='blue')
Contour Plot
2D
library(rsm)
par(mfrow=c(1,2))
contour(ModelCoded,~Coded.A+Coded.B+Coded.A:Coded.B,
image = TRUE,
xlabs = c("Ukuran Bit","Kecepatan Potong"))
contour(ModelAsli,~A+B+A:B,
image = TRUE,
xlabs = c("Ukuran Bit","Kecepatan Potong"))
3D
par(mfrow=c(1,2))
persp(ModelCoded, ~Coded.A+Coded.B+Coded.A:Coded.B, col=terrain.colors(50),
contours="color" ,zlab="Getaran",
xlabs=c("UB", "KP"))
persp(ModelAsli, ~A+B+A:B, col=terrain.colors(50),
contours="color" ,zlab="Getaran",
xlabs=c("UB", "KP"))
Meskipun model regresinya berbeda, namun dapat dilihat pada plot contour bahwa prediksi nilai yang dihasilkan sama.