Pertemuan 3 Uji Vektor Nilai Tengah satu Populasi

Contoh kasus (Soal lengkap ada pada ppt praktikum)

Berikut ini adalah data dari sampel siswa di sebuah sekolah yang dilihat dari skor nilai matematika (X1) dan fisika (X2). Kedua peubah diasumsikan menyebar normal bivariat Pertanyaan : 1. Hitunglah vektor rataan dan matriks kovariannya? 2. Ujilah pada taraf nyata 10%, apakah vektor rataan populasi \(\mu_1\)=55 \(\mu_2\)=60 3. Tentukan ellips kepercayaan 90% bagi \(\mu\) dan buatlah gambarnya! 4. Apakah seseorang siswa yang memiliki skor matematika 65 dan skor
fisika 70 masuk ke dalam ellips kepercayaan tersebut? 5. Buatlah selang kepercayaan simultan dan selang bonferroni 90%

#Input Data
x1<-c(72.8, 46, 59.2, 66.7, 84.2,50.4, 49.6, 77.9, 63.9, 55.1)

x2<-c(69.9, 68.9, 58.4, 78.2, 63.9, 54.6, 66.5, 71.6, 77.2, 56.8)

# Soal bagian 1 : vektor rataan dan matriks kovarian
n<-10
p<-2
x1_bar<- sum(x1)/length(x1)
x2_bar<- sum(x2)/length(x2)

# atau gabung dulu semuanya terus pake colmeans
meanvector<-colMeans(cbind(x1,x2))
meanvector
##    x1    x2 
## 62.58 66.60
# matriks kovarian
X<-data.frame(x1,x2)
covarian<-cov(X)
covarian
##           x1       x2
## x1 164.93289 36.00889
## x2  36.00889 66.96444
# Soal 2 itu ditanya apakah vector rataan populasi miu1 55 miu2  60, cari nilai Hotelingnya
miu<- c(55,60)
invcov<-solve(covarian)

s2<-diag(covarian)

T2<- n* t(meanvector-miu) %*% invcov %*% (meanvector-miu)
T2
##          [,1]
## [1,] 7.621161
C2<- (n-1)*p/(n-p) * qf(0.90, 2, 8, lower.tail = TRUE) 
C2
## [1] 7.004515
# Hasil Uji
if (T2 > C2) {
  cat(" Tolak H0 \n")
} else {
  cat("Gagal tolak H0\n")
}
##  Tolak H0

Simpulan: Karena nilai T hotteling 7.621161> nilai kritisnya (C2)7.004515, maka tolak H0, artinya ada bukti statistik yang cukup untuk menyatakan rata-rata populasi yang diuji tidak sama atau ada perbedaan yang signifikan antara nilai tengah matematika dan fisika dalam taraf nyata 10%.

# menentukan ellipse kepercayaan

library(ellipse)
## Warning: package 'ellipse' was built under R version 4.4.3
## 
## Attaching package: 'ellipse'
## The following object is masked from 'package:graphics':
## 
##     pairs
# Ellipse 90%
plot(X, main="Ellips Kepercayaan 90% untuk Mean")
points(meanvector[1], meanvector[2], col="red", pch=19, cex=1.5)

lines(ellipse(covarian/10, centre=meanvector, level=0.90), col="blue", lwd=2)

# selang kepercayaan simultan 
CI_hotelling <- data.frame(
  Lower = meanvector - sqrt(C2 * s2 / n),
  Upper = meanvector + sqrt(C2* s2 / n)
)
CI_hotelling
##       Lower    Upper
## x1 51.83163 73.32837
## x2 59.75125 73.44875
#selang kepercayaan bonferoni
t_bonf <- qt(1 - 0.9/(2*p), df=n-1) # perhitungan itu dri arah kiri jdinya harus 1-0.90 agar terbacanya yg peluang kanan

CI_bonf <- data.frame(
  Lower = meanvector - t_bonf * sqrt(s2/n),
  Upper = meanvector + t_bonf * sqrt(s2/n)
)
CI_bonf
##       Lower    Upper
## x1 59.37282 65.78718
## x2 64.55642 68.64358
# soal 4
# gunakan jarak mahalonobis untuk melihat suatu titik masukdalam daerah ellips atau tidak
library(ellipse)

p <- 2
n <- nrow(X)
alpha <- 0.10

# Titik uji
titik <- c(65,70)

# Hitung Mahalanobis distance (Hotelling T²)
T2 <- mahalanobis(titik, center=meanvector, cov=covarian/n)

# Nilai kritis Hotelling
crit <- (p*(n-1)/(n-p)) * qf(1-alpha, p, n-p)

# Keputusan
inside <- (T2 <= crit)

# Warna titik uji
col_titik <- ifelse(inside, "darkgreen", "red")

# Plot data dan ellipse
plot(X, main="Ellips Kepercayaan 90% (Hotelling T²)")
points(meanvector[1], meanvector[2], col="blue", pch=19, cex=1.5) # mean
lines(ellipse(covarian/n * crit, centre=meanvector), col="blue", lwd=2) # ellipse Hotelling
points(titik[1], titik[2], col=col_titik, pch=17, cex=1.5) # titik uji

# Cetak hasil uji
cat("Nilai T² =", T2, "\nNilai kritis =", crit, "\nInside? =", inside, "\n")
## Nilai T² = 1.750341 
## Nilai kritis = 7.004515 
## Inside? = TRUE

Latihan soal 1

soal ada pada ppt praktikum pertemuan 3

# Latihan Soal 1
n <- 20
p <- 3
xbar <- c(4.640, 45.400, 9.965)
mu0 <- c(4, 50, 10)
s <- matrix(c(2.879, 10.010, -1.810, 
       10.010, 199.788, -5.640, 
       -1.810, -5.640, 3.628), nrow=3, ncol=3, byrow=TRUE)

sinv <- solve(s)

T2 <- n* t(xbar-mu0) %*% sinv %*% (xbar-mu0)
T2
##          [,1]
## [1,] 9.743038
C2<- (n-1)*p/(n-p) * qf(0.90, 3, 17, lower.tail = TRUE) 
C2
## [1] 8.172573
# kalau mau cek pake fhit dan ftab
Fhit<- (n-p)/p*(n-1) * T2
Ftab<- qf(0.95, 17, 8, lower.tail = TRUE)

pvalue<- 1 - pf(Fhit, df1 = p, df2 = n - p)

# Hasil Uji
if (T2 > C2) {
  cat(" Tolak H0 \n")
} else {
  cat("Gagal tolak H0\n")
}
##  Tolak H0

Simpulan Karena nilai hotteling>nilai kritisnya,H0 ditolak. Artinya, terdapat bukti yang signifikan bahwa rata-rata populasi tidak sama dengan (4,50,10) sekurang-kurangnya ada satu komponen rata-rata yang berbeda dari nilai yang dihipotesiskan.

Latihan soal 2

Diketahui data matriks dari sampel acak berukuran n = 4 dari populasi normal bivariat sebagai berikut ujilah H0: miu’=(7 11) alpa 5%

# latihan 2
x1<- c(2,8,6,8)
x2<- c(12,9,9,10)
miu<-c(7,11)
miu
## [1]  7 11
n<-4
p<-2
x1_bar<- sum(x1)/length(x1)
x2_bar<- sum(x2)/length(x2)

 # atau gabung dulu semuanya terus pake colmeans
meanvector<-colMeans(cbind(x1,x2))
meanvector
## x1 x2 
##  6 10
# matriks kovarian
X<-data.frame(x1,x2)
covarian<-cov(X)
covarian
##           x1        x2
## x1  8.000000 -3.333333
## x2 -3.333333  2.000000
# cari nilai T hoteling

T2<- n* t(meanvector-miu) %*% solve(covarian) %*% (meanvector-miu)
T2
##          [,1]
## [1,] 13.63636
C2<- (n-1)*p/(n-p) * qf(0.95, 2, 2, lower.tail = TRUE) 
C2
## [1] 57
# Hasil Uji
if (T2 > C2) {
  cat(" Tolak H0 \n")
} else {
  cat("Gagal tolak H0\n")
}
## Gagal tolak H0

Simpulan dalam taraf nyata 5% Artinya tidak ada bukti yang cukup secara statistik untuk menyimpulkan bahwa vektor rata-rata populasi berbeda dari (7,11).

Pertemuan 4 Uji Rataan Dua Populasi

Praktikum 4 dengan data yang dibangkitkan

Perbandingan Dua Vektor Nilai Tengah Sampel Berpasangan

KASUS: Kita ingin melihat apakah rata-rata harga beras (dalam ribuan rupiah per kg) di Indonesia dan Thailand berbeda secara signifikan pada dua periode berbeda:
-Periode A (sebelum kebijakan impor)
-Periode B (setelah kebijakan impor)

Input Data

# Bangkitkan Data
set.seed(1035)

# Misalkan kita punya data harga beras (dalam ribu rupiah) untuk 10 bulan
n <- 10

# Harga sebelum kebijakan (Periode A)
indo_A <- rnorm(n, mean = 12, sd = 1)
thai_A <- rnorm(n, mean = 11, sd = 1)

# Harga sesudah kebijakan (Periode B)
indo_B <- rnorm(n, mean = 13, sd = 1.2)
thai_B <- rnorm(n, mean = 11.5, sd = 1)

# Gabungkan ke data frame
dataset <- data.frame(indo_A, indo_B, thai_A, thai_B)
dataset
##      indo_A   indo_B   thai_A    thai_B
## 1  11.55818 13.30686 10.28292 10.224329
## 2  10.02527 14.56209 12.27227 11.489459
## 3  11.40319 12.15769 11.93984 11.005218
## 4  12.08804 15.29936 11.21817 10.519000
## 5  13.88581 11.91429 10.73639  9.643751
## 6  12.35929 11.58287 10.76093 10.304028
## 7  10.10925 12.50404 10.16422 13.461520
## 8  11.38552 10.82239 11.50636 11.120455
## 9  11.23659 11.96546 11.03993 10.784273
## 10 10.80561 13.47651  9.51601 12.845901

Menghitung Selisih Harga(B-A)

d_indo = dataset$indo_B - dataset$indo_A
d_thai = dataset$thai_B - dataset$thai_A

X = data.frame(d_indo, d_thai)
X
##        d_indo      d_thai
## 1   1.7486783 -0.05858639
## 2   4.5368196 -0.78281483
## 3   0.7545052 -0.93461698
## 4   3.2113153 -0.69917392
## 5  -1.9715208 -1.09263823
## 6  -0.7764279 -0.45690228
## 7   2.3947920  3.29729628
## 8  -0.5631355 -0.38590189
## 9   0.7288762 -0.25565919
## 10  2.6709041  3.32989051

Menghitung vektor rataan dan matriks covarians

# Vektor rata-rata
xbar = apply(X, 2, mean)
xbar
##    d_indo    d_thai 
## 1.2734806 0.1960893
# Matriks kovarians
cov_m = cov(X)
cov_m
##          d_indo   d_thai
## d_indo 4.056864 1.136500
## d_thai 1.136500 2.796812

Uji T2 Hotelling Dua Populasi Sampel Berpasangan

library(MVTests)
## Warning: package 'MVTests' was built under R version 4.4.3
## 
## Attaching package: 'MVTests'
## The following object is masked from 'package:datasets':
## 
##     iris
mean0 = c(0,0)
result = OneSampleHT2(X,mu0=mean0,alpha=0.05)
summary(result)
##        One Sample Hotelling T Square Test 
## 
## Hotelling T Sqaure Statistic = 4.101707 
##  F value = 1.823 , df1 = 2 , df2 = 8 , p-value: 0.223 
## 
##                    Descriptive Statistics
## 
##          d_indo     d_thai
## N     10.000000 10.0000000
## Means  1.273481  0.1960893
## Sd     2.014166  1.6723672
## 
## 
##                  Detection important variable(s)
## 
##             Lower    Upper Mu0 Important Variables?
## d_indo -0.7439739 3.290935   0                FALSE
## d_thai -1.4790085 1.871187   0                FALSE

simpulan: Tidak terdapat bukti yang cukup pada taraf signifikansi 5% untuk menyatakan bahwa rata-rata perubahan harga beras di Indonesia dan Thailand berbeda secara signifikan dari nol. Dengan kata lain, secara statistik, kenaikan yang teramati pada kedua negara tidak signifikan.

Selang Kepercayaan Simultan

result$CI
##             Lower    Upper Mu0 Important Variables?
## d_indo -0.7439739 3.290935   0                FALSE
## d_thai -1.4790085 1.871187   0                FALSE

Selang Kepercayaan Bonferroni

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(X)

# Selang kepercayaan untuk Indonesia
bon(xbar, cov_m, n, 0.05, 1)
## lower.d_indo upper.d_indo 
##   -0.4366972    2.9836585
# Selang kepercayaan untuk Thailand
bon(xbar, cov_m, n, 0.05, 2)
## lower.d_thai upper.d_thai 
##    -1.223876     1.616054

Perbandingan Dua Vektor Nilai Tengah Sampel Saling Bebas Ragam Sama

Kasus:
Populasi 1: Orang Indonesia
Populasi 2: Orang Jerman
Variabel: Tinggi Badan (cm) dan Berat Badan (kg)

Data

set.seed(1035)

n1 <- 12   # sampel orang Indonesia
n2 <- 10   # sampel orang Jerman

# Bangkitkan data
# Asumsikan orang Jerman lebih tinggi & sedikit lebih berat
indo_tinggi <- rnorm(n1, mean=165, sd=7)
indo_berat  <- rnorm(n1, mean=60,  sd=6)

jerman_tinggi <- rnorm(n2, mean=175, sd=7)
jerman_berat  <- rnorm(n2, mean=70,  sd=6)

# Susun data ke bentuk data.frame
data_indo <- data.frame(Tinggi = indo_tinggi,
                        Berat   = indo_berat)

data_jerman <- data.frame(Tinggi = jerman_tinggi,
                          Berat   = jerman_berat)

head(data_indo)
##     Tinggi    Berat
## 1 161.9073 65.63901
## 2 151.1769 61.30904
## 3 160.8223 58.41833
## 4 165.6163 58.56558
## 5 178.2007 54.98534
## 6 167.5151 63.03814
head(data_jerman)
##     Tinggi    Berat
## 1 168.6667 58.86250
## 2 166.7334 62.82417
## 3 172.1069 81.76912
## 4 162.2973 67.72273
## 5 168.9652 65.70564
## 6 177.7797 78.07541

Menghitung vektor rataan dan matriks covarians

# Rataan
xbar1 <- apply(data_indo, 2, mean)
xbar2 <- apply(data_jerman, 2, mean)

xbar1
##    Tinggi     Berat 
## 162.32364  60.82676
xbar2
##    Tinggi     Berat 
## 169.72152  68.93847
# Kovarians
cov_m1 <- cov(data_indo)
cov_m2 <- cov(data_jerman)

cov_m1
##          Tinggi    Berat
## Tinggi 64.52254  2.12206
## Berat   2.12206 32.44128
cov_m2
##          Tinggi    Berat
## Tinggi 20.28833 15.36072
## Berat  15.36072 45.07106

Matriks Kovarian Gabungan

s_gab <- ((n1-1)*cov_m1 + (n2-1)*cov_m2) / (n1 + n2 - 2)
s_gab
##           Tinggi     Berat
## Tinggi 44.617146  8.079459
## Berat   8.079459 38.124680

Uji T2 Hotelling Dua Populasi Sampel Saling Bebas Ragam Sama

library(Hotelling)
## Loading required package: corpcor
t2_homogen = hotelling.test(data_indo,data_jerman,var.equal=TRUE)
t2_homogen
## Test stat:  13.514 
## Numerator df:  2 
## Denominator df:  19 
## P-value:  0.007416

Simpulan: P-value: 0.007416 < 0.05, tolak H0 dalam taraf nyata 5%, cukup bukti untuk menyatakan ada perbedaan rata rata tinggi dan berat badan orang indonesia dan jerman.

Selang Kepercayaan Simultan

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)
}

# Tinggi
T.ci(xbar1, xbar2, s_gab, n1, n2, avec = c(1,0), level = 0.95)
##      lower      upper 
## -15.185646   0.389886
# Berat
T.ci(xbar1, xbar2, s_gab, n1, n2, avec = c(0,1), level = 0.95)
##       lower       upper 
## -15.3105900  -0.9128242

Selang Kepercayaan 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))
  c(lower = lower, upper = upper)
}

# Tinggi
bon(xbar1, xbar2, s_gab, n1, n2, 0.05, 1)
## lower.Tinggi upper.Tinggi 
##  -14.3280824   -0.4676778
# Berat
bon(xbar1, xbar2, s_gab, n1, n2, 0.05, 2)
## lower.Berat upper.Berat 
##  -14.517872   -1.705542

Perbandingan Dua Vektor Nilai Tengah Sampel Saling Bebas Ragam Tidak Sama

Kasus: Membandingkan tingkat kadar kolesterol (mg/dL) dan tekanan darah sistolik (mmHg) antara dua kelompok:
-Kelompok 1: Orang yang rutin berolahraga
-Kelompok 2: Orang yang tidak rutin berolahraga

Data

set.seed(1035)

n1 <- 15   # sampel rutin olahraga
n2 <- 12   # sampel tidak rutin olahraga

# Kelompok rutin olahraga (mean lebih rendah, ragam lebih kecil)
kolesterol_olga <- rnorm(n1, mean = 190, sd = 15)
tekanan_olga    <- rnorm(n1, mean = 120, sd = 10)

# Kelompok tidak rutin olahraga (mean lebih tinggi, ragam lebih besar)
kolesterol_non  <- rnorm(n2, mean = 210, sd = 25)
tekanan_non     <- rnorm(n2, mean = 130, sd = 15)

# Bentuk data frame
data_olga <- data.frame(Kolesterol = kolesterol_olga,
                        Tekanan    = tekanan_olga)

data_non  <- data.frame(Kolesterol = kolesterol_non,
                        Tekanan    = tekanan_non)

head(data_olga)
##   Kolesterol  Tekanan
## 1   183.3727 117.6093
## 2   160.3791 111.6422
## 3   181.0478 125.0636
## 4   191.3207 120.3993
## 5   218.2872 105.1601
## 6   195.3894 122.5571
head(data_non)
##   Kolesterol  Tekanan
## 1   178.1082 122.5976
## 2   209.7365 124.8365
## 3   197.6305 139.2586
## 4   185.4750 103.3382
## 5   163.5938 137.4356
## 6   180.1007 102.9509

Menghitung vektor rataan dan matriks covarians

# Rataan
xbar1 <- apply(data_olga, 2, mean)
xbar2 <- apply(data_non,  2, mean)

xbar1
## Kolesterol    Tekanan 
##   186.3063   117.3203
xbar2
## Kolesterol    Tekanan 
##   202.3052   125.2335
# Kovarians
cov_m1 <- cov(data_olga)
cov_m2 <- cov(data_non)

cov_m1
##            Kolesterol   Tekanan
## Kolesterol  262.44129 -67.80479
## Tekanan     -67.80479 104.57826
cov_m2
##            Kolesterol   Tekanan
## Kolesterol   733.8945 -138.5965
## Tekanan     -138.5965  424.4593
n1 <- nrow(data_olga)
n2 <- nrow(data_non)

Uji T2 Hotelling Dua Populasi Sampel Saling Bebas Ragam Sama

library(Hotelling)

t2_not_homogen <- hotelling.test(data_olga, data_non, var.equal = FALSE)
t2_not_homogen
## Test stat:  6.4554 
## Numerator df:  2 
## Denominator df:  16.5717860318169 
## P-value:  0.0719

Simpulan: Pada taraf signifikansi 5%, hasil uji Hotelling T² (F = 6.4554, p-value = 0.0719) menunjukkan gagal menolak H₀.Artinya, tidak terdapat bukti yang cukup untuk menyimpulkan adanya perbedaan yang signifikan antara rata-rata kolesterol dan tekanan darah pada kedua kelompok.

Selang Kepercayaan Simultan

T.ci <- 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)
}

# Kolesterol
T.ci(xbar1, xbar2, cov_m1, cov_m2, n1, n2, avec = c(1,0), level = 0.95)
##      lower      upper 
## -37.707235   5.709463
# Tekanan darah
T.ci(xbar1, xbar2, cov_m1, cov_m2, n1, n2, avec = c(0,1), level = 0.95)
##      lower      upper 
## -23.841139   8.014757

Latihan

# Kasus: Produktivitas Karyawan
# Sistem Hybrid vs Kantor Penuh

library(MASS)
## Warning: package 'MASS' was built under R version 4.4.3
set.seed(1035)

n_hybrid <- 20
n_kantor <- 20

# Nilai karyawan Hybrid: misalnya rata-rata lebih rendah
mu_hybrid <- c(70, 60)  # (Kecepatan Tugas, Problem Solving)
Sigma <- matrix(c(180, 40, 40, 160), 2) #ragamnya sama
data_hybrid <- mvrnorm(n_hybrid, mu = mu_hybrid, Sigma = Sigma)

# Nilai karyawan Kantor: rata-rata lebih tinggi
mu_kantor <- c(80, 65)
data_kantor <- mvrnorm(n_kantor, mu = mu_kantor, Sigma = Sigma)

# Gabungkan menjadi satu data frame
data_karyawan <- data.frame(
  MetodeKerja = rep(c("Hybrid", "Kantor"), each = 20),
  KecepatanTugas = c(data_hybrid[,1], data_kantor[,1]),
  ProblemSolving = c(data_hybrid[,2], data_kantor[,2])
)

head(data_karyawan)
##   MetodeKerja KecepatanTugas ProblemSolving
## 1      Hybrid       76.84710       61.66458
## 2      Hybrid      101.71241       66.01936
## 3      Hybrid       71.93499       71.61623
## 4      Hybrid       82.37267       42.07410
## 5      Hybrid       42.07853       51.22521
## 6      Hybrid       57.63697       67.34907

UJi T hotteling

# Uji Hotelling's T²

library(Hotelling)

uji_hotelling <- hotelling.test(
  . ~ MetodeKerja,
  data = data_karyawan[, c("KecepatanTugas", "ProblemSolving", "MetodeKerja")]
)

uji_hotelling
## Test stat:  5.4351 
## Numerator df:  2 
## Denominator df:  37 
## P-value:  0.08432
  • Hipotesis nol (H0): Tidak ada perbedaan rata-rata produktivitas antara karyawan Hybrid dan Kantor Penuh.

  • Hipotesis alternatif (H1): Ada perbedaan rata-rata produktivitas.

Karena p-value = 0.08432 > 0.05, kita gagal menolak H0, tidak terdapat bukti signifikan bahwa rata-rata produktivitas (Kecepatan Tugas & Problem Solving) berbeda antara karyawan yang bekerja Hybrid dan yang bekerja penuh di kantor.

Hasil uji menunjukkan kantor tidak perlu memaksakan seluruh karyawan bekerja di kantor, karena produktivitas relatif sama. Ini memberi fleksibilitas dalam pengaturan sistem kerja, efisiensi biaya, dan potensi peningkatan kepuasan karyawan tanpa mengorbankan kinerja.

Karena tidak ada perbedaan signifikan dalam produktivitas antara karyawan Hybrid dan yang bekerja penuh di kantor, manajemen bisa mempertahankan atau menerapkan sistem kerja hybrid tanpa khawatir menurunkan produktivitas sehingga bisa mengefisiensikan ruang dan biaya.