A. Pendahuluan

Analisis Kovarian adalah suatu cara mengkombinasikan analisis variansi dengan analisis regresi yang dapat digunakan untuk perbaikan ketelitian suatu percobaan (Kutner dkk., 2005). Analisis kovarian dilakukan berdasarkan pertimbangan bahwa dalam kenyataannya ada peubah tertentu yang tidak dapat dikendalikan, tetapi mempengaruhi atau berkorelasi dengan peubah respon yang diamati. Analisis kovarian dapat diterapkan dalam setiap rancangan percobaan termasuk Rancangan Bujursangkar Latin (RBGL).

Tujuan ANCOVA yakni untuk mengetahui pengaruh dari variabel bebas terhadap variabel terikat dengan mengendalikan pengaruh dari satu atau lebih variabel kovariat, sehingga dapat dilakukan perbandingan yang lebih adil antar kelompok. Analisis kovarian digunakan untuk menghilangkan variasi yang disebabkan oleh variabel kovariat sehingga variabilitas data menjadi lebih kecil dan kesalahan galat dapat ditekan, sehingga analisis menjadi lebih efisien. Adapun model linier dari ANCOVA dengan satu faktor perlakuan dan satu covariate dapat dirumuskan sebagai berikut:

\[ y_{ij} = \mu + \tau_i + \beta x_{ij} + \epsilon_{ij} \]

B. Deskripsi Data

Dataset ini memuat informasi dari 60 partisipan tentang:

C. Persiapan Data

Sebelum melakukan analisis lebih lanjut, langkah pertama yang dilakukan adalah menyiapkan data. Hal ini penting agar kita bisa memahami struktur data yang akan dianalisis, serta memastikan tidak ada masalah seperti nilai yang hilang (missing values) atau ketidaksesuaian tipe data.

library(tidyverse)
library(datarium)

# Load data
data("stress")
glimpse(stress)
## Rows: 60
## Columns: 5
## $ id        <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1…
## $ score     <dbl> 95.6, 82.2, 97.2, 96.4, 81.4, 83.6, 89.4, 83.8, 83.3, 85.7, …
## $ treatment <fct> yes, yes, yes, yes, yes, yes, yes, yes, yes, yes, yes, yes, …
## $ exercise  <fct> low, low, low, low, low, low, low, low, low, low, moderate, …
## $ age       <dbl> 59, 65, 70, 66, 61, 65, 57, 61, 58, 55, 62, 61, 60, 59, 55, …
# Cek missing values
sum(is.na(stress))
## [1] 0
# Ubah ke faktor
stress$treatment <- as.factor(stress$treatment)
stress$exercise  <- as.factor(stress$exercise)

D. Visualisasi Awal

ggplot(stress, aes(x = exercise, y = score, fill = treatment)) +
  geom_boxplot() +
  labs(
    title = "Sebaran Skor Kolesterol per Kelompok",
    x = "Tingkat Olahraga",
    y = "Skor Kolesterol",
    fill = "Treatment"
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5))

Grafik boxplot menunjukkan bagaimana skor kolesterol tersebar pada tiap kombinasi treatment dan tingkat olahraga.

Di tingkat olahraga rendah dan sedang, perbedaan skor kolesterol antara peserta yang mendapat treatment dan yang tidak terlihat kecil. Tapi di tingkat olahraga (Exercise) tinggi, peserta yang mendapat treatment punya skor kolesterol yang jauh lebih rendah.

Hal ini menunjukan kemungkinan adanya interaksi antara treatment dan exercise, yang akan diuji lebih lanjut lewat analisis ANCOVA.

E. Analisis Model Interaksi (ANCOVA)

Selanjutnya dilakukan analisis dengan menggunakan model linier, di mana variabel score (tingkat kolesterol) dijadikan sebagai variabel respon. Model yang digunakan mencakup: - Treatment - Exercise - Interaksi treatment × exercise - Kovariat: Weight (berat badan)

# Model dengan interaksi dan kovariat
model_interaksi_final <- lm(score ~ treatment * exercise + age, data = stress)

# ANOVA
anova(model_interaksi_final)
## Analysis of Variance Table
## 
## Response: score
##                    Df  Sum Sq Mean Sq F value    Pr(>F)    
## treatment           1  351.38  351.38 14.1414 0.0004249 ***
## exercise            2 1776.27  888.13 35.7428 1.488e-10 ***
## age                 1  222.74  222.74  8.9641 0.0041770 ** 
## treatment:exercise  2  220.94  110.47  4.4458 0.0164087 *  
## Residuals          53 1316.94   24.85                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Ringkasan model
summary(model_interaksi_final)
## 
## Call:
## lm(formula = score ~ treatment * exercise + age, data = stress)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.3250 -3.0192  0.2745  2.4650 10.6667 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                   56.79090   10.41383   5.453 1.32e-06 ***
## treatmentno                    1.52858    2.23026   0.685   0.4961    
## exercisemoderate               0.01746    2.25662   0.008   0.9939    
## exercisehigh                 -13.70331    2.36314  -5.799 3.78e-07 ***
## age                            0.50355    0.16684   3.018   0.0039 ** 
## treatmentno:exercisemoderate   0.15503    3.16129   0.049   0.9611    
## treatmentno:exercisehigh       8.21822    3.15375   2.606   0.0119 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.985 on 53 degrees of freedom
## Multiple R-squared:  0.6613, Adjusted R-squared:  0.623 
## F-statistic: 17.25 on 6 and 53 DF,  p-value: 6.167e-11

Setelah menjalankan model ANCOVA yang mencakup perlakuan (treatment), tingkat olahraga (exercise), interaksi keduanya, dan berat badan (age) sebagai kovariat, kita mendapatkan beberapa temuan penting.

Hipotesis:

  1. Efek utama treatment:
  1. Efek utama exercise:
  1. Efek interaksi treatment dan exercise:
  1. Efek kovariat (weight):

Dari tabel ANOVA, terlihat bahwa semua variabel dalam model memiliki pengaruh yang signifikan terhadap tingkat kolesterol (score), termasuk: - Treatment → \(p\)-value = 0.0004 (signifikan) - Exercise → \(p\)-value = 1.49e-10 (sangat signifikan) - Weight (berat badan) → \(p\)-value = 0.0042 (signifikan) - Interaksi Treatment × Exercise → \(p\)-value = 0.016 (juga signifikan) Artinya: Tingkat kolesterol peserta dipengaruhi oleh perlakuan, olahraga, berat badan, dan gabungan antara treatment dan olahraga. Jadi, efek treatment itu tidak selalu sama di setiap tingkat olahraga ada kombinasi tertentu yang efeknya lebih kuat.

Hasil Koefisien Model Jika dilihat dari output summary(), ada beberapa hal menarik: - Orang yang berolahraga intensitas tinggi (high) punya skor kolesterol yang jauh lebih rendah (sekitar 13 poin lebih rendah) dibanding yang olahraga ringan → dan ini signifikan. - Berat badan punya peran: setiap kenaikan berat 1 kg, kolesterol naik sekitar 0.5 poin. - Interaksi antara tidak mendapat perlakuan (treatment = no) dan olahraga intensitas tinggi juga signifikan → menunjukkan bahwa efek olahraga bisa berbeda tergantung apakah seseorang mendapat perlakuan atau tidak.

Sementara itu, beberapa variabel lainnya (seperti treatment itu sendiri atau exercise moderate) tidak terlalu signifikan secara individu, tapi interaksi antar variabel justru memberikan informasi penting.

Kekuatan Model - Nilai R-squared = 0.66, artinya model ini bisa menjelaskan sekitar 66% variasi kolesterol yang terjadi. Ini termasuk cukup baik untuk model sosial/biomedis. - Nilai \(p\)-value model = 6.17e-11 juga menunjukkan bahwa model secara keseluruhan sangat signifikan.

F. Uji Asumsi Model

1. Normalitas Residual

Uji normalitas dilakukan untuk mengetahui apakah data variabel dependen dan kovariat berdistribusi normal, yang merupakan salah satu asumsi penting dalam analisis ANCOVA. Dalam penelitian ini, variabel yang diuji normalitasnya adalah kadar kolesterol sebagai variabel dependen dan berat badan sebagai kovariat. Asumsi normalitas penting dipenuhi karena pelanggaran terhadap asumsi ini dapat memengaruhi akurasi estimasi parameter dan validitas hasil analisis. Oleh karena itu, sebelum melanjutkan ke tahap analisis utama, dilakukan pengujian normalitas untuk memastikan bahwa distribusi data pada kedua variabel tersebut mendekati distribusi normal.

shapiro.test(residuals(model_interaksi_final))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(model_interaksi_final)
## W = 0.98226, p-value = 0.5313

Uji Shapiro-Wilk digunakan untuk menguji apakah residual dari model berdistribusi normal.
Nilai \(p\)-value yang dihasilkan adalah \(0.5313\), yang lebih besar dari tingkat signifikansi umum (\(\alpha = 0.05\)).

  • \(H_0\): Data residual berdistribusi normal
  • \(H_1\): Data residual tidak berdistribusi normal

Karena \(p\)-value \(> 0.05\), maka tidak ada cukup bukti untuk menolak \(H_0\).
Artinya, residual dari model dapat dianggap berdistribusi normal.

2. Homoskedastisitas

Uji homoskedastisitas dilakukan untuk mengevaluasi apakah varians residual dari model ANCOVA bersifat homogen atau konstan pada seluruh nilai prediktor. Asumsi ini penting karena jika terjadi heteroskedastisitas (varian yang tidak konstan), maka estimasi parameter dalam model menjadi tidak efisien dan uji signifikansi bisa memberikan hasil yang menyesatkan. Dalam konteks penelitian ini, uji homoskedastisitas digunakan untuk memastikan bahwa variabilitas kadar kolesterol tidak berubah secara sistematis terhadap perubahan nilai kovariat maupun perlakuan. Oleh karena itu, sebelum menarik kesimpulan dari hasil analisis, perlu dipastikan bahwa model memenuhi asumsi homoskedastisitas melalui pemeriksaan residual.

library(lmtest)
bptest(model_interaksi_final)
## 
##  studentized Breusch-Pagan test
## 
## data:  model_interaksi_final
## BP = 4.6276, df = 6, p-value = 0.5924

Uji Breusch-Pagan digunakan untuk menguji apakah residual dari model memiliki varian yang konstan (homoskedastisitas) atau tidak.

  • \(H_0\): Residual memiliki varian yang konstan (homoskedastisitas).
  • \(H_1\): Terdapat varians yang tidak konstan (heteroskedastisitas).

Berdasarkan hasil uji homoskedastisitas dengan studentized Breusch-Pagan test, diperoleh nilai \(p\)-value sebesar 0.5924. Karena \(p\)-value lebih besar dari 0.05, maka tidak terdapat bukti adanya heteroskedastisitas dalam model. Dengan demikian, asumsi homoskedastisitas terpenuhi, yang berarti varians residual model bersifat konstan pada seluruh rentang prediktor.

3. Multikolinearitas

Uji multikolinearitas dilakukan untuk memastikan bahwa tidak terdapat hubungan linier yang kuat antar variabel independen atau kovariat dalam model. Dalam analisis ANCOVA, keberadaan multikolinearitas yang tinggi dapat menyebabkan kesulitan dalam mengestimasi parameter secara akurat, karena variabel-variabel yang saling berkorelasi tinggi akan menyulitkan model dalam membedakan kontribusi masing-masing variabel terhadap variabel dependen. Oleh karena itu, uji ini penting dilakukan guna menjamin stabilitas dan interpretabilitas model. Dalam penelitian ini, uji multikolinearitas dilakukan terhadap variabel perlakuan, olahraga, dan berat badan untuk memastikan bahwa tidak ada interdependensi yang mengganggu hasil analisis.

library(car)
vif(model_interaksi_final)
##                        GVIF Df GVIF^(1/(2*Df))
## treatment          3.002688  1        1.732827
## exercise           4.496770  2        1.456214
## age                1.255573  1        1.120524
## treatment:exercise 8.045107  2        1.684158

Dalam model yang mengandung variabel kategorik dengan lebih dari dua level atau interaksi, digunakan GVIF yang disesuaikan dengan rumus:

\[ GVIF^{\left( \frac{1}{2 \times Df} \right)} \]

Untuk menilai multikolinearitas, nilai \(GVIF^{\left( \frac{1}{2 \times Df} \right)}\) umumnya dibandingkan dengan batas toleransi, di mana:

  • Nilai < 2 → Tidak ada indikasi multikolinearitas.
  • Nilai antara 2 – 5 → Perlu diwaspadai, tetapi belum terlalu mengganggu.
  • Nilai > 5 atau 10 → Menunjukkan adanya multikolinearitas tinggi (tergantung konteks penelitian).

Berdasarkan hasil uji multikolinearitas menggunakan Generalized Variance Inflation Factor (GVIF), seluruh nilai \(GVIF^{\left( \frac{1}{2 \times Df} \right)}\) berada di bawah 2, yaitu berkisar antara 1.12 hingga 1.73.

Nilai tersebut menunjukkan bahwa tidak terdapat indikasi multikolinearitas di antara variabel independen dan interaksi dalam model. Dengan demikian, asumsi tidak adanya multikolinearitas dalam analisis ANCOVA telah terpenuhi.

4. Plot Diagnostik Model

Plot diagnostik model digunakan untuk mengevaluasi kelayakan model regresi yang dibangun serta memastikan bahwa berbagai asumsi dasar regresi terpenuhi, seperti normalitas, linearitas, homoskedastisitas, dan tidak adanya pengaruh ekstrem dari outlier atau observasi leverage tinggi. Dalam konteks analisis ANCOVA, evaluasi terhadap asumsi-asumsi ini penting untuk menjamin bahwa hasil estimasi parameter bersifat valid dan dapat diinterpretasikan dengan tepat. Oleh karena itu, dilakukan visualisasi diagnostik berupa empat jenis plot, yaitu Residuals vs Fitted, Normal Q-Q, Scale-Location, dan Residuals vs Leverage. Masing-masing plot memberikan gambaran visual yang membantu dalam mendeteksi potensi penyimpangan terhadap asumsi regresi yang dapat memengaruhi keakuratan model.

par(mfrow = c(2, 2))
plot(model_interaksi_final)

Berdasarkan hasil plot diagnostik model, secara umum asumsi-asumsi dasar regresi telah terpenuhi. Pada plot Residuals vs Fitted, titik-titik residual tersebar secara acak di sekitar garis horizontal nol tanpa menunjukkan pola tertentu, yang mengindikasikan bahwa asumsi linearitas dan homoskedastisitas terpenuhi. Plot Normal Q-Q menunjukkan bahwa sebagian besar titik berada di sepanjang garis diagonal, yang menandakan bahwa residual berdistribusi normal. Plot Scale-Location juga menunjukkan penyebaran titik yang relatif merata, dengan garis tren yang mendatar, sehingga mendukung asumsi homoskedastisitas. Sementara itu, pada plot Residuals vs Leverage, tidak ditemukan observasi yang melampaui batas pengaruh (Cook’s distance), meskipun beberapa observasi (seperti 21 dan 51) tampak menonjol dan perlu diwaspadai. Secara keseluruhan, hasil ini menunjukkan bahwa model layak untuk digunakan dalam interpretasi lebih lanjut.

Tabel Uji Asumsi ANCOVA

Asumsi Uji Hasil Keterangan
Normalitas Shapiro-Wilk p = 0.531 Residual tersebar normal
Homoskedastisitas Breusch-Pagan p = 0.592 Homogen
Multikolinearitas VIF (<2) 1.1 - 1.7 Tidak terjadi multikolinearitas antar variabel

Berdasarkan hasil pengujian asumsi yang disajikan dalam tabel, dapat disimpulkan bahwa model telah memenuhi syarat-syarat utama untuk analisis ANCOVA. Uji normalitas menggunakan Shapiro-Wilk menunjukkan nilai p sebesar 0.531, yang berarti residual model berdistribusi normal. Uji homoskedastisitas dengan Breusch-Pagan menghasilkan \(p\)-value sebesar 0.592, sehingga dapat disimpulkan bahwa varians residual bersifat homogen atau konstan. Selain itu, hasil uji multikolinearitas menunjukkan nilai VIF yang berada dalam rentang 1.1 hingga 1.7, jauh di bawah batas kritis, yang mengindikasikan tidak adanya hubungan linier yang kuat antar variabel bebas. Dengan terpenuhinya ketiga asumsi ini, model dapat dianggap valid dan layak digunakan untuk analisis lebih lanjut.

G. Post Hoc & Plot Interaksi

library(emmeans)

# Post hoc
emmeans(model_interaksi_final, pairwise ~ treatment * exercise)
## $emmeans
##  treatment exercise emmean   SE df lower.CL upper.CL
##  yes       low        87.0 1.60 53     83.8     90.2
##  no        low        88.5 1.62 53     85.3     91.7
##  yes       moderate   87.0 1.58 53     83.8     90.2
##  no        moderate   88.7 1.59 53     85.5     91.9
##  yes       high       73.3 1.65 53     70.0     76.6
##  no        high       83.0 1.61 53     79.8     86.3
## 
## Confidence level used: 0.95 
## 
## $contrasts
##  contrast                   estimate   SE df t.ratio p.value
##  yes low - no low            -1.5286 2.23 53  -0.685  0.9828
##  yes low - yes moderate      -0.0175 2.26 53  -0.008  1.0000
##  yes low - no moderate       -1.7011 2.23 53  -0.763  0.9725
##  yes low - yes high          13.7033 2.36 53   5.799  <.0001
##  yes low - no high            3.9565 2.32 53   1.707  0.5333
##  no low - yes moderate        1.5111 2.27 53   0.666  0.9849
##  no low - no moderate        -0.1725 2.23 53  -0.077  1.0000
##  no low - yes high           15.2319 2.39 53   6.384  <.0001
##  no low - no high             5.4851 2.34 53   2.347  0.1940
##  yes moderate - no moderate  -1.6836 2.25 53  -0.748  0.9747
##  yes moderate - yes high     13.7208 2.27 53   6.042  <.0001
##  yes moderate - no high       3.9740 2.25 53   1.768  0.4944
##  no moderate - yes high      15.4044 2.35 53   6.563  <.0001
##  no moderate - no high        5.6576 2.30 53   2.455  0.1565
##  yes high - no high          -9.7468 2.23 53  -4.362  0.0008
## 
## P value adjustment: tukey method for comparing a family of 6 estimates

Post-Hoc
Rata-rata marginal: - Highest mean: no - moderate (88.7) - Lowest mean: yes - high (73.3) Kontras signifikan: - yes - high berbeda signifikan dibanding kelompok lainnya (p < 0.001) - Tidak ada perbedaan signifikan antara kelompok low dan moderate

Berdasarkan hasil uji Post-Hoc yang telah dilakukan, terdapat 5 pasangan kombinasi level untuk treatment dan exercise yang menunjukkan hasil signifikan (\(p\)-value < 0.05). Dimana semua perbandingan antar grup yang melibatkan treatment = yes dan exercise = high menunjukkan penurunan score. Hal tersebut mengindikasikan skor kolesterol dapat turun secara signifikan jika grup menerima treatment dan disertai dengan olahraga intensitas tinggi.

# Plot interaksi
emmip(model_interaksi_final, treatment ~ exercise, cov.reduce = mean)

Plot interaksi antara level treatment dan exercise menunjukkan perubahan yang tidak signifikan pada skor kolesterol ketika exercise berada pada level rendah atau menengah, baik pada kelompok yang menerima treatment maupun yang tidak. Ketika intensitas exercise berada pada level tinggi, maka skor kolesterol menunjukkan penurunan yang lebih signifikan terutama ketika grup menerima treatment.

H. Kesimpulan

I. Daftar Pustaka

[1] Schwarz, W (2025). The Ancova model for comparing two groups: a tutorial emphasizing statistical distribution theory. Frontiers in Psychology, frontiersin.org, https://doi.org/10.3389/fpsyg.2025.1600764

[2] Kosova, AGR The Performance Of University Students And High School Factors. Statistical Analyses And ANCOVA. jmest.org, https://www.jmest.org/wp-content/uploads/JMESTN42353945.pdf

[3] Dugard, P, Todman, J, & Staines, H (2022). Analysis of covariance (ANCOVA). … Multivariate Analysis, 2nd …, taylorfrancis.com, https://doi.org/10.4324/9781003343097-5

[4] Hedges, LV, Tipton, E, Zejnullahi, R, & … (2023). Effect sizes in ANCOVA and difference‐in‐differences designs. British Journal of …, Wiley Online Library, https://doi.org/10.1111/bmsp.12296

[5] Mistry, EA, Yeatts, SD, Khatri, P, Mistry, AM, Detry, M, & … (2022). National institutes of health stroke scale as an outcome in stroke research: value of ANCOVA over analyzing change from baseline. Stroke, ahajournals.org, https://doi.org/10.1161/STROKEAHA.121.034859

[6] Lüdtke, O, & Robitzsch, A (2025). ANCOVA versus change score for the analysis of two-wave data. The Journal of Experimental Education, Taylor &Francis, https://doi.org/10.1080/00220973.2023.2246187

[7] Khodzhabekyan, NV, Tarutta, EP, Khandzhyan, AT, & … (2021). An ANCOVA analysis of the results of planned and actually obtained hypocorrection after excimer laser surgery in middle-aged patients with myopia. Russian …, ovis.ru, https://ovis.ru/media/filer_public/9e/cf/9ecf30a9-942e-48d9-ac58-779df4b51185/roj_2_2021_video_organum_visus.pdf#page=51

[8] Gjana, A, & Kosova, R (2021). Traditional Class, and Online Class Teaching. Comparing the Students Performance Using ANCOVA. Journal of Multidisciplinary Engineering …, researchgate.net, https://www.researchgate.net/profile/Robert-Kosova/publication/388645582_Traditional_Class_And_Online_Class_Teaching_Comparing_The_Students_Performance_Using_ANCOVA/links/67a0c48396e7fb48b9b0744f/Traditional-Class-And-Online-Class-Teaching-Comparing-The-Students-Performance-Using-ANCOVA.pdf

[9] Jung, WJ, Lee, K, Kim, HH, & Lim, C (2025). How to construct analysis of covariance in clinical trials: ANCOVA with one covariate in a completely randomized design structure. Korean Journal of Anesthesiology, ekja.org, http://ekja.org/journal/view.php?number=9057

[10] Buderer, N, & Brannan, G (2024). Comparing the means of independent groups: ANOVA, ANCOVA, MANOVA, and MANCOVA. StatPearls, statpearls.com, https://www.statpearls.com/point-of-care/161667