Công thức tính trung bình | Measures of Central Tendency

Author

Duc Nguyen | tuhocr.com

Published

October 16, 2026

Tài liệu biên soạn trong chuyên đề R Statistics

1 Arithmetic Mean

Trung bình cộng (Arithmetic Mean) là cách tính trung bình phổ biến nhất bằng cách cộng tổng tất cả các giá trị và chia cho tổng số.

\[\text{Mean} = \frac{\text{Sum of all values}}{\text{Number of all values}}\]

Ký hiệu cho trung bình của mẫu:

\[\bar x = \frac{1}{n}\sum_{i=1}^n x_i\]

Ký hiệu cho trung bình của quần thể:

\[\mu = \frac{1}{N}\sum_{i=1}^N x_i\]

Với \(\sum_{i=1}^n x_i\) là tổng tất cả giá trị của \(x_i\), \(N\) là tổng số lượng thành viên trong quần thể, \(n\) là tổng số lượng thành viên trong mẫu.

Trong R, ta có nhiều cách để thực hiện tính trung bình như sau:

airquality
    Ozone Solar.R Wind Temp Month Day
1      41     190  7.4   67     5   1
2      36     118  8.0   72     5   2
3      12     149 12.6   74     5   3
4      18     313 11.5   62     5   4
5      NA      NA 14.3   56     5   5
6      28      NA 14.9   66     5   6
7      23     299  8.6   65     5   7
8      19      99 13.8   59     5   8
9       8      19 20.1   61     5   9
10     NA     194  8.6   69     5  10
11      7      NA  6.9   74     5  11
12     16     256  9.7   69     5  12
13     11     290  9.2   66     5  13
14     14     274 10.9   68     5  14
15     18      65 13.2   58     5  15
16     14     334 11.5   64     5  16
17     34     307 12.0   66     5  17
18      6      78 18.4   57     5  18
19     30     322 11.5   68     5  19
20     11      44  9.7   62     5  20
21      1       8  9.7   59     5  21
22     11     320 16.6   73     5  22
23      4      25  9.7   61     5  23
24     32      92 12.0   61     5  24
25     NA      66 16.6   57     5  25
26     NA     266 14.9   58     5  26
27     NA      NA  8.0   57     5  27
28     23      13 12.0   67     5  28
29     45     252 14.9   81     5  29
30    115     223  5.7   79     5  30
31     37     279  7.4   76     5  31
32     NA     286  8.6   78     6   1
33     NA     287  9.7   74     6   2
34     NA     242 16.1   67     6   3
35     NA     186  9.2   84     6   4
36     NA     220  8.6   85     6   5
37     NA     264 14.3   79     6   6
38     29     127  9.7   82     6   7
39     NA     273  6.9   87     6   8
40     71     291 13.8   90     6   9
41     39     323 11.5   87     6  10
42     NA     259 10.9   93     6  11
43     NA     250  9.2   92     6  12
44     23     148  8.0   82     6  13
45     NA     332 13.8   80     6  14
46     NA     322 11.5   79     6  15
47     21     191 14.9   77     6  16
48     37     284 20.7   72     6  17
49     20      37  9.2   65     6  18
50     12     120 11.5   73     6  19
51     13     137 10.3   76     6  20
52     NA     150  6.3   77     6  21
53     NA      59  1.7   76     6  22
54     NA      91  4.6   76     6  23
55     NA     250  6.3   76     6  24
56     NA     135  8.0   75     6  25
57     NA     127  8.0   78     6  26
58     NA      47 10.3   73     6  27
59     NA      98 11.5   80     6  28
60     NA      31 14.9   77     6  29
61     NA     138  8.0   83     6  30
62    135     269  4.1   84     7   1
63     49     248  9.2   85     7   2
64     32     236  9.2   81     7   3
65     NA     101 10.9   84     7   4
66     64     175  4.6   83     7   5
67     40     314 10.9   83     7   6
68     77     276  5.1   88     7   7
69     97     267  6.3   92     7   8
70     97     272  5.7   92     7   9
71     85     175  7.4   89     7  10
72     NA     139  8.6   82     7  11
73     10     264 14.3   73     7  12
74     27     175 14.9   81     7  13
75     NA     291 14.9   91     7  14
76      7      48 14.3   80     7  15
77     48     260  6.9   81     7  16
78     35     274 10.3   82     7  17
79     61     285  6.3   84     7  18
80     79     187  5.1   87     7  19
81     63     220 11.5   85     7  20
82     16       7  6.9   74     7  21
83     NA     258  9.7   81     7  22
84     NA     295 11.5   82     7  23
85     80     294  8.6   86     7  24
86    108     223  8.0   85     7  25
87     20      81  8.6   82     7  26
88     52      82 12.0   86     7  27
89     82     213  7.4   88     7  28
90     50     275  7.4   86     7  29
91     64     253  7.4   83     7  30
92     59     254  9.2   81     7  31
93     39      83  6.9   81     8   1
94      9      24 13.8   81     8   2
95     16      77  7.4   82     8   3
96     78      NA  6.9   86     8   4
97     35      NA  7.4   85     8   5
98     66      NA  4.6   87     8   6
99    122     255  4.0   89     8   7
100    89     229 10.3   90     8   8
101   110     207  8.0   90     8   9
102    NA     222  8.6   92     8  10
103    NA     137 11.5   86     8  11
104    44     192 11.5   86     8  12
105    28     273 11.5   82     8  13
106    65     157  9.7   80     8  14
107    NA      64 11.5   79     8  15
108    22      71 10.3   77     8  16
109    59      51  6.3   79     8  17
110    23     115  7.4   76     8  18
111    31     244 10.9   78     8  19
112    44     190 10.3   78     8  20
113    21     259 15.5   77     8  21
114     9      36 14.3   72     8  22
115    NA     255 12.6   75     8  23
116    45     212  9.7   79     8  24
117   168     238  3.4   81     8  25
118    73     215  8.0   86     8  26
119    NA     153  5.7   88     8  27
120    76     203  9.7   97     8  28
121   118     225  2.3   94     8  29
122    84     237  6.3   96     8  30
123    85     188  6.3   94     8  31
124    96     167  6.9   91     9   1
125    78     197  5.1   92     9   2
126    73     183  2.8   93     9   3
127    91     189  4.6   93     9   4
128    47      95  7.4   87     9   5
129    32      92 15.5   84     9   6
130    20     252 10.9   80     9   7
131    23     220 10.3   78     9   8
132    21     230 10.9   75     9   9
133    24     259  9.7   73     9  10
134    44     236 14.9   81     9  11
135    21     259 15.5   76     9  12
136    28     238  6.3   77     9  13
137     9      24 10.9   71     9  14
138    13     112 11.5   71     9  15
139    46     237  6.9   78     9  16
140    18     224 13.8   67     9  17
141    13      27 10.3   76     9  18
142    24     238 10.3   68     9  19
143    16     201  8.0   82     9  20
144    13     238 12.6   64     9  21
145    23      14  9.2   71     9  22
146    36     139 10.3   81     9  23
147     7      49 10.3   69     9  24
148    14      20 16.6   63     9  25
149    30     193  6.9   70     9  26
150    NA     145 13.2   77     9  27
151    14     191 14.3   75     9  28
152    18     131  8.0   76     9  29
153    20     223 11.5   68     9  30
# nếu có giá trị NA trong cột Ozone thì sẽ không tính được mean
mean(airquality$Ozone)
[1] NA
mean(airquality$Ozone, na.rm = TRUE)
[1] 42.12931
aggregate(Ozone ~ Month,
          data = airquality,
          FUN = mean,
          na.rm = TRUE)
  Month    Ozone
1     5 23.61538
2     6 29.44444
3     7 59.11538
4     8 59.96154
5     9 31.44828
library(dplyr)

airquality |> dplyr:::group_by(Month) |>
    dplyr:::summarise(Ozone_mean = mean(Ozone, na.rm = T),
                      Ozone_observation = length(which(!is.na(Ozone))),
                      Ozone_missing_value = length(which(is.na(Ozone))),
                      Total_observation = n()
                    ) |> as.data.frame() -> kq

kq
  Month Ozone_mean Ozone_observation Ozone_missing_value Total_observation
1     5   23.61538                26                   5                31
2     6   29.44444                 9                  21                30
3     7   59.11538                26                   5                31
4     8   59.96154                26                   5                31
5     9   31.44828                29                   1                30

Trong tình huống dữ liệu bị missing value và số lượng quan sát ở mỗi nhóm không đều nhau, ta có thể tính trung bình theo trọng số sẽ cho kết quả chính xác hơn là trung bình cộng.

mean(kq$Ozone_mean)
[1] 40.71701
weighted.mean(x = kq$Ozone_mean,
              w = kq$Ozone_observation)
[1] 42.12931

Kết quả tính trung bình có trọng số này, cũng bằng với kết quả trung bình của toàn bộ vector Ozone sau khi loại bỏ đi missing value.

mean(airquality$Ozone, na.rm = T)
[1] 42.12931

Tùy cách ta định nghĩa trọng số mà kết quả tính trung bình sẽ khác một chút. Nếu ta tạo thêm cột “tỷ lệ quan sát mẫu tính theo mỗi tháng” và lấy cột đó làm sampling weight thì kết quả trung bình Ozone trong suốt thời gian theo dõi là:

kq$ty_le_quan_sat <- kq$Ozone_observation / kq$Total_observation

kq
  Month Ozone_mean Ozone_observation Ozone_missing_value Total_observation ty_le_quan_sat
1     5   23.61538                26                   5                31      0.8387097
2     6   29.44444                 9                  21                30      0.3000000
3     7   59.11538                26                   5                31      0.8387097
4     8   59.96154                26                   5                31      0.8387097
5     9   31.44828                29                   1                30      0.9666667
weighted.mean(x = kq$Ozone_mean,
              w = kq$ty_le_quan_sat)
[1] 42.00881

Một cách tiếp cận khác, ta có thể imputation giá trị missing value bằng trung bình có trọng số này, rồi tính lại lần nữa giá trị trung bình. Cách gán giá trị này cũng đơn giản, bạn chỉ cần subset theo giá trị NA trong vector rồi gán kết quả vào. Lưu ý là trung bình cộng lúc sau cũng chính là trung bình lúc đầu của vector đó khi loại đi giá trị missing value.

Ví dụ:

x <- c(3, NA, 2, 3, NA, 5, 6, 7, 12)
x
[1]  3 NA  2  3 NA  5  6  7 12
mean(x, na.rm = T)
[1] 5.428571
# imputation bằng giá trị mean của x

x[is.na(x)] <- mean(x, na.rm = T)
x
[1]  3.000000  5.428571  2.000000  3.000000  5.428571  5.000000  6.000000  7.000000 12.000000
mean(x)
[1] 5.428571

2 Weighted Mean

Trung bình có trọng số (Weighted Mean) để tính cho các tình huống mà trong dãy số liệu có những con số quan trọng hơn những con số khác. Về bản chất trung bình cộng (Arithmetic Mean) là trường hợp đặc biệt của trung bình có trọng số khi gán trọng số bằng 1 cho tất cả các con số (xem các giá trị có mức độ quan trọng ngang nhau).

\[\bar x_w = \frac{\sum_{i=1}^n w_ix_i }{\sum_{i=1}^n w_i}\]

Theo công thức này thì trung bình có trọng số được tính theo kiểu trung bình cộng (sau khi hiệu chỉnh theo trọng số) nên còn gọi là Weighted Arithmetic Mean (trung bình cộng theo trọng số), để phân biệt với các kiểu tính trung bình khác.

Ví dụ khảo sát chiều cao của 1000 bạn sinh viên, ta thu mẫu được 700 bạn nam, tính trung bình là 170 cm cho nhóm nam, và 300 bạn nữ, trung bình chiều cao là 160 cm cho nhóm nữ. Vậy chiều cao trung bình của sinh viên là bao nhiêu?

Trung bình cộng trong trường hợp này không chính xác vì số liệu bị lệch theo giới tính.

so_luong_nam <- 700
so_luong_nu <- 300

mean_nam <- 170
mean_nu <- 160

(170 + 160)/2
[1] 165
mean(c(170, 160))
[1] 165

Trung bình có trọng số hiệu chỉnh lại giá trị chiều cao với thông tin từ “số lượng cỡ mẫu” theo nhóm thu thập được.

((700*170) + (300*160)) / (700+300)
[1] 167
weighted.mean(x = c(170, 160),
              w = c(700, 300))
[1] 167

Điều này có nghĩa là:

Vì nhóm nam chiếm tỷ lệ 70% (700 nam/1000 sinh viên) nên trung bình chiều cao của sinh viên (nam và nữ) là 167 cm, thì nhóm nam đóng góp 119 cm (0.7 × 170 = 119 cm) và nhóm nữ đóng góp phần còn lại là 48 cm (0.3 × 160 = 48 cm).

3 Geometric Mean

Geometric Mean (trung bình nhân hay trung bình hình học) là một loại trung bình được tính bằng cách lấy tích của các số rồi khai căn bậc n, với n là số lượng các số đó.

\[\bar x_{geo} = \sqrt[n]{x_1 \cdot x_2 \cdots x_n} =\bigg(\prod_{i=1}^n x_i \bigg)^{1/n} = \sqrt[n]{\prod_{i=1}^n x_i}\]

When studying phenomena such as inflation or population changes, which involve periodic increases or decreases (known as rates of change), the geometric mean is more appropriate to find the average change over the entire period under investigation.

Trung bình nhân đặc biệt hữu ích khi tính tốc độ tăng trưởng qua nhiều giai đoạn, tỷ suất sinh lời trung bình hoặc các đại lượng thay đổi theo tỷ lệ nhân.

Ví dụ: Ta có tốc độ tăng trưởng trung bình hàng năm của 1 đàn ong, theo dõi trong 5 năm. Tốc độ tăng trưởng này thay đổi theo từng năm như sau: năm thứ 1 thì đàn ong tăng trưởng 14% số lượng, năm thứ 2 là 26%, năm thứ 3 là 16% (giảm tốc độ tăng trưởng), năm thứ 4 là -38% (tăng trưởng âm, giảm rất mạnh), năm thứ 5 là (-6%, có tích hiệu “tích cực” vì đã giảm bớt tăng trưởng âm, nhưng vẫn chưa gọi là tăng trưởng dương được). Ta biết đàn ong có 5000 ngàn con ở thời điểm khởi đầu (năm 1), hãy tính tốc độ tăng trưởng trung bình của quần thể ong, và số lượng con ong ở năm thứ 5.

We consider the annual growth rates of a swarm of honey bees over a 5-year period. These rates of change are: 14 %, 26 %, 16 %, -38 %, -6 %. Further, we know that at the beginning of the monitoring period there were 5,000 bees in the swarm. We are looking for the mean rate of population change.

Như vậy, tốc độ tăng trưởng hàng năm (annual growth rate) này bản chất là số lượng đàn ong năm sau trừ đi số lượng đàn ong năm trước tính theo tỷ lệ phần trăm.

bees <- c(14, 26, 16, -38, -6) # rate of change per year
bees
[1]  14  26  16 -38  -6

Nếu ta tính theo kiểu trung bình cộng cho “tốc độ tăng trưởng hàng năm” thì sẽ có kết quả là 2.4%. Kết quả này cho thấy đàn ong vẫn tăng trưởng (dù trải qua nhiều đợt suy thoái), với kết quả tăng trưởng trung bình mỗi năm là 2,4%. Tuy nhiên cách tính không phản ánh đúng thực tế.

mean(bees)
[1] 2.4

Đầu tiên, ta cần tính tỷ lệ tăng trưởng/suy thoái so với năm trước liền kề, bằng cách cộng thêm 1 (đại diện cho “số lượng của năm trước” cộng/trừ đi tỷ lệ tăng trưởng).

bees_growth_rel <- 1 + (bees/100) # annual rates of growth/decline (percentage)
bees_growth_rel
[1] 1.14 1.26 1.16 0.62 0.94

Tính trung bình nhân trong R

bees_len <- length(bees) # number of observations
bees_growth_geom <- (bees_growth_rel[1] *
  bees_growth_rel[2] *
  bees_growth_rel[3] *
  bees_growth_rel[4] *
  bees_growth_rel[5])^(1 / bees_len)

# rounded result
bees_growth_geom
[1] 0.994147

Dùng package

library(psych)
psych:::geometric.mean(bees_growth_rel)
[1] 0.994147

The geometric mean indicates that there is a decline in the number of species over time at an average rate of 0.994, which corresponds to -0.006 %

Ta có đàn ong này có tỷ lệ trung bình phát triển là 0.994, nghĩa là có 1 xu hướng giảm theo thời gian, với tỷ lệ giảm trung bình là 6%. Do đó dự đoán lượng đàn ong còn lại sau 5 năm là:

#Year 1
year1 <- round(5000 * 0.994147, digits = 0)
year1
[1] 4971
#Year 2
year2 <- round(year1 * 0.994147, digits = 0)
year2
[1] 4942
#Year 3
year3 <- round(year2 * 0.994147, digits = 0)
year3
[1] 4913
#Year 4
year4 <- round(year3 * 0.994147, digits = 0)
year4
[1] 4884
#Year 5
year5 <- round(year4 * 0.994147, digits = 0)
year5
[1] 4855

Con số này y chang với giá trị biến động thực nếu tính theo cách thủ công từ con số tăng trưởng hàng năm.

round(5000 *
  bees_growth_rel[1] *
  bees_growth_rel[2] *
  bees_growth_rel[3] *
  bees_growth_rel[4] *
  bees_growth_rel[5])
[1] 4855

Kiểm chứng trong Excel để trực quan hóa công thức. download

4 Weighted Geometric Mean

\[\bar x_{geo_w} = \bigg(\prod_{i=1}^n x_i^{w_i} \bigg)^{1/ \sum_{i=1}^n w_i}\]

5 Harmonic Mean

Harmonic Mean (trung bình điều hòa/hài hòa) là một loại trung bình được dùng để tính giá trị trung bình của các đại lượng dạng tỷ lệ, đặc biệt khi tính trung bình tốc độ, năng suất hoặc giá trên mỗi đơn vị, mật độ người trên diện tích.

The harmonic mean is best used when we want to average inverse metrics, such as speed (km/h) or population density (pop/km2).

\[\bar x_h = \frac{n}{\frac{1}{x_1} + \frac{1}{x_2} + \cdots + \frac{1}{x_n}} = \frac{n}{\sum_{i=1}^n \frac{1}{x_i}}, \qquad x_i > 0 \text{ for all } i.\]

Ví dụ: Ta có khoảng cách từ nhà đến cơ quan là 50 km, bạn lái xe lượt đi là 40 km/h, lượt về là 30 km/h (có thể lúc về bạn thong thả đi từ từ chẳng hạn)

Tính thủ công bằng R

luot_di <- 40
luot_ve <- 30

mau_so <- 1/luot_di + 1/luot_ve

2 / mau_so
[1] 34.28571

Tính bằng package

library(psych)

psych:::harmonic.mean(c(luot_di, luot_ve))
[1] 34.28571

Con số này sẽ chính xác hơn là giá trị trung bình.

(40+30)/2
[1] 35

Kiểm chứng trong Excel để trực quan hóa công thức. download

6 Weighted Harmonic Mean

\[\bar x_{h_w} = \frac{w_1+w_2+\cdots +w_n}{\frac{w_1}{x_1} + \frac{w2}{x_2} + \cdots + \frac{w_n}{x_n}} = \frac{\sum_{i=1}^n w_i}{\sum_{i=1}^n \frac{w_i}{x_i}}, \qquad x_i > 0 \text{ for all } i.\]

7 Hölder’s mean

\[\bar x_{q} = \left(\frac{1}{n} \sum_{i=1}^n x_i^q \right)^\frac{1}{q}\]

8 Minh họa bằng đồ thị

source

9 Tài liệu tham khảo

  1. Different types of Mean

  2. Cách tính trung bình theo trọng số - Chapter 2.4 Sampling Weight trong lấy mẫu hoàn toàn ngẫu nhiên SRS | Solution