Perbandingan Dua Vektor Nilai Tengah Berpasangan

Saya ingin melihat pengaruh musik rock terhadap kecepatan bermain gim minesweeper. Dari 30 teman kelas akan diukur 2 hal:

  1. Kecepatan menyelesaikan permainan
  2. Banyaknya ronde yang dimenangkan

Perujian akan dilakukan sebelum dan setelah mendengar musik rock.

set.seed(066)
library(MASS)
n <- 30
mu_before <- c(150, 158)
mu_after  <- c(134, 142)
mu_before_win <- c(7, 10)
mu_after_win <- c(15, 18)

Sigma <- matrix(c(20,10,10,30), nrow=2)

# Simulasi data
before <- mvrnorm(n, mu_before, Sigma)
after  <- mvrnorm(n, mu_after,  Sigma)
before_win <- mvrnorm(n, mu_before_win, Sigma)
after_win  <- mvrnorm(n, mu_after_win,  Sigma)

df1 <- data.frame(
                 speed_before = before[,1],
                 win_before = before_win[,2],
                 speed_after  = after[,1],
                 win_after = after_win[,2])

head(df1)
##   speed_before win_before speed_after win_after
## 1     151.4336  12.436037    132.2689  18.51097
## 2     147.8495   7.094924    133.7912  15.94529
## 3     152.4419   5.075023    128.5421  18.41473
## 4     147.5409  13.044079    131.7042  21.93188
## 5     152.2147  16.579951    129.0488  23.52292
## 6     140.4650   4.297117    131.4303  24.63560

Menghitung vektor rataan dan matriks covarians

xbar = apply(df1, 2, mean)
xbar
## speed_before   win_before  speed_after    win_after 
##    149.17229     10.33445    133.42305     18.17497
cov_m = cov(df1)
cov_m
##              speed_before win_before speed_after  win_after
## speed_before    18.262212  -4.786597   -2.571628   3.198142
## win_before      -4.786597  33.173505    5.656501   2.935897
## speed_after     -2.571628   5.656501   20.033339 -10.770103
## win_after        3.198142   2.935897  -10.770103  30.174425

Uji T2 Hotelling Dua Populasi Sampel Berpasangan

library(MVTests)
## 
## Attaching package: 'MVTests'
## The following object is masked from 'package:datasets':
## 
##     iris
mean0 <- colMeans(df1)
result <- OneSampleHT2(df1, mu0 = mean0, alpha = 0.05)
summary(result)
##        One Sample Hotelling T Square Test 
## 
## Hotelling T Sqaure Statistic = 0 
##  F value = 0 , df1 = 4 , df2 = 26 , p-value: 1 
## 
##                    Descriptive Statistics
## 
##       speed_before win_before speed_after win_after
## N        30.000000  30.000000   30.000000 30.000000
## Means   149.172290  10.334451  133.423051 18.174970
## Sd        4.273431   5.759645    4.475862  5.493125
## 
## 
##                  Detection important variable(s)
## 
##                   Lower     Upper       Mu0 Important Variables?
## speed_before 146.443066 151.90151 149.17229                FALSE
## win_before     6.656058  14.01284  10.33445                FALSE
## speed_after  130.564545 136.28156 133.42305                FALSE
## win_after     14.666789  21.68315  18.17497                FALSE

p-value = 1 yang mana lebih besar dari 0,05. Maka tak tolak H0, artinya secara multivariat tidak ada perbedaan yang signifikan antara sebelum dan sesudah mendengarkan musik rock.

Selang Kepercayaaan Simultan

result$CI
##                   Lower     Upper       Mu0 Important Variables?
## speed_before 146.443066 151.90151 149.17229                FALSE
## win_before     6.656058  14.01284  10.33445                FALSE
## speed_after  130.564545 136.28156 133.42305                FALSE
## win_after     14.666789  21.68315  18.17497                FALSE

Hasil selang kepercayaan simultan menunjukkan bahwa baik kecepatan maupun total menang mengalami perubahan. Rentang rata-rata setelah mendengar musik rock bergeser ke atas untuk total kemenang, dan bergeser ke bawah untuk kecepatan. Sehingga dapat disimpulkan bahwa mendengarkan musik rock memberi dampak positif baik terhadap kecepatan maupun total kemenangan seseorang dalam menyelesaikan minesweeper.

SK Bonferoni

bon = function(mu,S,n,alpha,k){
 p = length(mu)
 lower = mu[k] - sqrt(S[k,k]/n) * abs(qt(alpha/(2*p), df=n-1))
 upper = mu[k] + sqrt(S[k,k]/n) * abs(qt(alpha/(2*p), df=n-1))
 c(lower = lower,upper = upper)
}

n = nrow(df1)
#Speed
bon(xbar, cov_m,n,0.05,3)
## lower.speed_after upper.speed_after 
##          131.2467          135.5994
#Win
bon(xbar, cov_m,n,0.05,4)
## lower.win_after upper.win_after 
##        15.50404        20.84590

Perbandingan Dua Vektor Nilai Tengah Sampel Saling Bebas Ragam Sama

Akan dibandingkan 2 populasi dari 2 kelas berbeda terkait kecepeatan dan banyaknya kemenangan mereka dalam bermain minesweeper

set.seed(066)
library(MASS)
mu_a <- c(Kecepatan = 114, Win = 25)
mu_b <- c(Kecepatan = 85, Win = 34)

Sigma <- matrix(c(100, 50,
                  50, 225), nrow = 2, byrow = TRUE)

nA <- 30
nB <- 30

data_A <- mvrnorm(n = nA, mu = mu_a, Sigma = Sigma)
data_B <- mvrnorm(n = nB, mu = mu_b, Sigma = Sigma)

df_A <- data.frame(data_A)
df_A$Group <- "A"

df_B <- data.frame(data_B)
df_B$Group <- "B"

df <- rbind(df_A, df_B)
rownames(df) <- NULL

n1 <- nrow(df_A)
n2 <- nrow(df_B)

cov_m1 <- cov(df_A[, 1:2])
cov_m2 <- cov(df_B[, 1:2])

s_gab <- ((n1 - 1) * cov_m1 + (n2 - 1) * cov_m2) / (n1 + n2 - 2)
s_gab
##           Kecepatan       Win
## Kecepatan  98.11270  43.47621
## Win        43.47621 197.14996

Uji T2 Hotelling Dua Populasi Sampel Saling Bebas Ragam Sama

library(Hotelling)
## Loading required package: corpcor
t2_hotelling = hotelling.test(data_A,data_B,var.equal=TRUE)
t2_hotelling
## Test stat:  171.1 
## Numerator df:  2 
## Denominator df:  57 
## P-value:  0

karena p-value > dari 0.05, maka tak tolak H0

Selang Kepercayaan Simultan

T.ci = function(mu_a, mu_b, s_gab, n1, n2, avec=rep(1,length(mu)), level=0.95){
p = length(mu_a)
mu = mu_a-mu_b
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)
}
xbar1 = apply(data_A, 2, mean)
xbar1
## Kecepatan       Win 
## 112.23867  23.28995
xbar2 = apply(data_B, 2, mean)
xbar2
## Kecepatan       Win 
##  83.57710  33.82005
T.ci(xbar1, xbar2, s_gab, n1,n2, avec=c(1,0),level=0.95)
##    lower    upper 
## 22.17713 35.14601
T.ci(xbar1, xbar2, s_gab, n1,n2, avec=c(0,1),level=0.95)
##      lower      upper 
## -19.722065  -1.338138

SK Bonferonni

bon = function(mu_a, mu_b ,S, n1, n2, alpha, k){
 p = length(mu_a)
 mu = mu_a-mu_b
 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
}
bon(xbar1, xbar2, s_gab, n1, n2,0.05,1)
##    lower    upper 
## 22.77653 34.54661

Dalam selang interval sudah tidak mencakup angka 0, maka perbedaan rata-rata kecepatan sudah signifikan

bon(xbar1, xbar2, s_gab, n1, n2,0.05,2)
##      lower      upper 
## -18.872389  -2.187815

Dalam selang interval masih mencakup angka 0, maka perbedaan rata-rata kemenangan sudah signifikan.

Perbandingan Dua Vektor Nilai Tengah Sampel Saling Bebas Ragam Tidak Sama

Ingin dilihat perbedaan pengaruh latar musik pada suatu game kompetitif kepada para player nya. Dengan team 1 akan didengarkan lagu bergenre rock, sedangkan team 2 akan diberi lagu bergenre blues. Akan dilihat rasio KDA dan tingkat stress dari tiap player nya.

set.seed(066)

mu_1 <- c(KDA = 11.5, stress = 80)
mu_2 <- c(KDA = 16.7, stress = 57)

Sigma_1 <- matrix(c(40, -8, -8, 64), nrow=2)
Sigma_2 <- matrix(c(15,  2,  2, 30), nrow=2)

n1 <- 40; n2 <- 45

data_1 <- mvrnorm(n = n1, mu = mu_1, Sigma = Sigma_1)
data_2 <- mvrnorm(n = n2, mu = mu_2, Sigma = Sigma_2)

df_1 <- data.frame(data_1); df_1$Team <- "1"
df_2 <- data.frame(data_2); df_2$Team <- "2"
df <- rbind(df_1, df_2)
colnames(df)[1:2] <- c("Rasio KDA","Stress")
df
##     Rasio KDA   Stress Team
## 1   9.5249585 99.19148    1
## 2  20.7895009 84.66027    1
## 3   1.7696042 80.61493    1
## 4  15.0352276 79.44401    1
## 5  10.1386440 76.90685    1
## 6  14.7287330 75.46084    1
## 7  19.2760215 75.91079    1
## 8   9.1045264 89.72950    1
## 9  21.8924169 81.63121    1
## 10 11.8564973 80.37426    1
## 11 17.9594550 72.27697    1
## 12 16.4450005 73.07915    1
## 13 16.8589210 78.97012    1
## 14  5.3252692 67.08994    1
## 15 11.9853982 72.09407    1
## 16  3.1728443 79.04490    1
## 17  8.7827973 76.69033    1
## 18  8.7019603 80.26526    1
## 19 16.2911459 82.34614    1
## 20  1.0444974 81.23786    1
## 21 12.5671663 79.73759    1
## 22 18.1710169 82.58117    1
## 23  8.6693313 94.73484    1
## 24 11.6335115 74.49852    1
## 25 20.0105591 74.95468    1
## 26 17.7081678 68.59981    1
## 27 14.5494988 83.90683    1
## 28 16.7772911 85.16636    1
## 29 15.1875863 78.60344    1
## 30 27.2475007 71.78819    1
## 31  9.3116049 95.26646    1
## 32 13.3585379 88.20129    1
## 33 10.4455855 76.66635    1
## 34  4.4757529 82.86870    1
## 35 14.0817542 72.13705    1
## 36  3.7580201 97.81503    1
## 37  2.0001015 73.70760    1
## 38 -0.6484169 87.14392    1
## 39  4.8811692 78.67312    1
## 40 18.4092283 76.75653    1
## 41 21.6674233 63.63698    2
## 42 18.3945329 55.91824    2
## 43 14.1573535 46.21212    2
## 44 14.4913420 52.40305    2
## 45 20.7216249 60.22608    2
## 46 20.2795177 57.23767    2
## 47 23.6353690 60.19521    2
## 48 10.2467077 63.11916    2
## 49 14.1635221 56.77528    2
## 50 13.7407094 63.99251    2
## 51 24.4228019 58.16947    2
## 52  8.9119426 51.93131    2
## 53 14.5066388 65.45059    2
## 54 17.2873058 62.27821    2
## 55 20.1701684 59.18306    2
## 56 16.1592653 59.19153    2
## 57 19.7857226 62.09978    2
## 58 15.7841466 64.36334    2
## 59 11.4233038 56.24699    2
## 60 19.5265935 63.52983    2
## 61 14.3551911 53.00365    2
## 62 12.3435895 56.88541    2
## 63 17.0470972 57.87824    2
## 64 20.7732438 59.57166    2
## 65 16.9090021 57.38680    2
## 66 17.9338452 62.87379    2
## 67 18.8019559 62.60077    2
## 68 14.0310648 57.14269    2
## 69 14.9328719 52.58898    2
## 70 16.5484944 54.72371    2
## 71 17.6690001 60.04477    2
## 72 12.3851713 57.50586    2
## 73 17.7009821 56.50659    2
## 74 15.8705214 62.48347    2
## 75 17.9456523 51.35606    2
## 76 21.9355270 47.95187    2
## 77 14.0612485 43.44054    2
## 78 12.5363974 58.01979    2
## 79 16.5236158 55.65201    2
## 80 15.0476734 64.46301    2
## 81 18.5327387 59.65532    2
## 82 17.4020228 54.50673    2
## 83 23.3692473 49.31472    2
## 84 16.6361392 59.65830    2
## 85 19.2363194 63.88277    2
xbarteam1 = apply(data_1, 2, mean)
xbarteam1
##      KDA   stress 
## 12.08196 80.27066
xbarteam2 = apply(data_2, 2, mean)
xbarteam2
##      KDA   stress 
## 16.88899 57.80573
cov_team1 = cov(data_1)
cov_team1
##              KDA    stress
## KDA     42.01475 -13.45494
## stress -13.45494  56.70637
cov_team2 = cov(data_2)
cov_team2
##              KDA    stress
## KDA    12.378680  1.966956
## stress  1.966956 26.288681
n_team1 = nrow(data_1)
n_team2 = nrow(data_2)

Uji T2 Hotelling Dua Populasi Sampel Saling Bebas Ragam Sama

library(Hotelling)
t2_hotelling_2 = hotelling.test(data_1,data_2,var.equal=FALSE)
t2_hotelling_2
## Test stat:  253.91 
## Numerator df:  2 
## Denominator df:  63.4212338437335 
## P-value:  0

Selang Kepercayaan Simultan

T.ci = function(mu_1, mu_2, Sigma_1, Sigma_2, n_team1, n_team2, avec=rep(1,length(mu)), level=0.95){
p = length(mu_1)
mu = mu_1-mu_2
cval = qchisq(level, p)
zhat = crossprod(avec, mu)
zvar = crossprod(avec, Sigma_1 %*% avec)/n_team1 + crossprod(avec, Sigma_2 %*% avec)/n_team2
const = sqrt(cval * zvar)
c(lower = zhat - const, upper = zhat + const)
}

T.ci(xbarteam1, xbarteam2, cov_team1, cov_team2, n_team1,n_team2, avec=c(1,0),level=0.95)
##     lower     upper 
## -7.625079 -1.988984

Tidak mencakup nilai 0, maka rata rata rasio KDA antara team 1 dan team 2 tidak berbeda secara nyata pada taraf nyata 5%.

T.ci(xbarteam1, xbarteam2, cov_team1, cov_team2, n_team1,n_team2, avec=c(0,1),level=0.95)
##    lower    upper 
## 19.00169 25.92817

Tidak mencakup nilai 0, maka rata rata tingkat stress player antara team 1 dan team 2 tidak berbeda secara nyata pada taraf nyata 5%.