Perbandingan Dua Vektor Nilai Tengah Sampel Berpasangan

Input Data

library(MASS)
set.seed(456)

n_sbmptn <- 30
n_mandiri <- 30

# Nilai mahasiswa jalur SBMPTN
mu_sbmptn <- c(80, 75)  # (Matematika, Bahasa)
Sigma <- matrix(c(100, 30, 
                  30, 90), 2)  # matriks kovariansi

data_sbmptn <- mvrnorm(n_sbmptn, mu = mu_sbmptn, Sigma = Sigma)

# Nilai mahasiswa jalur Mandiri
mu_mandiri <- c(72, 68)
data_mandiri <- mvrnorm(n_mandiri, mu = mu_mandiri, Sigma = Sigma)

# Gabungkan
data_mhs <- data.frame(
  Jalur = rep(c("SBMPTN", "Mandiri"), each = 30),
  Matematika = c(data_sbmptn[,1], data_mandiri[,1]),
  Bahasa = c(data_sbmptn[,2], data_mandiri[,2])
)

data_mhs
##      Jalur Matematika   Bahasa
## 1   SBMPTN   88.73341 87.96786
## 2   SBMPTN   71.60244 74.14036
## 3   SBMPTN   62.77296 81.46021
## 4   SBMPTN   93.40640 83.23767
## 5   SBMPTN   86.99046 79.12469
## 6   SBMPTN   92.20071 66.21209
## 7   SBMPTN   70.66692 74.05153
## 8   SBMPTN   77.13053 74.04641
## 9   SBMPTN   69.18983 70.30800
## 10  SBMPTN   74.90053 71.08809
## 11  SBMPTN   87.67520 81.80670
## 12  SBMPTN   70.83844 63.09931
## 13  SBMPTN   70.25475 69.37361
## 14  SBMPTN   66.30078 62.51608
## 15  SBMPTN  103.11056 72.68171
## 16  SBMPTN   63.98775 60.16271
## 17  SBMPTN   65.77174 61.70244
## 18  SBMPTN   80.68913 67.47313
## 19  SBMPTN   54.41149 65.70327
## 20  SBMPTN   68.98369 61.35957
## 21  SBMPTN   80.60129 82.51300
## 22  SBMPTN   93.34174 89.00401
## 23  SBMPTN   95.71819 81.16599
## 24  SBMPTN   82.87941 67.99316
## 25  SBMPTN   83.51835 71.46761
## 26  SBMPTN   74.10724 62.30401
## 27  SBMPTN   81.80878 80.88405
## 28  SBMPTN   90.89828 67.82447
## 29  SBMPTN   70.12863 60.93222
## 30  SBMPTN   92.30674 79.34650
## 31 Mandiri   88.80805 87.22295
## 32 Mandiri   76.91536 79.21239
## 33 Mandiri   80.77088 61.12129
## 34 Mandiri   71.68392 52.85060
## 35 Mandiri   68.56560 72.80861
## 36 Mandiri   57.50543 56.56967
## 37 Mandiri   62.85038 51.71567
## 38 Mandiri   86.84178 75.27934
## 39 Mandiri   82.49240 65.04956
## 40 Mandiri   77.70057 74.63313
## 41 Mandiri   74.06629 68.50597
## 42 Mandiri   76.86713 62.96077
## 43 Mandiri   86.22432 81.01813
## 44 Mandiri   60.01811 57.12414
## 45 Mandiri   63.43145 78.46161
## 46 Mandiri   75.49305 59.19466
## 47 Mandiri   65.94521 77.10408
## 48 Mandiri   76.51458 77.48216
## 49 Mandiri   78.91065 77.75244
## 50 Mandiri   71.94176 64.22201
## 51 Mandiri   77.01736 80.77987
## 52 Mandiri   74.83791 72.29703
## 53 Mandiri   48.77215 60.41085
## 54 Mandiri   71.87739 66.88245
## 55 Mandiri   70.17527 57.87334
## 56 Mandiri   69.83846 55.81602
## 57 Mandiri   89.11927 73.54064
## 58 Mandiri   70.40585 53.93310
## 59 Mandiri   63.28460 75.71830
## 60 Mandiri   68.30502 76.46566
# Pisahkan per kelompok
data_sbmptn = subset(data_mhs, Jalur=="SBMPTN")[,2:3]
data_mandiri = subset(data_mhs, Jalur=="Mandiri")[,2:3]

Hitung vektor rataan dan matriks kovarians

xbar_sbmptn = apply(data_sbmptn, 2, mean)
xbar_mandiri = apply(data_mandiri, 2, mean)

cov_sbmptn = cov(data_sbmptn)
cov_mandiri = cov(data_mandiri)

n1 = nrow(data_sbmptn)
n2 = nrow(data_mandiri)

xbar_sbmptn
## Matematika     Bahasa 
##   78.83088   72.36502
xbar_mandiri
## Matematika     Bahasa 
##   72.90601   68.46688
cov_sbmptn
##            Matematika   Bahasa
## Matematika  140.17243 56.19497
## Bahasa       56.19497 73.33674
cov_mandiri
##            Matematika    Bahasa
## Matematika   88.20074  43.66258
## Bahasa       43.66258 100.83380

Uji Hostelling’s (ragam sama)

library(Hotelling)
## Loading required package: corpcor
t2_homogen = hotelling.test(data_sbmptn, data_mandiri, var.equal=TRUE)
t2_homogen
## Test stat:  5.0044 
## Numerator df:  2 
## Denominator df:  57 
## P-value:  0.09454

Uji Hotelling’s T² (ragam tidak sama)

t2_heterogen = hotelling.test(data_sbmptn, data_mandiri, var.equal=FALSE)
t2_heterogen
## Test stat:  5.0044 
## Numerator df:  2 
## Denominator df:  57.0571651848478 
## P-value:  0.09454

Selang Kepercayaan (Simultan & Bonferroni)

Simultan (asumsi homogen)

T.ci = function(mu1, mu2, S_gab, n1, n2, avec=rep(1,length(mu1)), level=0.95){
  p = length(mu1)
  mu = mu1 - mu2
  cval = qf(level, p, n1+n2-p-1) * p * (n1+n2-2) / (n1+n2-p-1)
  zhat = crossprod(avec, mu)
  zvar = crossprod(avec, S_gab %*% avec)*(1/n1+1/n2)
  const = sqrt(cval * zvar)
  c(lower = zhat - const, upper = zhat + const)
}

# Gabungan kovarians
s_gab = ((n1-1)*cov_sbmptn+(n2-1)*cov_mandiri)/(n1+n2-2)

# Matematika
T.ci(xbar_sbmptn, xbar_mandiri, s_gab, n1, n2, avec=c(1,0), level=0.95)
##     lower     upper 
## -1.070607 12.920351
# Bahasa
T.ci(xbar_sbmptn, xbar_mandiri, s_gab, n1, n2, avec=c(0,1), level=0.95)
##     lower     upper 
## -2.211037 10.007305

Bonferroni

bon = function(mu1, mu2 ,S, n1, n2, alpha, k){
  p = length(mu1)
  mu = mu1 - mu2
  lower = mu[k] - sqrt((S[k,k])*(1/n1+1/n2))* abs(qt(alpha/(2*p), df=n1+n2-2))
  upper = mu[k] + sqrt((S[k,k])*(1/n1+1/n2))* abs(qt(alpha/(2*p), df=n1+n2-2))
  ci = c(lower = lower, upper = upper)
  names(ci) = c("lower","upper")
  ci
}

# Matematika
bon(xbar_sbmptn, xbar_mandiri, s_gab, n1, n2, 0.05, 1)
##      lower      upper 
## -0.4239669 12.2737110
# Bahasa
bon(xbar_sbmptn, xbar_mandiri, s_gab, n1, n2, 0.05, 2)
##     lower     upper 
## -1.646324  9.442592

Kesimpulan

Uji Hotelling’s T²

Hipotesis nol (H₀): tidak ada perbedaan vektor rataan (nilai Matematika & Bahasa) antara mahasiswa SBMPTN dan Mandiri.

Hipotesis alternatif (H₁): ada perbedaan vektor rataan.

Dari output hotelling.test(…), kalau p-value < 0.05, maka H₀ ditolak → ada perbedaan yang signifikan secara multivariat. Kalau p-value ≥ 0.05, maka H₀ tidak ditolak → rata-rata keduanya mirip secara multivariat.

  1. Selang Kepercayaan (Simultan & Bonferroni)

Jika selang kepercayaan tidak mengandung 0, artinya memang ada perbedaan signifikan pada variabel tersebut.

Kalau selang kepercayaan mencakup 0, artinya tidak ada bukti cukup perbedaan untuk variabel itu.

Interpretasi Akhir (umum untuk kasus simulasi kamu)

Mahasiswa SBMPTN cenderung punya nilai lebih tinggi pada Matematika dan Bahasa dibanding jalur Mandiri.

Uji Hotelling’s T² menunjukkan bahwa perbedaan rata-rata secara bersama-sama (multivariat) signifikan.

Dari selang kepercayaan, perbedaan paling jelas terlihat pada Matematika, sedangkan Bahasa juga berbeda tapi mungkin kontribusinya lebih kecil.