Tugas Akhir Anreg
Data
Inisialisasi Library
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## Warning: package 'plotly' was built under R version 4.3.2
## Loading required package: ggplot2
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
## Warning: package 'lmtest' was built under R version 4.3.2
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.3.2
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
##
## Attaching package: 'MASS'
## The following object is masked from 'package:plotly':
##
## select
## The following object is masked from 'package:dplyr':
##
## select
## Warning: package 'olsrr' was built under R version 4.3.2
##
## Attaching package: 'olsrr'
## The following object is masked from 'package:MASS':
##
## cement
## The following object is masked from 'package:datasets':
##
## rivers
## Warning: package 'ggcorrplot' was built under R version 4.3.3
## Warning: package 'GGally' was built under R version 4.3.2
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
Import Data
dt <- read_xlsx("D:\\KULIAHH\\SEMESTER 4\\ANREG\\TUGAS AKHIR\\DATA TUGAS AKHIR.xlsx", sheet="Data")
dt## # A tibble: 22 × 13
## Y X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 27.2 65.2 6.92 152414 11.9 0.39 58.8 3.52 10199 12696 67.6 3.93
## 2 28.1 67.0 7.57 255498 5.87 0.3 61.8 2.21 16617 36053 65.8 2.02
## 3 21.8 65.8 7.42 376837 6.17 1.18 76.4 3.22 13793 59622 65.6 4.2
## 4 25.2 63.6 6.97 474521 7.71 1.03 67.9 2.64 10953 57201 66.9 2.09
## 5 21.8 65.2 8.16 271277 3.98 0.45 80.6 1.96 11511 42634 67.6 1.2
## 6 14.3 63.8 7.39 231008 6.34 0.71 84.0 5.45 13997 45693 65.6 2.23
## 7 20.0 63.0 8.45 221536 1.75 0.63 81.6 2.52 9900 22483 62.4 0.78
## 8 24.8 66.1 8.26 141391 3.95 1.2 87.4 2.55 8767 21220 67.9 2.04
## 9 11.8 65.8 8.04 288310 3.69 0.13 93.0 3.79 12818 35172 66.0 1.66
## 10 12.6 66.9 6.98 335360 5.02 0.5 80.7 2.62 10797 58147 68.3 0.93
## # ℹ 12 more rows
## # ℹ 1 more variable: X12 <dbl>
Model Asli
##
## Call:
## lm(formula = Y ~ ., data = dt)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.3507 -2.7746 0.2035 2.3372 5.7922
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 9.392e+01 6.070e+01 1.547 0.1562
## X1 -4.935e-01 1.413e+00 -0.349 0.7349
## X2 -3.017e+00 4.584e+00 -0.658 0.5269
## X3 -7.297e-06 2.924e-05 -0.250 0.8085
## X4 -4.575e-01 8.460e-01 -0.541 0.6018
## X5 3.548e+00 4.050e+00 0.876 0.4039
## X6 -1.142e-01 1.856e-01 -0.616 0.5534
## X7 -3.217e+00 1.558e+00 -2.065 0.0689 .
## X8 9.280e-04 7.264e-04 1.278 0.2334
## X9 -1.359e-04 2.073e-04 -0.655 0.5285
## X10 -1.618e-01 1.293e+00 -0.125 0.9032
## X11 1.978e+00 1.368e+00 1.446 0.1821
## X12 5.806e-02 3.227e-01 0.180 0.8612
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.99 on 9 degrees of freedom
## Multiple R-squared: 0.7668, Adjusted R-squared: 0.4558
## F-statistic: 2.466 on 12 and 9 DF, p-value: 0.09121
Diperoleh model sebagai berikut
\[
\hat Y = 0.9392 - 0.4935X_1 - 3.017X_2 - 0.000007X_3 - 0.4575X_4 +
3.548X_5 - 0.1142X_6 - 3.217X_7 + 0.0009X_8 - 0.0002X_9 - 0.1618X_{10} +
1.978X_{11} + 0.05806X_{12} + e
\]
Hasil tersebut belum bisa dipastikan menjadi model terbaik karena belum melalui serangkaian uji, sehingga diperlukan pengecekan nilai korelasi dan multikolinearitas antarvariabel X dengan pembandingan nilai VIF yang lebih dari 10
Reduksi Variabel X
Eksplorasi Korelasi Data
Hipotesis: H0 : Tidak ada korelasi antarpeubah H1 : Ada korelasi antarpeubah
Dengan minimal ditandai oleh bintang satu (*) yang berarti variabel X tersebut tolak H0 atau ada korelasi dengan Y, maka hanya X1, X2, X4, X6, X7, X8, X9, dan X12 yang mempunyai korelasi. Sedangkan variabel X3, X5, X10, dan X11 memiliki korelasi yang kecil dan telah terwakili oleh variabel X yang lainnya sehingga dapat dihilangkan untuk kemudian diperiksa model dan multikolinearitasnya.
Model Reduksi Hasil Korelasi
##
## Call:
## lm(formula = Y ~ X1 + X2 + X4 + X6 + X7 + X8 + X9 + X12, data = dt)
##
## Residuals:
## Min 1Q Median 3Q Max
## -10.4006 -1.4476 0.5167 2.3660 6.7547
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.806e+01 5.405e+01 1.074 0.3023
## X1 -7.717e-01 6.726e-01 -1.147 0.2719
## X2 9.612e-01 3.126e+00 0.308 0.7633
## X4 4.282e-01 6.137e-01 0.698 0.4976
## X6 -1.058e-01 1.554e-01 -0.681 0.5078
## X7 -2.572e+00 1.415e+00 -1.817 0.0923 .
## X8 9.913e-04 5.710e-04 1.736 0.1062
## X9 -5.652e-05 7.422e-05 -0.762 0.4599
## X12 1.318e-01 2.054e-01 0.642 0.5321
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.906 on 13 degrees of freedom
## Multiple R-squared: 0.6744, Adjusted R-squared: 0.4741
## F-statistic: 3.366 on 8 and 13 DF, p-value: 0.02559
Diperoleh model sebagai berikut
\[
\hat Y = 0.5806 - 0.7717X_1 - 0.9612X_2 + 0.4282X_4 - 0.1058X_6 -
2.572X_7 + 0.0009X_8 - 0.00005X_9 + 0.1318X_{12} + e
\]
Pengecekan Multikolinearitas
## X1 X2 X4 X6 X7 X8 X9 X12
## 6.429485 9.363917 4.320674 3.777043 2.107861 11.289087 10.675684 11.701402
Berdasarkan hasil nilai VIF tersebut, variabel X8, X9, dan X12 memiliki nilai VIF>10 sehingga dinyatakan ada multikolinearitas. Kemudian ketiga variabel tersebut direduksi dan diperika model hasil reduksinya.
Model Hasil Reduksi Multikolinearitas
##
## Call:
## lm(formula = Y ~ X1 + X2 + X4 + X6 + X7, data = dt)
##
## Residuals:
## Min 1Q Median 3Q Max
## -10.5808 -2.2473 -0.8028 2.5361 8.3073
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 63.6722 25.7074 2.477 0.0248 *
## X1 -0.8045 0.5253 -1.531 0.1452
## X2 2.9462 2.6568 1.109 0.2838
## X4 0.7075 0.5500 1.286 0.2167
## X6 -0.1301 0.1351 -0.963 0.3498
## X7 -2.2446 1.3801 -1.626 0.1234
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.974 on 16 degrees of freedom
## Multiple R-squared: 0.588, Adjusted R-squared: 0.4593
## F-statistic: 4.568 on 5 and 16 DF, p-value: 0.008863
Diperoleh model sebagai berikut
\[
\hat Y = 63.6722 - 0.8045X_1 + 2.9462X_2 + 0.7075X_4 - 0.1301X_6 -
2.2446X_7 + e
\]
Eksplorasi Kondisi
Plot Sisaan Vs Y duga
1. Sisaan menyebar di sekitar 0, sehingga nilai harapan galat sama
dengan nol
2. Lebar pita sama untuk setiap nilai dugaan, sehingga ragam
homogen
3. Plot sisaan vs y duga tidak berpola, model pas
Plot Sisaan Vs Urutan
Tebaran tidak berpola, sehingga pas
Uji Formal Asumsi
Pada uji formal asumsi ini, diharapkan nilai p-value > 0.05 dengan kesimpulan tak tolak H0
Kondisi Gaus Markov
1. Nilai Harapan Sisaan sama dengan Nol
H0: Nilai harapan sisaan sama dengan nol
H1: Nilai harapan sisaan tidak sama dengan nol
##
## One Sample t-test
##
## data: model3$residuals
## t = -7.6223e-17, df = 21, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -1.924963 1.924963
## sample estimates:
## mean of x
## -7.055446e-17
Uji t.tes tersebut menunjukkan hasil p-value = 1 > alpha = 0.05, maka tak tolak H0, nilai harapan sisaan sama dengan nol pada taraf nyata 5%. Asumsi terpenuhi.
2. Ragam Sisaan Homogen
\(H0:var[e]=sigma2I\) (ragam sisan
homogen)
\(H1:var[e] != sigma2I\) (ragam siaan
tidak homogen)
##
## studentized Breusch-Pagan test
##
## data: model3
## BP = 3.7978, df = 5, p-value = 0.5789
Uji ini sering disebut dengan uji homokesdasitas yang dilakukan dengan yang dilakukan dengan uji Breusch-Pagan. Karena p-value = 0.5789 > alpha = 0.05, maka tak tolak H0, ragam sisaan homogen pada taraf nyata 5%. Asumsi terpenuhi.
3. Sisaan Saling Bebas
\(H0:E[ei,ej]=0\) (sisaan saling
bebas/tidak ada autokorelasi)
\(H1:E[ei,ej] != 0\) (sisaan tidak
saling bebas/ada autokorelasi)
##
## Durbin-Watson test
##
## data: model3
## DW = 2.2648, p-value = 0.634
## alternative hypothesis: true autocorrelation is greater than 0
Uji ini sering disebut dengan uji autokorelasi yang dilakukan dengan Durbin watson. Karena p-value = 0.634 (pada DW test) > alpha = 0.05, maka tak tolak H0, sisaan saling bebas pada taraf nyata 5%, sehingga asumsi terpenuhi.
Uji Formal Normalitas Sisaan
\(H_0 : N\) (sisaan menyebar Normal) \(H_1 : N\) (sisaan tidak menyebar Normal)
##
## Shapiro-Wilk normality test
##
## data: model3$residuals
## W = 0.9786, p-value = 0.8927
Uji normalitas digunakan untuk mendeteksi normalitas sisaan dengan uji shapiro.test. Karena p-value = 0.8927 > alpha = 0.05, maka tak tolak H0, sehingga sisaan menyebar normal pada taraf nyata 5%.
Pencilan, Titik Leverage, dan Amatan Berpengaruh
Perhitungan ri, ci, Hi, DFFITSi
index <- c(1:22)
ri <- studres(model3)
ci <- cooks.distance(model3)
DFFITSi <- dffits(model3)
hi <- ols_hadi(model3)
hii <- hatvalues(model3)
hasil <- data.frame(index,ri,ci,DFFITSi,hi,hii); round(hasil,4)## index ri ci DFFITSi hadi potential residual hii
## 1 1 0.6250 0.0246 0.3771 0.5192 0.3641 0.1552 0.2669
## 2 2 1.0718 0.0333 0.4490 0.6299 0.1755 0.4543 0.1493
## 3 3 0.4098 0.0027 0.1247 0.1597 0.0926 0.0671 0.0847
## 4 4 0.2912 0.0013 0.0861 0.1214 0.0875 0.0339 0.0805
## 5 5 -0.3112 0.0058 -0.1805 0.3750 0.3364 0.0387 0.2517
## 6 6 -0.2797 0.0086 -0.2210 0.6552 0.6239 0.0312 0.3842
## 7 7 -0.7071 0.0453 -0.5130 0.7240 0.5263 0.1977 0.3448
## 8 8 0.9788 0.0496 0.5447 0.6872 0.3097 0.3775 0.2365
## 9 9 -1.0286 0.0350 -0.4594 0.6178 0.1995 0.4183 0.1663
## 10 10 -1.3271 0.1783 -1.0587 1.3101 0.6364 0.6737 0.3889
## 11 11 1.5135 0.1163 0.8684 1.2121 0.3292 0.8829 0.2477
## 12 12 -0.4663 0.0059 -0.1835 0.2417 0.1549 0.0868 0.1341
## 13 13 -0.4903 0.0094 -0.2321 0.3199 0.2240 0.0959 0.1830
## 14 14 1.9055 0.0612 0.6541 1.5341 0.1178 1.4162 0.1054
## 15 15 0.4461 0.0140 0.2828 0.4811 0.4018 0.0793 0.2866
## 16 16 0.4146 0.0109 0.2485 0.4278 0.3593 0.0686 0.2643
## 17 17 -0.4917 0.0219 -0.3536 0.6134 0.5172 0.0962 0.3409
## 18 18 -0.9233 0.0206 -0.3496 0.4820 0.1434 0.3386 0.1254
## 19 19 -0.2926 0.0163 -0.3036 1.1111 1.0770 0.0341 0.5185
## 20 20 1.1490 0.1287 0.8874 1.1077 0.5965 0.5113 0.3736
## 21 21 -2.7629 0.1732 -1.2123 3.0142 0.1925 2.8217 0.1614
## 22 22 -0.3590 0.2166 -1.1085 9.5872 9.5360 0.0511 0.9051
Plot ri, ci, Hi, DFFITSi, dan Potential Residual
Internally Studentized Residuals Plot (ri)
ggplot(hasil) +
geom_point(aes(y = `ri`, x = `index`),
color="blue",size=2) +
ylab("ri") +
xlab("index") +
ggtitle("Plot ri") +
theme_classic() +
theme(plot.title = element_text(hjust = 0.5))Cook Distance Plot (ci)
ggplot(hasil) +
geom_point(aes(y = `ci`, x = `index`),
color="blue",size=2) +
ylab("ci") +
xlab("index") +
ggtitle("Plot ci") +
theme_classic() +
theme(plot.title = element_text(hjust = 0.5))Difference in Fits Plot (DFFITSi)
ggplot(hasil) +
geom_point(aes(y = `DFFITSi`, x = `index`),
color="blue",size=2) +
ylab("DFFITSi") +
xlab("index") +
ggtitle("Plot DFFITSi") +
theme_classic() +
theme(plot.title = element_text(hjust = 0.5))Pendeteksian Nilai Tidak Biasa
Pencilan atau Outlier
## [1] 21
Pencilan adalah titik amatan yang menjauh pada tren Y walau X nya masih berada pada selang. Dalam data tersebut terdapat dua titik observasi yang terdeteksi sebagai sebuah pencilan, yaitu amatan ke-21 dengan ri bernilai -2.7629 yang absolutnya lebih besar dari 2..
Titik Leverage
titik_leverage <- vector("list", dim(hasil)[1])
for (i in 1:dim(hasil)[1]) {
cutoff <- 2 * 6 / 22
titik_leverage[[i]] <- which(hii > cutoff)
}
leverages <- unlist(titik_leverage)
titik_leverage <- sort(unique(leverages))
titik_leverage## [1] 22
Titik leverage adalah nilai amatan yang X nya jauh lebih besar dari X lainnya dan terletak hampir dalam garis regresi tetapi juga menjauh. Terdapat dua titik observasi yang termasuk sebagai titik leverage pada data tersebut, yaitu amatan ke-22 dengan nilai hii 0.9051. Kedua titik ini memiliki nilai hii yang lebih besar dari 2*p/n = 0.5454, dengan p = 6 adalah banyaknya parameter dan n = 22 adalah banyaknya amatan.
Amatan Berpengaruh
amatan_berpengaruh <- vector("list", dim(hasil)[1])
for (i in 1:dim(hasil)[1]) {
cutoff <- 2 * sqrt((6 / 22))
amatan_berpengaruh[[i]] <- which(abs(DFFITSi) > cutoff)
}
berpengaruh <- unlist(amatan_berpengaruh)
amatan_berpengaruh <- sort(unique(berpengaruh))
amatan_berpengaruh## [1] 10 21 22
Amatan berpengaruh adalah nilai amatan yang memengaruhi hasil dugaan parameter regresi, R-square, dan uji hipotesis jika disisihkan. Hasil pada data tersebut menunjukkan bahwa amatan ke-10, 21, dan 22 termasuk sebagai amatan berpengaruh yang memiliki nilai DFFITSi -1.0587, -1.2123, dan -1.1085. Absolut dari nilai tersebut lebih besar dari 2*sqrt(p/n) = 1.0445.
data <- dt[-c(21, 22),]
model_berpengaruh <- lm(Y~X1+X2+X4+X6+X7, data=data)
summary(model3)$r.squared## [1] 0.5880444
## [1] 0.6563153
Berdasarkan hasil tersebut, nilai adj-Rsquare lebih kecil ketika pencilan dan leverage dikeluarkan dari data dibandingkan yang tidak. Oleh karenanya kedua titik tersebut disisihkan.
#pembentukan data baru tanpa amatan 9 dan 19
dt2 <- subset(dt, select = -c(X3, X5, X8, X9, X10, X11, X12))
dt2 <- dt2[-c(21, 22),]
#pemodelan rlb terbaru
model4 <- lm(Y~.,data= dt2)
summary(model4)##
## Call:
## lm(formula = Y ~ ., data = dt2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.6156 -2.8722 0.1116 2.3695 7.4795
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 61.30733 39.37661 1.557 0.1418
## X1 -1.03474 0.50058 -2.067 0.0577 .
## X2 4.72896 3.61451 1.308 0.2118
## X4 1.14999 0.60974 1.886 0.0802 .
## X6 -0.09898 0.12744 -0.777 0.4503
## X7 -2.34888 1.29452 -1.814 0.0911 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.322 on 14 degrees of freedom
## Multiple R-squared: 0.6563, Adjusted R-squared: 0.5336
## F-statistic: 5.347 on 5 and 14 DF, p-value: 0.005904
## Analysis of Variance Table
##
## Response: Y
## Df Sum Sq Mean Sq F value Pr(>F)
## X1 1 185.445 185.445 9.9263 0.007083 **
## X2 1 55.202 55.202 2.9548 0.107647
## X4 1 87.575 87.575 4.6876 0.048143 *
## X6 1 109.740 109.740 5.8740 0.029501 *
## X7 1 61.508 61.508 3.2923 0.091085 .
## Residuals 14 261.552 18.682
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Best Subsets Regression
## -----------------------------
## Model Index Predictors
## -----------------------------
## 1 X6
## 2 X4 X7
## 3 X1 X4 X7
## 4 X1 X2 X4 X7
## 5 X1 X2 X4 X6 X7
## -----------------------------
##
## Subsets Regression Summary
## ---------------------------------------------------------------------------------------------------------------------------------
## Adj. Pred
## Model R-Square R-Square R-Square C(p) AIC SBIC SBC MSEP FPE HSP APC
## ---------------------------------------------------------------------------------------------------------------------------------
## 1 0.4100 0.3772 0.2939 8.0337 124.9836 67.4983 127.9708 499.1876 27.4392 1.4673 0.7211
## 2 0.5203 0.4639 0.3734 5.5394 122.8431 66.2259 126.8260 431.2049 24.6940 1.3421 0.6490
## 3 0.6097 0.5365 0.4462 3.8983 120.7187 65.8920 125.6973 374.2412 22.2763 1.2376 0.5854
## 4 0.6415 0.5459 0.3664 4.6033 121.0193 67.6842 126.9937 368.3101 22.7352 1.2992 0.5975
## 5 0.6563 0.5336 0.2921 6.0000 122.1755 70.1935 129.1457 380.2561 24.2870 1.4371 0.6383
## ---------------------------------------------------------------------------------------------------------------------------------
## AIC: Akaike Information Criteria
## SBIC: Sawa's Bayesian Information Criteria
## SBC: Schwarz Bayesian Criteria
## MSEP: Estimated error of prediction, assuming multivariate normality
## FPE: Final Prediction Error
## HSP: Hocking's Sp
## APC: Amemiya Prediction Criteria
null<-lm(Y~ 1, data=dt2) # 1 here means the intercept
full<-lm(Y~., data=dt2)
step(full, scope=list(lower=null, upper=full),data=datanew, direction='backward', trace=0)##
## Call:
## lm(formula = Y ~ X1 + X4 + X7, data = dt2)
##
## Coefficients:
## (Intercept) X1 X4 X7
## 87.2720 -0.9279 0.6748 -2.8960
##
## Call:
## lm(formula = Y ~ X6 + X1 + X7 + X4 + X2, data = dt2)
##
## Coefficients:
## (Intercept) X6 X1 X7 X4 X2
## 61.30733 -0.09898 -1.03474 -2.34888 1.14999 4.72896
##
## Call:
## lm(formula = Y ~ X1 + X7 + X4, data = dt2)
##
## Coefficients:
## (Intercept) X1 X7 X4
## 87.2720 -0.9279 -2.8960 0.6748
modell1 <- lm(Y~X1+X4+X7, data = dt2)
modell2 <- lm(Y~X1+X2+X4+X6+X7, data = dt2)
summary(modell1)$adj.r.squared## [1] 0.5365348
## [1] 0.5335708
## [1] 120.7187
## [1] 122.1755
##
## Call:
## lm(formula = Y ~ X1 + X4 + X7, data = dt2)
##
## Coefficients:
## (Intercept) X1 X4 X7
## 87.2720 -0.9279 0.6748 -2.8960