#Menyiapkan Dataset
library(readxl)
dataset_4 <- read_excel("F:/APG_Praktikum/APG_Bu Sarni/Pertemuan 4/dataset_4.xlsx")
head(dataset_4,10)
## # A tibble: 10 x 8
## X11 X21 X31 X41 X12 X22 X32 X42
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 15 17 24 14 13 14 12 21
## 2 17 15 32 26 14 12 14 26
## 3 15 14 29 23 12 19 21 21
## 4 13 12 10 16 12 13 10 16
## 5 20 17 26 28 11 20 16 16
## 6 15 21 26 21 12 9 14 18
## 7 15 13 26 22 10 13 18 24
## 8 13 5 22 22 10 8 13 23
## 9 14 7 30 17 12 20 19 23
## 10 17 15 30 27 11 10 11 27
populasi1 <- matrix(c(dataset_4$X11,dataset_4$X21,dataset_4$X31,dataset_4$X41),32,4)
populasi2 <- matrix(c(dataset_4$X12,dataset_4$X22,dataset_4$X32,dataset_4$X42),32,4)
#Modifikasi
gabung=rbind(populasi1,populasi2)
colnames(gabung)=c("x1","x2","x3","x4")
ind_populasi=factor(c(rep(1,32),rep(2,32)))
#Analisis Deskriptif
summary(dataset_4)
## X11 X21 X31 X41
## Min. :10.00 Min. : 5.00 Min. :10.00 Min. :14.00
## 1st Qu.:15.00 1st Qu.:14.00 1st Qu.:25.75 1st Qu.:21.00
## Median :16.00 Median :16.00 Median :28.50 Median :23.00
## Mean :15.97 Mean :15.91 Mean :27.19 Mean :22.75
## 3rd Qu.:18.00 3rd Qu.:18.25 3rd Qu.:30.25 3rd Qu.:26.00
## Max. :20.00 Max. :21.00 Max. :34.00 Max. :29.00
## X12 X22 X32 X42
## Min. : 2.00 Min. : 5.00 Min. : 7.00 Min. : 9.00
## 1st Qu.:11.75 1st Qu.:10.00 1st Qu.:13.00 1st Qu.:18.00
## Median :13.00 Median :15.00 Median :16.00 Median :23.00
## Mean :12.34 Mean :13.91 Mean :16.72 Mean :21.94
## 3rd Qu.:14.00 3rd Qu.:17.00 3rd Qu.:21.25 3rd Qu.:26.00
## Max. :17.00 Max. :21.00 Max. :26.00 Max. :28.00
#Asumsi Sigma1 = Sigma2
multivariate<-function(mdt1, mdt2,Ho,alfa=0.05){
#populasi 1
n1<-nrow(mdt1)
p1<-ncol(mdt1)
#Membentuk vektor rata-rata sampel
xbar1=apply(mdt1, 2, mean)
varcovar1=cov(mdt1)
#populasi 2
n2<-nrow(mdt2)
p2<-ncol(mdt2)
#Membentuk vektor rata-rata sampel
xbar2=apply(mdt2, 2, mean)
varcovar2=cov(mdt2)
#membentuk S_pooled
spl=((n1-1)/(n1+n2-2))*varcovar1 + ((n2-1)/(n1+n2-2))*varcovar2
#T hotelling
Tsq<-(n1*n2/(n1+n2))*(t((xbar1-xbar2)-Ho)%*%solve(spl)%*%((xbar1-xbar2)-Ho))
#wilayah kritis
Ftab<-qf(1-alfa,p1,n1+n2-p1-1)
csq<-((n1+n2-2)*p1/(n1+n2-p1-1))*Ftab
uji<-ifelse(Tsq>csq, "Tolak Ho","Gagal Tolak Ho")
hasil<-list(xbar1, varcovar1, xbar2, varcovar2,spl,Tsq,Ftab,csq,uji)
names(hasil)<-c("Vektor rata 1","matriks var-covar1","Vektor rata 2",
"matriks var-covar2","s-pooled","T-square","F tabel","c-square","keputusan")
return(hasil)
}
Ho = matrix(c(0,0,0,0),4,1)
multivariate(populasi1,populasi2,Ho)
## $`Vektor rata 1`
## [1] 15.96875 15.90625 27.18750 22.75000
##
## $`matriks var-covar1`
## [,1] [,2] [,3] [,4]
## [1,] 5.192540 4.545363 6.522177 5.250000
## [2,] 4.545363 13.184476 6.760081 6.266129
## [3,] 6.522177 6.760081 28.673387 14.467742
## [4,] 5.250000 6.266129 14.467742 16.645161
##
## $`Vektor rata 2`
## [1] 12.34375 13.90625 16.71875 21.93750
##
## $`matriks var-covar2`
## [,1] [,2] [,3] [,4]
## [1,] 9.136089 7.549395 4.454637 4.151210
## [2,] 7.549395 18.603831 9.650202 5.445565
## [3,] 4.454637 9.650202 28.789315 12.917339
## [4,] 4.151210 5.445565 12.917339 27.995968
##
## $`s-pooled`
## [,1] [,2] [,3] [,4]
## [1,] 7.164315 6.047379 5.488407 4.700605
## [2,] 6.047379 15.894153 8.205141 5.855847
## [3,] 5.488407 8.205141 28.731351 13.692540
## [4,] 4.700605 5.855847 13.692540 22.320565
##
## $`T-square`
## [,1]
## [1,] 98.22791
##
## $`F tabel`
## [1] 2.527907
##
## $`c-square`
## [1] 10.62578
##
## $keputusan
## [,1]
## [1,] "Tolak Ho"
#Selang Kepercayaan Simultan
msimultan<-function(mdt1, mdt2,alfa=0.05){
#populasi 1
n1<-nrow(mdt1)
p1<-ncol(mdt1)
#Membentuk vektor rata-rata sampel
xbar1=apply(mdt1, 2, mean)
varcovar1=cov(mdt1)
#populasi 2
n2<-nrow(mdt2)
p2<-ncol(mdt2)
#Membentuk vektor rata-rata sampel
xbar2=apply(mdt2, 2, mean)
varcovar2=cov(mdt2)
selisih_xbar=matrix(c(xbar1-xbar2),n1,1)
#membentuk S_pooled
spl=((n1-1)/(n1+n2-2))*varcovar1 + ((n2-1)/(n1+n2-2))*varcovar2
Ftab<-qf(1-alfa,p1,n1+n2-p1-1)
csq<-((n1+n2-2)*p1/(n1+n2-p1-1))*Ftab
#Definisi variabel loop
ci_lower=matrix()
ci_upper=matrix()
ci=matrix()
for (i in 1 : p1){
ci_lower=selisih_xbar[i,]-sqrt(csq)*sqrt(((1/n1)+(1/n2))*spl[i,i])
ci_upper=selisih_xbar[i,]+sqrt(csq)*sqrt(((1/n1)+(1/n2))*spl[i,i])
ci<-c(ci_lower, ci_upper)
print(ci)
}
}
msimultan(populasi1,populasi2)
## [1] 1.443739 5.806261
## [1] -1.24892 5.24892
## [1] 6.100592 14.836908
## [1] -3.037608 4.662608
#Otomatis
library(MVTests)
##
## Attaching package: 'MVTests'
## The following object is masked from 'package:datasets':
##
## iris
#Pengujian
TwoSamplesHT2(data=gabung,group = ind_populasi, alpha = 0.05, Homogenity = TRUE)
## $HT2
## [,1]
## [1,] 98.22791
##
## $F
## [,1]
## [1,] 23.36874
##
## $df
## [1] 4 59
##
## $p.value
## [,1]
## [1,] 1.307589e-11
##
## $CI
## Lower Upper Important Variables?
## x1 1.443739 5.806261 *TRUE*
## x2 -1.248920 5.248920 FALSE
## x3 6.100592 14.836908 *TRUE*
## x4 -3.037608 4.662608 FALSE
##
## $alpha
## [1] 0.05
##
## $Descriptive1
## x1 x2 x3 x4
## Means 15.968750 15.906250 27.187500 22.750000
## Sd 2.278715 3.631043 5.354754 4.079848
##
## $Descriptive2
## x1 x2 x3 x4
## Means 12.343750 13.906250 16.718750 21.937500
## Sd 3.022596 4.313216 5.365567 5.291122
##
## $Test
## [1] "TwoSamplesHT2"
##
## attr(,"class")
## [1] "MVTests" "list"
#Selang Bonferroni
mbonferroni<-function(mdt1, mdt2,alfa=0.05){
#populasi 1
n1<-nrow(mdt1)
p1<-ncol(mdt1)
#Membentuk vektor rata-rata sampel
xbar1=apply(mdt1, 2, mean)
varcovar1=cov(mdt1)
#populasi 2
n2<-nrow(mdt2)
p2<-ncol(mdt2)
#Membentuk vektor rata-rata sampel
xbar2=apply(mdt2, 2, mean)
varcovar2=cov(mdt2)
selisih_xbar=matrix(c(xbar1-xbar2),n1,1)
#membentuk S_pooled
spl=((n1-1)/(n1+n2-2))*varcovar1 + ((n2-1)/(n1+n2-2))*varcovar2
t_alfa=alfa/(2*p1)
#Definisi variabel loop
ci_lower=matrix()
ci_upper=matrix()
ci=matrix()
for (i in 1 : p1){
ci_lower=selisih_xbar[i,]-(qt(1-t_alfa,n1+n2-2))*sqrt(((1/n1)+(1/n2))*spl[i,i])
ci_upper=selisih_xbar[i,]+(qt(1-t_alfa,n1+n2-2))*sqrt(((1/n1)+(1/n2))*spl[i,i])
ci<-c(ci_lower, ci_upper)
print(ci)
}
}
mbonferroni(populasi1,populasi2)
## [1] 1.903487 5.346513
## [1] -0.56414 4.56414
## [1] 7.021275 13.916225
## [1] -2.226115 3.851115
#Asumsi Sigma1 tidak sama dengan Sigma2
multvar<-function(mdt1, mdt2, Ho,alfa=0.05){
#populasi 1
n1<-nrow(mdt1)
p1<-ncol(mdt1)
#Membentuk vektor rata-rata sampel
xbar1=apply(mdt1, 2, mean)
varcovar1=cov(mdt1)
#populasi 2
n2<-nrow(mdt2)
p2<-ncol(mdt2)
#Membentuk vektor rata-rata sampel
xbar2=apply(mdt2, 2, mean)
varcovar2=cov(mdt2)
#T hotelling
Tsq<-t((xbar1-xbar2)-Ho)%*%solve((varcovar1/n1)+(varcovar2/n2))%*%((xbar1-xbar2)-Ho)
#wilayah kritis
chis<-qchisq(1-alfa,p1)
uji<-ifelse(Tsq>chis, "Tolak Ho","Gagal Tolak Ho")
hasil<-list(xbar1, varcovar1, xbar2, varcovar2,Tsq,chis,uji)
names(hasil)<-c("Vektor rata 1","matriks var-covar1","Vektor rata 2",
"matriks var-covar2","Statistik Uji","Chi Tabel","Keputusan")
return(hasil)
}
Ho = matrix(c(0,0,0,0),4,1)
multvar(populasi1,populasi2,Ho)
## $`Vektor rata 1`
## [1] 15.96875 15.90625 27.18750 22.75000
##
## $`matriks var-covar1`
## [,1] [,2] [,3] [,4]
## [1,] 5.192540 4.545363 6.522177 5.250000
## [2,] 4.545363 13.184476 6.760081 6.266129
## [3,] 6.522177 6.760081 28.673387 14.467742
## [4,] 5.250000 6.266129 14.467742 16.645161
##
## $`Vektor rata 2`
## [1] 12.34375 13.90625 16.71875 21.93750
##
## $`matriks var-covar2`
## [,1] [,2] [,3] [,4]
## [1,] 9.136089 7.549395 4.454637 4.151210
## [2,] 7.549395 18.603831 9.650202 5.445565
## [3,] 4.454637 9.650202 28.789315 12.917339
## [4,] 4.151210 5.445565 12.917339 27.995968
##
## $`Statistik Uji`
## [,1]
## [1,] 98.22791
##
## $`Chi Tabel`
## [1] 9.487729
##
## $Keputusan
## [,1]
## [1,] "Tolak Ho"
library("DescTools")
HotellingsT2Test(gabung~ind_populasi,test="chi")
##
## Hotelling's two sample T2-test
##
## data: gabung by ind_populasi
## T.2 = 98.228, df = 4, p-value < 2.2e-16
## alternative hypothesis: true location difference is not equal to c(0,0,0,0)
#Deteksi dan Uji Kesamaan Varians 2 Populasi
#Membangun fungsi Box'M
n1 = nrow(populasi1)
n2 = nrow(populasi2)
p = 4 #jumlah variabel
g = 2 #jumlah populasi
u = (sum(1/(n1-1),sum(1/(n2-1)))-1/sum(n1-1,n2-1))*((2*p^2+3*p-1)/(6*(p+1)*(g-1)))
spl=((n1-1)/(n1+n2-2))*var(populasi1) + ((n2-1)/(n1+n2-2))*var(populasi2)
M = sum(n1-1,n2-1)*log(det(spl))-sum((n1-1)*log(det(var(populasi1))),(n2-1)*log(det(var(populasi2))))
C = (1-u)*M
C
## [1] 13.72729
#Membangun fungsi boxM F
df1 = n1-1
df2 = n2-1
C2 =((p-1)*(p+2))/(6*(g-1))*(sum(1/df1^2,1/df2^2)-1/(sum(df1,df2))^2)
a1 = 1/2*(g-1)*p*(p+1)
a2 = (a1+2)/abs(C2-u^2)
b1=(1-u-a1/a2)/a1
b2 = (1-u-2/a2)/a2
lnM = 1/2*sum((n1-1)*log(det(var(populasi1))),(n2-1)*log(det(var(populasi2))))-1/2*sum(n1-1,n2-1)*log(det(spl))
#Kondisi C2 dan C1
if (C2 > u^2){
F = -2*b1*lnM
print(F)
} else {
F = -(a2*b2*lnM)/(a1*(1+2*b2*lnM))
print(F)
}
## [1] 1.371926
#Keputusan
qf(0.05,a1,a2)
## [1] 0.3939864
#Box'M
library(biotools)
## Loading required package: MASS
## ---
## biotools version 4.2
boxM(gabung,ind_populasi)
##
## Box's M-test for Homogeneity of Covariance Matrices
##
## data: gabung
## Chi-Sq (approx.) = 13.727, df = 10, p-value = 0.1858
#Coba di library (MVnTests)