Latihan Uji Vektor Rataan 2 Populasi
Input Data
- Jumlah sampel: 40 peserta (20 soal mudah, 20 soal sulit)
- Variabel: skor statistika dan psikologi
## Warning: package 'MASS' was built under R version 4.4.3
set.seed(55)
n_easy <- 20
n_hard <- 20
# Skor peserta dengan Soal Mudah: rata-rata lebih tinggi
mu_easy <- c(85, 78)
Sigma <- matrix(c(120, 35, 35, 140), 2) # Matriks kovariansi diasumsikan sama
data_easy <- mvrnorm(n_easy, mu = mu_easy, Sigma = Sigma)
# Skor peserta dengan Soal Sulit: rata-rata lebih rendah
mu_hard <- c(72, 68)
data_hard <- mvrnorm(n_hard, mu = mu_hard, Sigma = Sigma)
# Gabungkan menjadi satu data frame untuk analisis
data_psikologi <- data.frame(
Tingkat_Kesulitan = rep(c("Mudah", "Sulit"), each = 20),
Statistika = c(data_easy[,1], data_hard[,1]),
Psikologi = c(data_easy[,2], data_hard[,2])
)
print("Data Tes Statistika dan Psikologi:")## [1] "Data Tes Statistika dan Psikologi:"
## Tingkat_Kesulitan Statistika Psikologi
## 1 Mudah 97.66776 70.38589
## 2 Mudah 59.35788 68.05769
## 3 Mudah 79.84699 84.33618
## 4 Mudah 68.07185 72.68467
## 5 Mudah 79.34746 82.29455
## 6 Mudah 86.81506 95.83486
## 7 Mudah 86.42068 68.76308
## 8 Mudah 73.36953 85.16946
## 9 Mudah 99.98909 71.62757
## 10 Mudah 84.51894 81.56874
## 11 Mudah 72.53425 86.61263
## 12 Mudah 76.01986 71.14885
## 13 Mudah 76.09838 51.18250
## 14 Mudah 83.16408 73.55566
## 15 Mudah 84.11458 68.36415
## 16 Mudah 83.44258 73.25648
## 17 Mudah 105.68456 100.45533
## 18 Mudah 93.91396 88.94286
## 19 Mudah 83.43033 83.80259
## 20 Mudah 87.78303 91.95618
## 21 Sulit 68.84964 88.97279
## 22 Sulit 69.36481 65.35646
## 23 Sulit 55.10047 68.70304
## 24 Sulit 75.23835 80.42948
## 25 Sulit 83.74046 71.76961
## 26 Sulit 77.22954 74.19018
## 27 Sulit 71.04969 75.60913
## 28 Sulit 60.73786 55.27884
## 29 Sulit 82.42591 57.42222
## 30 Sulit 57.25972 54.58963
## 31 Sulit 65.15272 54.36741
## 32 Sulit 86.55334 62.29882
## 33 Sulit 69.98745 52.89261
## 34 Sulit 66.42993 61.17193
## 35 Sulit 69.13014 67.57873
## 36 Sulit 70.54818 72.69181
## 37 Sulit 81.67256 69.23070
## 38 Sulit 54.05428 58.72997
## 39 Sulit 53.87893 55.28152
## 40 Sulit 72.70178 59.58587
Pemisahan Data Berdasarkan Kelompok
group_easy <- as.matrix(data_easy)
colnames(group_easy) <- c("Statistika", "Psikologi")
print("\nData Kelompok Soal Mudah:")## [1] "\nData Kelompok Soal Mudah:"
## Statistika Psikologi
## [1,] 97.66776 70.38589
## [2,] 59.35788 68.05769
## [3,] 79.84699 84.33618
## [4,] 68.07185 72.68467
## [5,] 79.34746 82.29455
## [6,] 86.81506 95.83486
## [7,] 86.42068 68.76308
## [8,] 73.36953 85.16946
## [9,] 99.98909 71.62757
## [10,] 84.51894 81.56874
## [11,] 72.53425 86.61263
## [12,] 76.01986 71.14885
## [13,] 76.09838 51.18250
## [14,] 83.16408 73.55566
## [15,] 84.11458 68.36415
## [16,] 83.44258 73.25648
## [17,] 105.68456 100.45533
## [18,] 93.91396 88.94286
## [19,] 83.43033 83.80259
## [20,] 87.78303 91.95618
group_hard <- as.matrix(data_hard)
colnames(group_hard) <- c("Statistika", "Psikologi")
print("\nData Kelompok Soal Sulit:")## [1] "\nData Kelompok Soal Sulit:"
## Statistika Psikologi
## [1,] 68.84964 88.97279
## [2,] 69.36481 65.35646
## [3,] 55.10047 68.70304
## [4,] 75.23835 80.42948
## [5,] 83.74046 71.76961
## [6,] 77.22954 74.19018
## [7,] 71.04969 75.60913
## [8,] 60.73786 55.27884
## [9,] 82.42591 57.42222
## [10,] 57.25972 54.58963
## [11,] 65.15272 54.36741
## [12,] 86.55334 62.29882
## [13,] 69.98745 52.89261
## [14,] 66.42993 61.17193
## [15,] 69.13014 67.57873
## [16,] 70.54818 72.69181
## [17,] 81.67256 69.23070
## [18,] 54.05428 58.72997
## [19,] 53.87893 55.28152
## [20,] 72.70178 59.58587
Statistika Deskriptif
# Menghitung vektor rataan
xbar1 <- apply(group_easy, 2, mean)
print("\nRata-rata Kelompok Soal Mudah:")## [1] "\nRata-rata Kelompok Soal Mudah:"
## Statistika Psikologi
## 83.07954 78.50000
## [1] "\nRata-rata Kelompok Soal Sulit:"
## Statistika Psikologi
## 69.55529 65.30754
## [1] "\nMatriks Kovarians Soal Mudah:"
## Statistika Psikologi
## Statistika 120.74498 45.16269
## Psikologi 45.16269 135.50761
## [1] "\nMatriks Kovarians Soal Sulit:"
## Statistika Psikologi
## Statistika 97.9419 32.30060
## Psikologi 32.3006 97.69633
# Ukuran sampel
n1 <- nrow(group_easy)
n2 <- nrow(group_hard)
print(paste("\nUkuran Sampel Soal Mudah:", n1))## [1] "\nUkuran Sampel Soal Mudah: 20"
## [1] "Ukuran Sampel Soal Sulit: 20"
Kelompok yang mengerjakan soal mudah memiliki skor rata-rata lebih tinggi sekitar 13-14 poin pada kedua mata pelajaran dibandingkan kelompok soal sulit. Ini menunjukkan pola yang konsisten bahwa tingkat kesulitan soal mempengaruhi performa peserta.
Analisis dengan Asumsi Ragam Sama
Matriks Kovarians Gabungan
# S Gabungan (Pooled Covariance Matrix)
s_gab <- ((n1-1)*cov_m1 + (n2-1)*cov_m2) / (n1+n2-2)
print("\nMatriks Kovarians Gabungan:")## [1] "\nMatriks Kovarians Gabungan:"
## Statistika Psikologi
## Statistika 109.34344 38.73165
## Psikologi 38.73165 116.60197
- Kedua kelompok menunjukkan kovarians positif antara Statistika dan Psikologi (45.16 dan 32.30), artinya peserta yang skor Statistikanya tinggi cenderung juga memiliki skor Psikologi yang tinggi
- Variansi kelompok soal mudah (120.74 dan 135.51) sedikit lebih besar dari kelompok soal sulit (97.94 dan 97.70), menunjukkan sebaran skor yang lebih heterogen pada soal mudah
- Matriks kovarians gabungan merepresentasikan estimasi pooled dari kedua kelompok
Uji T2 Hotelling (Ragam Sama)
Hipotesis: 1. H₀: μ₁ = μ₂ (Tidak ada perbedaan vektor rata-rata antara kelompok soal mudah dan sulit) 2. H₁: μ₁ ≠ μ₂ (Ada perbedaan vektor rata-rata)
## Loading required package: corpcor
t2_homogen <- hotelling.test(group_easy, group_hard, var.equal=TRUE)
print("\nHasil Uji T² Hotelling (Ragam Sama):")## [1] "\nHasil Uji T² Hotelling (Ragam Sama):"
## Test stat: 23.589
## Numerator df: 2
## Denominator df: 37
## P-value: 0.0001319
Interpretasi: 1. Keputusan: Tolak H₀ pada α = 0.05 2. Interpretasi: Dengan p-value = 0.0001319 (< 0.05), terdapat bukti statistik yang sangat kuat bahwa ada perbedaan signifikan dalam vektor rata-rata skor Statistika dan Psikologi antara kelompok yang mengerjakan soal mudah dan soal sulit. Perbedaan ini signifikan secara statistik pada tingkat kepercayaan 95%.
Selang Kepercayaan Simultan (Ragam Sama)
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)
}
print("\nSELANG KEPERCAYAAN SIMULTAN (95%)")## [1] "\nSELANG KEPERCAYAAN SIMULTAN (95%)"
## [1] "\nUntuk Statistika:"
## lower upper
## 4.978066 22.070443
## [1] "\nUntuk Psikologi:"
## lower upper
## 4.367168 22.017751
Interpretasi: 1. Dengan tingkat kepercayaan 95%, perbedaan rata-rata skor Statistika antara kelompok soal mudah dan sulit berada antara 4.98 hingga 22.07 poin 2. Untuk Psikologi, perbedaannya berada antara 4.37 hingga 22.02 poin 3.Kelompok soal mudah konsisten mendapat skor lebih tinggi minimal sekitar 4-5 poin pada kedua mata pelajaran
Selang Kepercayaan Bonferroni (Ragam Sama)
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
}
print("\n=== SELANG KEPERCAYAAN BONFERRONI (95%) ===")## [1] "\n=== SELANG KEPERCAYAAN BONFERRONI (95%) ==="
## [1] "\nUntuk Statistika:"
## lower upper
## 5.807311 21.241198
## [1] "\nUntuk Psikologi:"
## lower upper
## 5.223495 21.161424
Interpretasi Selang Kepercayaan: 1. Metode Bonferroni lebih konservatif, menghasilkan selang yang sedikit lebih sempit dibanding simultan 2. Bonferroni mengontrol tingkat kesalahan familywise dengan membagi alpha untuk multiple comparisons 3. Kedua variabel tetap menunjukkan perbedaan signifikan (selang tidak mengandung 0)
Analisis dengan Asumsi Ragam Tidak Sama
Uji T2 Hotelling (Ragam Tidak Sama)
Hipotesis: 1. H₀: μ₁ = μ₂ (Tidak ada perbedaan vektor rata-rata antara kelompok) 2. H₁: μ₁ ≠ μ₂ (Ada perbedaan vektor rata-rata) Di mana: - μ₁ = vektor rata-rata kelompok Soal Mudah [Statistika, Psikologi] - μ₂ = vektor rata-rata kelompok Soal Sulit [Statistika, Psikologi]
## [1] "\nANALISIS DENGAN ASUMSI RAGAM TIDAK SAMA"
t2_not_homogen <- hotelling.test(group_easy, group_hard, var.equal=FALSE)
print("\nHasil Uji T² Hotelling (Ragam Tidak Sama):")## [1] "\nHasil Uji T² Hotelling (Ragam Tidak Sama):"
## Test stat: 23.589
## Numerator df: 2
## Denominator df: 37.3024107700876
## P-value: 0.0001299
Interpretasi: Terdapat bukti statistik yang sangat kuat (p < 0.001) bahwa ada perbedaan signifikan dalam vektor rata-rata skor Statistika dan Psikologi antara kelompok yang mengerjakan soal mudah dan soal sulit, bahkan ketika kita tidak mengasumsikan kesamaan variansi antar kelompok.
Selang Kepercayaan Simultan (Ragam Tidak Sama)
T.ci_unequal <- function(mu1, mu2, S1, S2, n1, n2, avec=rep(1,length(mu1)), level=0.95){
p <- length(mu1)
mu <- mu1-mu2
cval <- qchisq(level, p)
zhat <- crossprod(avec, mu)
zvar <- crossprod(avec, S1 %*% avec)/n1 + crossprod(avec, S2 %*% avec)/n2
const <- sqrt(cval * zvar)
c(lower = zhat - const, upper = zhat + const)
}
print("\nSELANG KEPERCAYAAN SIMULTAN - RAGAM TIDAK SAMA (95%)")## [1] "\nSELANG KEPERCAYAAN SIMULTAN - RAGAM TIDAK SAMA (95%)"
## [1] "\nUntuk Statistika:"
ci_stat_uneq <- T.ci_unequal(xbar1, xbar2, cov_m1, cov_m2, n1, n2, avec=c(1,0), level=0.95)
print(ci_stat_uneq)## lower upper
## 5.430261 21.618248
## [1] "\nUntuk Psikologi:"
ci_psik_uneq <- T.ci_unequal(xbar1, xbar2, cov_m1, cov_m2, n1, n2, avec=c(0,1), level=0.95)
print(ci_psik_uneq)## lower upper
## 4.834131 21.550788
Interpetasi: 1. Dengan tingkat kepercayaan 95%, perbedaan rata-rata skor Statistika antara kelompok soal mudah dan soal sulit berada antara 5.43 hingga 21.62 poin. 2. Dengan tingkat kepercayaan 95%, perbedaan rata-rata skor Psikologi antara kelompok soal mudah dan soal sulit berada antara 4.83 hingga 21.55 poin.