You are on page 1of 14

ONE WAY REPEATED ANOVA

Lê Tấn Phùng*

1. Khái niệm
Repeated ANOVA tương đương với One way ANOVA, nhưng khác nhau ở chỗ các
nhóm không độc lập với nhau mà có một mối liên quan nào đó. Vì thế, repeated ANOVA còn
gọi là within-subjects ANOVA.
Trong thực tế khá thường gặp các thiết kế nghiên cứu đòi hỏi kỹ thuật phân tích
repeated ANOVA. Có 2 tình huống về thiết kế nghiên cứu minh họa cho kỹ thuật phân tích
này như sau:
(1) Các nghiên cứu nhằm khảo sát sự thay đổi về giá trị trung bình tại nhiều thời điểm
khác nhau.
(2) Các nghiên cứu nhằm khảo sát sự thay đổi về giá trị trung bình theo các điều kiện
khác nhau.
Các ví dụ sau đây minh họa cho 2 tình huống này:
Tình huống (1): Một nghiên cứu về đau do viêm mõm trên lồi cầu xương cánh tay sử
dụng thang đo QuickDASH gồm 11 tiểu mục để đánh giá mức độ đau, được cho điểm từ 1 –
5. Giá trị thu được sau đó sẽ được chuẩn hóa về thang đo 100. Nghiên cứu trên 50 bệnh nhân
sử dụng phương pháp tiêm huyết tương giàu tiểu cầu (Platelet Rich Plasma: PRP) và theo dõi
sự thay đỗi của QuickDASH tại 4 thời điểm khác nhau: tuần 0 (ngay trước khi điều trị), tuần
4, tuần 12 và tuần 26 sau khi điều trị. Giá trị trung bình của QuickDASH được so sánh qua 4
thời điểm này trên cùng một bệnh nhân để đánh giá hiệu quả của phương pháp điều trị PRP.
Đây là tình huống có thể sử dụng One Way Repeated ANOVA để phân tích sự thay đổi này.
Tình huống (2): Cùng một người, cho họ sử dụng 3 loại cafe khác nhau và đếm mạch
của họ sau khi uống 15 phút. So sánh giá trị trung bình của mạch do tác dụng của 3 loại cafe
nói trên. Các điều kiện khác nhau của tình huống ngày chính lá 3 loại cafe khác nhau đó.
Như vậy, one way repeated ANOVA dùng để phân tích sự khác nhau về giá trị trung
bình đo được trên cùng một người (chứ không phải ở những ngưởi khác nhau) tại các thời
điểm khác nhau hoặc ở các “hoàn cảnh” khác nhau.
Bảng dưới đây minh họa cho tình huống 1 đã nêu ở trên:

*
Tiến sĩ, Bác sĩ; Sở Y tế Khánh Hòa, letanphung@yahoo.com

1
Bệnh nhân Giá trị QuickDASH theo thời gian (tuần)
Tuần 0 Tuần 4 Tuần 12 Tuần 26
Nguyễn A 70 60 55 41
Lê B 81 75 67 44
... ... ... ... ...
Huỳnh D 90 82 76 59
... ... ... ... ...
Trung bình μ1 μ2 μ3 μ4

2. Giả thuyết trong One way repeated ANOVA


Giả thuyết H0 cho repeated ANOVA là: Không có sự khác biệt giữa trung bình các
nhóm với nhau. Với tình huống trong bảng trên thì giả thuyết H0 là μ1 = μ2 = μ3 = μ4
Tổng quát hóa giả thuyết này như sau:
H0: μ1 = μ2 = μ3 = ... = μk
Trong đó k là số nhóm (ví dụ như số thời điểm, số điều kiện) và μ là giá trị trung bình
quần thể (population mean).
Giả thuyết HA : Có ít nhất 2 giá trị trung bình là khác nhau.
Áp dụng với tình huống (1) ở trên, các giả thuyết lần lượt như sau:
H0 : Giá trị QuickDASH tại 4 thời điểm đánh giá là không khác nhau (đồng nghĩa với
việc sử dụng PRP không làm cho bệnh nhân giảm đau hơn).
HA : Có ít nhất 2 thời điểm sau khi tiêm PRP có giá trị trung bình QuickDASH khác
nhau, đồng nghĩa với việc tiêm PRP làm bệnh nhân giảm đau hơn.

3. One way repeated ANOVA với SPSS


Các bước cơ bản để thực hiện phân tích repeated ANOVA bằng SPSS bao gồm:
(a) Xác định tên yếu tố được đo lường lặp lại (Repeated Measures Define Factor)
(b) Nhập các biến đo lường lặp lại vào yếu tố này
(c) Xác định các thông số thống kê cần phân tích, thông thường là: Thống kê mô tả, kiểm
định post hoc để khảo sát cặp đôi nào khác nhau có ý nghĩa thống kê.
(d) Viết báo cáo
Thực hành phân tích bằng SPSS trên một bộ số liệu thực như đã mô tả trong tình
huống (1) ở trên. Bộ số liệu tên là prp2019.sav và có thể download theo link dưới đây:
https://1drv.ms/u/s!AhgkO2Z7bXYhgf4UEqxfRRfCPL9OKQ

2
Bộ số liệu chứa các thông tin của 50 bệnh nhân, bao gồm 25 biến số như hình bên
dưới. Các bệnh nhân được phân biệt bằng biến “id”. Giá trị QuickDASH tại 4 thời diểm khác
nhau trong bộ số liệu này được lưu trữ với tên biến lần lượt là qd1, qd2, qd3, và qd4.

4 biến số ghi điểm


QuickDASH của 1
bệnh nhân tại 4 thời
điểm khác nhau

Để bắt đầu phân tích, click chọn Analyze trên thanh menu, sau dó chọn General
Linear Model và chọn tiếp Repeated Measures

3
(a) Xác định tên yếu tố được đo lường lặp lại: Hộp thoại “Repeated Measures Define
Factor(s)” xuất hiện sau khi đã thực hiện thao tác trên. Trong khung “Within-Subject
Factor Name” đã có sẵn từ “factor1”. Đây là tên yếu tố mặc định. Ta thay đổi tên này
thành Time (Thời gian theo tuần ghi nhận điểm QuickDASH, gồm 4 mốc thời gian
như đã nói trên), bằng cách nhập trực tiếp vào khung này. Tại khung “Numbers of
Levels”, nhập 4, tức là có 4 mốc thời gian khác nhau. Chi tiết xem hình bên dưới.

4
Sau đó, click vào nút “Add”, dòng Time(4) sẽ tự động nhảy vào khung này. Kết thúc
bước (a).
(b) Nhập các biến đo lường lặp lại vào yếu tố “Time”: Tiếp tục hộp thoại trên, click
“Define” sẽ xuất hiện hộp thoại mới để nhập các biến đo lường lặp lại mà trong ví dụ
này, đó là các biến qd1, qd2, qd3, và qd4. Chọn 4 biến này, sau đó click vào mũi tên
trên cùng để chuyển 4 biến này vào khung Within-Subjects Variables (Time) như
hình bên dưới để kết thúc bước (b).

Chọn 4 biến này


Sau khi chuyển
và click vào mũi
tên để chuyển

5
(c) Xác định các thông số thống kê cần phân tích: Tại hộp thoại ở trên, chọn “Options...”
để chuyển sang hộp thoại mới: “Repeated Measures Options”. Tại hộp thoại mới này,
click chọn “Time” trong khung bên trái “Factor(s) and Factor Interactions” và click
mũi tên để chuyển “Time” sang khung bên phải “Display Means for”. Ngay bên dưới
khung này, click chọn “Compare main effects”, sau đó chọn “Bonferroni” trong
khung xổ xuống. Tại khung Display bên dưới, click chọn “Descriptive statistics” và
“Estimates of effect size”. Cuối cùng, chọn “Continue” rồi chọn “OK’ để kết thúc.

Màn hình output được thể hiện một phần như hình bên dưới:

6
Sử dụng và giải thích output của SPSS lần lượt như sau:

Mô tả yếu tố “Time” đã định


nghĩa ở phần trước, bao gồm 4
biến (qd1-qd4) được đo ở 4 thời
điểm khác nhau

Thống kê mô tả trung bình, độ lệch


chuẩn và số quan sát của 4 biến qd1 –
qd4.

7
Hình trên mô tả 2 thống kê cơ bản: Within-Subjects Factors và Descriptive
Statistics.
Within-Subjects Factors định nghĩa lại yếu tố (factor) được đo lường lặp lại
với tên yếu tố (Time) và số lần được đo lường (4 lần) và tên các biến liên quan đến 4
lần đo lường đó (qd1, qd2, qd3, và qd4).
Descriptive Statistics trình bày trung bình (Mean), độ lệch chuẩn (Std,
Deviation) và số quan sát (N) của 4 biến qd tại 4 thời điểm đo khác nhau.
Bảng tiếp theo (Multivariate Tests) như hình bên dưới là không cần thiết cho
phân tích này cho nên có thể bỏ qua

Bảng Mauchly’s Test of Sphericity cung cấp kết quả của Mauchly Test về
tính chất Sphericity của số liệu. Sphericity trong trường hợp này tương tự như
Homogenity, tức là sự giống nhau về phương sai của các biến độc lập. Trong trường
hợp của Repeated Measures, Sphericity hàm ý sự biến thiên của từng cặp là không
khác nhau. Do đó, trong test Mauchly người ta mong muốn Test này sẽ không có ý
nghĩa thống kê, tức là p > 0.05, nhằm thỏa mãn điều kiện này trong phân tích
ANOVA.
Bảng kết quả này cho thấy p = 0.065 > 0.05. Do đó điều kiện về Sphericity
được thỏa mãn để tiếp tục phân tích. Để báo cáo kết quả này, người ta phải viết trị số
của Chi bình phương kèm độ tự do và giá trị của p. Với ví dụ này, có thể viết như sau:
Kết quả phân tích cho thấy test sphericity đã được thỏa với χ2(5) = 10.399 và
p = 0.065.

8
Bảng tiếp theo: Tests of Within-Subjects Effects chính là bảng ANOVA, là
bảng chính của phân tích (hình bên dưới) bao gồm 4 cột quan trọng với các thông tin
và ý nghĩa của những thông tin này như sau:
Cột df là độ tự do. Đối với phân tích ANOVA cần có 2 độ tự do: một độ tự do
cho biến độc lập (trong ví dụ này nằm trong hàng “Time”) và một độ tự do cho sai số
(trong ví dụ này là nằm trong hàng “Error (Time)”). Nếu gọi n là số quan sát (trong ví
dụ này n = 50) và k là số lần đo (trong ví dụ này k = 4) thì 2 độ tự do theo thứ tự này
là (k – 1) và (k – 1) (n – 1).
Cột F là giá trị thống kê được tính toán của ANOVA.
Cột Sig (viết tắt của từ significance level) tương đương với giá trị p
Cột Partial Eta Squared: Trong khi p value cho biết có sự khác nhau có ý
nghĩa thống kê hay không giữa các lần đo hay giữa các điều kiện khác nhau thì partial
eta squared (ηp2) là số đo của effect size, tương tự như R2 trong hồi quy tuyến tính,
cho chúng ta biết mức độ ảnh hưởng, mức ý nghĩa của thiết kế mẫu. Effect size càng
lớn thì mức ý nghĩa của phân tích ANOVA càng tốt. Các ngưỡng sau đây được áp
dụng cho giá trị của ηp2:
 ≥ 0.14: Mức ý nghĩa cao (large effects)
 ≥ 0.06: Mức ý nghĩa trung bình (medium effects)
 ≥ 0.01: Mức ý nghĩa thấp (small effects)

Với bảng trên, câu hỏi đặt ra là chọn con số thống kê nào trong rất nhiều số ở
nhiều hàng khác nhau thể hiện trong bảng. Với ví dụ này, do Mauchly test cho tính
chất sphericity đã được thỏa (p > 0.05) cho nên các số thống kê sẽ chọn là những số
thuộc hàng có Sphericity Assumed. Nếu Mauchly test không được thỏa, các điều
chỉnh (correction) được áp dụng với việc sử dụng các số thống kê ở một trong các
điều chỉnh ở 3 hàng bên dưới: Greenhouse-Geisser, Huynh-Feldt và Lower-bound.
Như trên đã nói, có 4 thống kê cần được báo cáo là df, F, sig. và Partial Eta
Squared cho nên trong ví dụ trên có thể báo cáo như sau:
Có sự thay đổi theo thời gian có ý nghĩa thống kê đối với giá trị trung bình của
Quick DASH tại 4 thời điểm khi sử dụng PRP để điều trị: F (3, 147) = 117.033 ; p =
0.000... ; ηp2 = 0.705.

9
Các bảng tiếp theo: Test of Within-Subjects Contrasts và Test of Between
Subjects Effects có thể bỏ qua.
Bảng cuối cùng cần chú ý và báo cáo phân tích là bảng Pairwise
Comparisons. Bảng này gọi là post hoc test sử dụng phương pháp của Bonferroni, so
sánh sự khác biệt giữa từng cặp với nhau với 2 cột đáng chú ý: Sự sai khác số trung
bình (Mean Difference) và mức ý nghĩa (Sig.)
Kết quả phân tích cho thấy tất cả các cặp đều tồn tại sự khác biệt có ý nghĩa
thống kê do toàn bộ mức ý nghĩa (Sig.) đều < 0.001.
Tóm lại, trong phân tích repeated ANOVA, các thông tin cần phải báo cáo bao
gồm:
- Xác định tính chất sphericity được thỏa với test Mauchly.
- Bảng ANOVA
- Báo cáo ý nghĩa thống kê với các số liệu F (df1, df2), p value, partial eta squared
ηp2
- So sánh từng cặp (post hoc, có thể sử dụng phương pháp Bonferroni)

10
4. One way repeated với R
Đối với R, có khá nhiều cách tiếp cận để phân tích repeated measures ANOVA thông
qua các packages khác nhau. Trong bài viết này sẽ trình bày phương pháp sử dụng package
“car” và một số package liên quan để thu thập các thống kê liên quan đến Mauchly’s
sphericity test, bảng ANOVA, effect sizes và phân tích post hoc để so sánh từng cặp.
Trở lại với bộ số liệu trong ví dụ trên (chuyển đổi từ file “prp2019.sav” và được đặt
tên là “data_prp”), ta có các cột liên quan bao gồm id (mã bệnh nhân), qd1 đến qd4 biểu hiện
điểm QuickDASH tại 4 thời diểm khác nhau.

head(data_prp[,c("id","qd1","qd2","qd3","qd4")])
id qd1 qd2 qd3 qd4
1 1 61.36 47.73 36.36 13.64
2 2 54.54 45.45 34.09 13.64
3 3 45.45 31.81 25.00 9.09
4 4 61.36 45.45 29.54 13.64
5 5 31.81 29.54 6.81 0.00
6 6 13.63 9.09 4.54 4.54

Để phân tích repeated ANOVA bằng package “car”, thực hiện các bước sau đây:
- Tạo yếu tố về mức độ (thời gian hoặc điều kiện) dưới dạng factor, tương ứng với
số thời điểm hoặc số điều kiện đã cho. Ví dụ theo dõi số liệu theo 4 thời điểm
khác nhau thì yếu tố tạo ra sẽ bao gồm danh mục 4 mức độ khác nhau, chẳng hạn
xếp theo 1, 2, 3, 4.
- Tạo khung yếu tố dưới dạng data.frame
- Tạo matrix số liệu không chứa subject (tức là không chứa biến id trong ví dụ này
mà chỉ chứa các biến qd1 – qd4), ví dụ tạo thành matrix đặt tên là qdMatrix
- Chạy mô hình lm cho matrix vừa tạo được, ví dụ đặt tên là qdModel <- lm
(qdMatrix ~ 1)
- Load package “car” để sử dụng hàm Anova (mod, idata = , idesign = ~ ), ví dụ tạo
thành object qdANOVA; trong đó mod là tên object tạo được dựa trên lệnh lm ở
trên (là object qdModel), các tham số theo sau idata là data frame và theo sau
idesign là factor tạo được ở trên, có dấu ~ đi trước.
- Chạy summary (qdANOVA, multivariate = F)
- Tính giá trị partial eta squared sử dụng package “heplots” với lệnh etasq ()
- So sánh cặp sử dụng phương pháp bonferroni
Sau đây là các bước thực hiện trên R:

> # Tao yếu to ve muc do, dat ten la qdTime:


> qdTime <- as.factor(c(1,2,3,4))

> # Tao khung yeu to dat ten la qdFrame:


> qdFrame <- data.frame(qdTime)

11
> # Tao matrix so lieu khong co id, dat ten matrix la qdMatrix
> qdMatrix <- cbind(data_prp$qd1,data_prp$qd2,data_prp$qd3,data_prp$qd4)

> # Chay mo hinh lm, dat ten la qdModel


> qdModel <- lm(qdMatrix ~ 1)

> #Load package "car"


> library(car)

> # Phan tich repeated ANOVA băng lenh Anova cua package car, tao ra object
qdAnalysis:
> qdAnalysis <- Anova(qdModel,idata = qdFrame, idesign = ~qdTime)
Note: model has only an intercept; equivalent type-III tests substituted.

> summary(qdAnalysis,multivariate = FALSE)

Univariate Type III Repeated-Measures ANOVA Assuming Sphericity

Sử dụng hàng này để


SS num Df Error SS den Df F Pr(>F)
trình bày kết quả:
(Intercept) 177074 1 20182 49 429.92 < 2.2e-16 ***
Độ tự do (Df): 3 và 147
qdTime 42870 3 17942 147 117.08 < 2.2e-16 ***
--- F = 117.08

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 p = 2.2e-16

Mauchly Tests for Sphericity


Test Mauchly
cho kết quả p = 0.071487
Test statistic p-value
qdTime 0.80862 0.071487

Greenhouse-Geisser and Huynh-Feldt Corrections


for Departure from Sphericity

GG eps Pr(>F[GG])
qdTime 0.89753 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

HF eps Pr(>F[HF])
qdTime 0.9547084 3.877699e-37

Kết quả phân tích repeated ANOVA cho kết quả tương tự SPSS, trừ giá trị test
Mauchly có khác nhau do sử dụng phương pháp khác nhau.
Tính giá trị partial eta squared để xác định effect sizes sử dụng package “heplots”:

12
# Tinh gia tri partial eta squared su dung package heplots
> library(heplots)
> etasq(qdAnalysis,anova = TRUE,partial = TRUE)

Type III Repeated Measures MANOVA Tests: Pillai test statistic


eta^2 Df test stat approx F num Df den Df Pr(>F)
(Intercept) 0.89769 1 0.89769 429.92 1 49 < 2.2e-16 ***
qdTime 0.87343 1 0.87343 108.11 3 47 < 2.2e-16 *** Giá trị ηp2
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Giá trị ηp2 thu được là 0.87343, hơi lớn hơn so với phân tích bằng SPSS do phương
pháp khác nhau.
Như vậy, với package “car”, 3 yêu cầu báo cáo của repeated ANOVA đã được đáp
ứng: Mauchly test, bảng ANOVA và effect sizes (hệ số ηp2).
Để so sánh từng cặp, R đòi hỏi phải chuyển đổi bộ số liệu từ dạng “wide” (như hiện
tại) sang dạng “long”. Khái niệm “wide” và “long” được diễn tả theo bảng biểu với 3 bệnh
nhân đầu tiên như sau:

Dạng long

Dạng wide

Như vậy, với yêu cầu này, sau khi chuyển đổi sang dạng “long”, bộ số liệu trong ví dụ
trên sẽ chỉ còn 3 biến: id, time (biểu thị số lần đo ở tuần thứ mấy) và qd (giá trị của Quick
DASH tương ứng với tuần đó).
Sử dụng package reshape2 để thực hiện chuyển đổi từ “wide” sang “long” data.
Trước tiên hãy tạo bộ số liệu con dạng “wide” chỉ có 4 biến: id, qd1, qd2, qd3, qd4
bằng lệnh subset, đặt tên là qd_wide. Sau đó sẽ biến đổi qd_wide thành qd_long sử dụng lệnh
“melt” trong package reshape2. Lưu ý đổi tên các biến “var” và “value” mặc định khi sử
dụng lệnh “melt” sang tên “time” và “qd” sau khi chuyển đổi.

13
# Tao bo so lieu con ten la qd_wide tu bo so lieu goc: data_prp:
> qd_wide <- subset(data_prp, select = c(id,qd1,qd2,qd3,qd4))

> # Chuyen doi tu dang "wide" sang dang "long" cho bo so lieu qd_wide
> library(reshape2)
> qd_long <- melt(qd_wide, id.vars = c("id"))

> # Doi ten var va value trong bo so lieu qd_long sang ten time va qd
> names(qd_long)[2] <- "time"
> names(qd_long)[3] <- "qd"
> head(qd_long)
id time qd
1 1 qd1 61.36
2 2 qd1 54.54
3 3 qd1 45.45
4 4 qd1 61.36
5 5 qd1 31.81
6 6 qd1 13.63

Sau đó, thực hiện so sánh áp dụng phương pháp “Bonferroni” như sau:
with(qd_long,pairwise.t.test(qd,time,paired=TRUE,method="bonferroni"))

Pairwise comparisons using paired t tests

data: qd and time

qd1 qd2 qd3


qd2 1.2e-06 - -
qd3 1.8e-14 3.9e-07 -
qd4 < 2e-16 3.3e-15 5.5e-09

P value adjustment method: holm

Kết quả cho thấy tất cả các cặp đều khác nhau có ý nghĩa thống kê.

TÀI LIỆU THAM KHẢO CHỦ YẾU:


https://statistics.laerd.com/statistical-guides/repeated-measures-anova-statistical-
guide.php
https://www.r-bloggers.com/r-tutorial-series-one-way-repeated-measures-anova/

14

You might also like