library(readxl)
library(MVN)
library(ggplot2)
library(RVAideMemoire)
## *** Package RVAideMemoire v 0.9-83-7 ***
library(car)
## Loading required package: carData
library(psych)
##
## Attaching package: 'psych'
## The following object is masked from 'package:car':
##
## logit
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
#IMPORT DATA
dataa <- read.table(text = "x1 x2 x3 x4 x5
71.83 8.74 5.34 10.99 864
73.86 6.35 5.4 12.53 1314
70.24 5.61 4.51 14.99 1275
69.14 6.26 4.98 14.9 915
71.37 5.11 5.66 16.34 1048
74.28 4.02 5.07 11.33 729
69.37 4.95 4.3 15.58 899
71.45 4.42 5.04 10.96 1178
75.41 4.05 5.63 9.81 994
77.59 4.2 5.7 12.28 1839
78.65 3.4 5.06 7.58 1890
71.97 1.92 4.98 10.94 552
77.31 4.35 5.53 9.79 1189
75.1 3.87 5.23 12.87 1003
71.49 4.02 4.98 11.72 738
70.63 3.1 3.1 11.49 461
71.89 2.6 5.2 14.17 636
73.59 4.29 5.02 9.31 864
76.71 3.25 2.19 7.24 1955
73.85 3.35 5.17 6.61 1196
74.07 5.38 5.01 12.01 1269
75.13 4.05 4.74 7.17 1060
71.33 2.32 5 9.26 935
73.86 5.76 5.56 9.39 1044
70.2 6.06 5.53 8.92 967
71.4 3.25 5.14 9.67 1128
68.03 6.55 4.14 15.03 1340
70.23 8.6 4.93 7.3 1682
67.95 8.98 3.74 15.78 1172
81.17 5.25 5.45 6.11 6581
83.54 4.58 5.57 8.44 11277
84.99 4.57 5.34 4.66 3618
84.43 5.99 5.79 4.23 4580
76.71 5.02 5.44 6.81 6873
77.02 6.05 5.01 7.68 7238
", header = T)
dataa
## x1 x2 x3 x4 x5
## 1 71.83 8.74 5.34 10.99 864
## 2 73.86 6.35 5.40 12.53 1314
## 3 70.24 5.61 4.51 14.99 1275
## 4 69.14 6.26 4.98 14.90 915
## 5 71.37 5.11 5.66 16.34 1048
## 6 74.28 4.02 5.07 11.33 729
## 7 69.37 4.95 4.30 15.58 899
## 8 71.45 4.42 5.04 10.96 1178
## 9 75.41 4.05 5.63 9.81 994
## 10 77.59 4.20 5.70 12.28 1839
## 11 78.65 3.40 5.06 7.58 1890
## 12 71.97 1.92 4.98 10.94 552
## 13 77.31 4.35 5.53 9.79 1189
## 14 75.10 3.87 5.23 12.87 1003
## 15 71.49 4.02 4.98 11.72 738
## 16 70.63 3.10 3.10 11.49 461
## 17 71.89 2.60 5.20 14.17 636
## 18 73.59 4.29 5.02 9.31 864
## 19 76.71 3.25 2.19 7.24 1955
## 20 73.85 3.35 5.17 6.61 1196
## 21 74.07 5.38 5.01 12.01 1269
## 22 75.13 4.05 4.74 7.17 1060
## 23 71.33 2.32 5.00 9.26 935
## 24 73.86 5.76 5.56 9.39 1044
## 25 70.20 6.06 5.53 8.92 967
## 26 71.40 3.25 5.14 9.67 1128
## 27 68.03 6.55 4.14 15.03 1340
## 28 70.23 8.60 4.93 7.30 1682
## 29 67.95 8.98 3.74 15.78 1172
## 30 81.17 5.25 5.45 6.11 6581
## 31 83.54 4.58 5.57 8.44 11277
## 32 84.99 4.57 5.34 4.66 3618
## 33 84.43 5.99 5.79 4.23 4580
## 34 76.71 5.02 5.44 6.81 6873
## 35 77.02 6.05 5.01 7.68 7238
###UJI INDEPENDENSI
H0 : Variabel Independen H1 : variabel tidak Independen
R <- round(cor(dataa),4)
# Menghitung determinan matriks korelasi
detR <- det(R)
# Menghitung Lambda (Λ)
p <- ncol(dataa)
n <- nrow(dataa)
lambda <- detR^(n/2)
# Bartlett's Test Statistic
p <- ncol(dataa)
n <- nrow(dataa)
chi_square_stat <- -2 * (1 - ((2 * p + 5) / (6 * n))) * log(lambda)
# Derajat kebebasan (df)
df <- (p * (p - 1)) / 2
# Nilai kritis Chi-Square
alpha <- 0.05 # Signifikansi
critical_value <- qchisq(1 - alpha, df)
# Hasil Uji Bartlett
if (chi_square_stat > critical_value) {
result <- "Tolak H0: Variabel tidak independen"
} else {
result <- "Gagal tolak H0: Variabel independen"
}
# Output
cat("Statistik Chi-Square:", chi_square_stat, "\n")
## Statistik Chi-Square: 51.96453
cat("Nilai Kritis Chi-Square:", critical_value, "\n")
## Nilai Kritis Chi-Square: 18.30704
cat("Keputusan:", result, "\n")
## Keputusan: Tolak H0: Variabel tidak independen
###CEK OUTLIER & Membuang Outlier
n <- nrow(dataa)
p <- ncol(dataa)
#vektor rata-rata
xbar <- apply(dataa, 2, mean)
#mahalanobis
d2 <- mahalanobis(dataa,xbar,cov(dataa))
distOrder <- sort(d2)
#quantile
q<-matrix(rep(0,n),n,1)
for (j in 1:n ){
q[j,]=qchisq((j-0.5)/n,df=p)}
d2 <- mahalanobis(dataa,xbar,cov(dataa))
cutoff <- qchisq(0.975, df = ncol(dataa))
outlier <- which(d2 > cutoff)
outlier
## [1] 19 31
data_baru <- dataa[-outlier,]
View(data_baru)
#INPUT : MATRIKS COVARIANCE #Matriks Covariance Data Asli
cov <- cov(dataa)
cov
## x1 x2 x3 x4 x5
## x1 19.512608 -1.40096244 1.14411832 -10.2269148 7092.2649
## x2 -1.400962 2.85448454 0.06852429 0.8423275 424.5781
## x3 1.144118 0.06852429 0.55046101 -0.4602157 406.7896
## x4 -10.226915 0.84232748 -0.46021571 10.6584104 -3666.0195
## x5 7092.264941 424.57805882 406.78958824 -3666.0194706 5714776.8706
#Nilai eigen dan vektor eigen
eigen_val <- eigen(cov)$value
eigen_val
## [1] 5.714788e+06 1.571253e+01 3.805101e+00 2.380124e+00 4.641520e-01
eigen_vec <- eigen(cov)$vector
eigen_vec
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1.241041e-03 0.768783151 0.5730070051 0.267854493 9.427549e-02
## [2,] 7.429419e-05 -0.168114539 -0.2334891419 0.954529441 7.806321e-02
## [3,] 7.118216e-05 0.040004711 0.0613070083 0.103167040 -9.919665e-01
## [4,] -6.414998e-04 -0.615717303 0.7831904016 0.080522981 3.194739e-02
## [5,] 9.999990e-01 -0.001339433 -0.0001957262 -0.000359023 -3.169491e-05
AKU1 <- princomp(dataa, cor = F)
summary(AKU1, loadings = TRUE)
## Importance of components:
## Comp.1 Comp.2 Comp.3 Comp.4
## Standard deviation 2356.1639215 3.906866e+00 1.922598e+00 1.520566e+00
## Proportion of Variance 0.9999961 2.749440e-06 6.658315e-07 4.164834e-07
## Cumulative Proportion 0.9999961 9.999988e-01 9.999995e-01 9.999999e-01
## Comp.5
## Standard deviation 6.714838e-01
## Proportion of Variance 8.121913e-08
## Cumulative Proportion 1.000000e+00
##
## Loadings:
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## x1 0.769 0.573 0.268
## x2 -0.168 -0.233 0.955
## x3 0.103 -0.992
## x4 -0.616 0.783
## x5 1.000
screeplot(AKU1, type="lines", col=2, main="Scree Plot")
Interpretasi:
-dapat dilihat dari scree plot bahwa kurva mulai melandai pada comp.2 maka KU yang dapat diambil adalah sampai KU 2, atau dapat juga dilihat berdasarkan kumulative proportion, didapatkan bahwa pada komponen 1 bernilai 0,7374083 dan di komponen 2 sudah mencapai 0,9953252 atau sudah melebihi dari 80%. Oleh karena itu, jumlah komponen utama yang digunakan cukup 2 KU yaitu KU1 dan KU2 saja karena komponen utama kedua tersebut dapat menjelaskan keragaman sebesar 99,53% dari keragaman total.
-Persamaan komponen utama yang dihasilkan adalah KU1 = -0.898X2 - 0.437X3 KU2 = -0.436X2 + 0.9X3
##korelasi nilai Komponen Utama dengan nilai variabel awal
cor(dataa,AKU1$scores)
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## x1 0.6716278 6.898732e-01 2.530378e-01 9.354941e-02 1.454023e-02
## x2 0.1051214 -3.944251e-01 -2.695789e-01 8.716161e-01 3.147840e-02
## x3 0.2293549 2.137327e-01 1.611870e-01 2.145248e-01 -9.108856e-01
## x4 -0.4697322 -7.475809e-01 4.679551e-01 3.805164e-02 6.666828e-03
## x5 1.0000000 -2.220979e-06 -1.597101e-07 -2.316980e-07 -9.032690e-09
Pada dasarnya ntuk melihat kontribusi dari variabel awal pada komponen utama dapat dilakukan dengan dua cara, yakni melihat korelasi parsialnya, atau hanya melihat koefisien nilai vektor eigennya. Namun, disini dilakukan dengan melihat korelasi parsialnya.
Untuk komponen utama pertama, variabel yang paling berkontribusi adalah X2.
Untuk komponen utama kedua, variabel yang paling berkontribusi adalah X3.
#Matriks Covariance Data Tanpa Outlier
cov2 <- cov(data_baru)
cov2
## x1 x2 x3 x4 x5
## x1 17.64894 -1.2552200 1.2915001 -9.9840798 4743.1549
## x2 -1.25522 2.9454439 -0.0670178 0.7090455 543.8902
## x3 1.29150 -0.0670178 0.3253985 -0.7396634 273.2324
## x4 -9.98408 0.7090455 -0.7396634 10.8687028 -3298.7260
## x5 4743.15487 543.8902367 273.2324337 -3298.7259943 3341697.4053
#Nilai eigen dan vektor eigen
eigen_val2 <- eigen(cov2)$value
eigen_val2
## [1] 3.341708e+06 1.533871e+01 3.744942e+00 2.380346e+00 2.249150e-01
eigen_vec2 <- eigen(cov2)$vector
eigen_vec2
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1.419389e-03 0.791831822 5.596486e-01 0.2287638437 8.637659e-02
## [2,] 1.627573e-04 -0.186856967 -1.372815e-01 0.9723686487 2.715613e-02
## [3,] 8.176497e-05 0.067028615 3.992865e-02 0.0463304934 -9.958747e-01
## [4,] -9.871438e-04 -0.577573561 8.163045e-01 0.0044235215 -5.939663e-03
## [5,] 9.999985e-01 -0.001669136 3.052975e-05 -0.0004823873 -5.145756e-05
AKU2 <- princomp(data_baru, cor = F)
summary(AKU2, loadings = TRUE)
## Importance of components:
## Comp.1 Comp.2 Comp.3 Comp.4
## Standard deviation 1800.1232294 3.856670e+00 1.905639e+00 1.519281e+00
## Proportion of Variance 0.9999935 4.590052e-06 1.120660e-06 7.123098e-07
## Cumulative Proportion 0.9999935 9.999981e-01 9.999992e-01 9.999999e-01
## Comp.5
## Standard deviation 4.670112e-01
## Proportion of Variance 6.730499e-08
## Cumulative Proportion 1.000000e+00
##
## Loadings:
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## x1 0.792 0.560 0.229
## x2 -0.187 -0.137 0.972
## x3 -0.996
## x4 -0.578 0.816
## x5 1.000
screeplot(AKU2, type="lines", col=2, main="Scree Plot")
Interpretasi:
-dapat dilihat dari scree plot bahwa kurva mulai melandai pada comp.2 maka KU yang dapat diambil adalah sampai KU 2, atau dapat juga dilihat berdasarkan kumulative proportion, didapatkan bahwa pada komponen 1 bernilai 0,7500355 dan di komponen 2 sudah mencapai 0,887379 atau sudah melebihi dari 80%. Oleh karena itu, jumlah komponen utama yang digunakan cukup 2 KU yaitu KU1 dan KU2 saja karena komponen utama kedua tersebut dapat menjelaskan keragaman sebesar 88,38% dari keragaman total.
-Persamaan komponen utama yang dihasilkan adalah KU1 = 0.303X1 -0.133X2 + 0.943X4 KU2 = 0.942X1 + 0.145X2 - 0.101X3 - 0.286X4
##korelasi nilai Komponen Utama dengan nilai variabel awal
cor(data_baru,AKU2$scores)
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## x1 0.6176270 7.381897e-01 2.577974e-01 8.401331e-02 9.750928e-03
## x2 0.1733602 -4.264109e-01 -1.547958e-01 8.741292e-01 7.504155e-03
## x3 0.2620256 4.602003e-01 1.354563e-01 1.253081e-01 -8.279539e-01
## x4 -0.5473634 -6.861402e-01 4.791658e-01 2.070138e-03 -8.544413e-04
## x5 1.0000000 -3.576042e-06 3.231935e-08 -4.071293e-07 -1.334980e-08
Pada dasarnya ntuk melihat kontribusi dari variabel awal pada komponen utama dapat dilakukan dengan dua cara, yakni melihat korelasi parsialnya, atau hanya melihat koefisien nilai vektor eigennya. Namun, disini dilakukan dengan melihat korelasi parsialnya.
Untuk komponen utama pertama, variabel yang paling berkontribusi adalah X4.
Untuk komponen utama kedua, variabel yang paling berkontribusi adalah X1.
#Matriks Korelasi Data Asli yang distandarisasi
cor <- cor(scale(dataa))
cor
## x1 x2 x3 x4 x5
## x1 1.0000000 -0.18771760 0.34910012 -0.7091543 0.6716262
## x2 -0.1877176 1.00000000 0.05466601 0.1527112 0.1051221
## x3 0.3491001 0.05466601 1.00000000 -0.1899993 0.2293543
## x4 -0.7091543 0.15271120 -0.18999927 1.0000000 -0.4697307
## x5 0.6716262 0.10512211 0.22935431 -0.4697307 1.0000000
eigen_val3 <- eigen(cor)$value
eigen_val3
## [1] 2.3957918 1.1026973 0.8379051 0.4688605 0.1947453
eigen_vec3 <- eigen(cor)$vector
eigen_vec3
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0.60130730 0.09257322 0.03812047 -0.05073952 0.7910955
## [2,] -0.08836959 -0.87954366 0.30430500 0.30868674 0.1752277
## [3,] 0.30262988 -0.35379562 -0.87275675 0.02135535 -0.1452013
## [4,] -0.52803640 -0.18424248 -0.19006712 -0.70824291 0.3866507
## [5,] 0.51011084 -0.24231493 0.32880912 -0.63251398 -0.4157896
AKU3<-princomp(dataa, cor=T)
summary(AKU3, loadings=TRUE)
## Importance of components:
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## Standard deviation 1.5478345 1.0500940 0.9153716 0.6847339 0.44129957
## Proportion of Variance 0.4791584 0.2205395 0.1675810 0.0937721 0.03894906
## Cumulative Proportion 0.4791584 0.6996978 0.8672788 0.9610509 1.00000000
##
## Loadings:
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## x1 0.601 0.791
## x2 -0.880 0.304 -0.309 0.175
## x3 0.303 -0.354 -0.873 -0.145
## x4 -0.528 -0.184 -0.190 0.708 0.387
## x5 0.510 -0.242 0.329 0.633 -0.416
screeplot(AKU3, type="lines", col=2, main="Scree Plot")
Interpretasi:
-dapat dilihat dari scree plot bahwa kurva mulai melandai pada comp.2 maka KU yang dapat diambil adalah sampai KU 2, atau dapat juga dilihat berdasarkan kumulative proportion, didapatkan bahwa pada komponen 1 bernilai 0,5989643 dan di komponen 2 sudah mencapai 0,8246899 atau sudah melebihi dari 80%. Oleh karena itu, jumlah komponen utama yang digunakan cukup 2 KU yaitu KU1 dan KU2 saja karena komponen utama kedua tersebut dapat menjelaskan keragaman sebesar 82,46% dari keragaman total.
-Persamaan komponen utama yang dihasilkan adalah KU1 = 0.537X1 - 0.517X2 - 0.330X3 - 0.579X4 KU2 = 0.317X1 + 0.178X2 + 0.861X3 - 0.356X4
cor(dataa,AKU3$scores)
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## x1 0.9307242 0.09721057 0.03489439 0.03474307 0.34911010
## x2 -0.1367815 -0.92360347 0.27855214 -0.21136827 0.07732790
## x3 0.4684210 -0.37151864 -0.79889672 -0.01462273 -0.06407727
## x4 -0.8173130 -0.19347192 -0.17398204 0.48495792 0.17062878
## x5 0.7895672 -0.25445344 0.30098252 0.43310376 -0.18348779
Pada dasarnya ntuk melihat kontribusi dari variabel awal pada komponen utama dapat dilakukan dengan dua cara, yakni melihat korelasi parsialnya, atau hanya melihat koefisien nilai vektor eigennya. Namun, disini dilakukan dengan melihat korelasi parsialnya.
Untuk komponen utama pertama, variabel yang paling berkontribusi adalah X4.
Untuk komponen utama kedua, variabel yang paling berkontribusi adalah X3.
#Matriks Korelasi Data Tanpa Outlier yang distandarisasi
cor2 <- cor(scale(data_baru))
cor2
## x1 x2 x3 x4 x5
## x1 1.0000000 -0.17409452 0.53892374 -0.7208748 0.6176243
## x2 -0.1740945 1.00000000 -0.06845529 0.1253170 0.1733614
## x3 0.5389237 -0.06845529 1.00000000 -0.3933123 0.2620239
## x4 -0.7208748 0.12531696 -0.39331226 1.0000000 -0.5473610
## x5 0.6176243 0.17336137 0.26202391 -0.5473610 1.0000000
#Nilai eigen dan vektor eigen
eigen_val4 <- eigen(cor2)$value
eigen_val4
## [1] 2.5792028 1.1111802 0.7191886 0.3726471 0.2177813
eigen_vec4 <- eigen(cor2)$vector
eigen_vec4
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0.57244009 0.08329943 -0.05701651 -0.06124389 0.8114012
## [2,] -0.07157759 -0.89767666 0.27456491 0.28296030 0.1833053
## [3,] 0.40825972 0.13985020 0.85766674 -0.12244668 -0.2513573
## [4,] -0.53078785 -0.04060973 0.25487842 -0.73153575 0.3413320
## [5,] 0.46773631 -0.40746852 -0.34757442 -0.60501645 -0.3582447
AKU4 <- princomp(data_baru, cor = T)
summary(AKU4, loadings = TRUE)
## Importance of components:
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## Standard deviation 1.6059897 1.0541253 0.8480499 0.61044828 0.46667045
## Proportion of Variance 0.5158406 0.2222360 0.1438377 0.07452942 0.04355626
## Cumulative Proportion 0.5158406 0.7380766 0.8819143 0.95644374 1.00000000
##
## Loadings:
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## x1 0.572 0.811
## x2 -0.898 -0.275 -0.283 0.183
## x3 0.408 0.140 -0.858 0.122 -0.251
## x4 -0.531 -0.255 0.732 0.341
## x5 0.468 -0.407 0.348 0.605 -0.358
screeplot(AKU4, type="lines", col=2, main="Scree Plot")
Interpretasi:
-scree plot dari AKU yang didapatkan kurang bisa menunjukkan pada comp berapa mulai melandai untuk menentukan sampai KU berapa yang diambil, sehingga dapat dilihat berdasarkan kumulative proportion, didapatkan bahwa pada komponen 1 bernilai 0,4563854, di komponen 2 mencapai 0,7077523, dan di komponen 3 sudah mencapai 0,9018976 atau sudah melebihi dari 80%. Oleh karena itu, jumlah komponen utama yang digunakan cukup 2 KU yaitu KU1 dan KU2 saja karena komponen utama kedua tersebut dapat menjelaskan keragaman sebesar 90,19% dari keragaman total.
-Persamaan komponen utama yang dihasilkan adalah KU1 = 0.513X1 - 0.502X2 - 0.358X3 + 0.597X4 KU2 = 0.476X1 + 0.403X2 + 0.699X3 + 0.349X4 KU3= 0.487X1 + 0.618X2 - 0.568X3 - 0.240X4
##korelasi nilai Komponen Utama dengan nilai variabel awal
cor(data_baru,AKU4$scores)
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## x1 0.9193329 0.08780804 0.04835285 0.03738623 0.37865695
## x2 -0.1149529 -0.94626369 -0.23284474 -0.17273263 0.08554318
## x3 0.6556609 0.14741963 -0.72734418 0.07474737 -0.11730103
## x4 -0.8524398 -0.04280775 -0.21614962 0.44656474 0.15928957
## x5 0.7511797 -0.42952288 0.29476045 0.36933125 -0.16718222
Pada dasarnya ntuk melihat kontribusi dari variabel awal pada komponen utama dapat dilakukan dengan dua cara, yakni melihat korelasi parsialnya, atau hanya melihat koefisien nilai vektor eigennya. Namun, disini dilakukan dengan melihat korelasi parsialnya.
Untuk komponen utama pertama, variabel yang paling berkontribusi adalah X4.
Untuk komponen utama kedua, variabel yang paling berkontribusi adalah X3.
Untuk komponen utama ketiga, variabel yang paling berkontribusi adalah X2.