Giới thiệu

Mỗi một đại học có thể sử dụng N phương thức (PT) tuyển sinh với K thang điểm khác nhau, trong đó K <= N. Tức là không loại trừ khả năng có ít nhất 2 phương thức có cùng một thang điểm.

Với Đại Học Ngoại Thương thì phương thức (PT) tuyển sinh cho năm 2025 mà trường đã công bố tại https://ftu.edu.vn/tuyensinh, cụ thể như sau:

  • Sử dụng kết quả học tập THPT (PT1).
  • Sử dụng kết quả thi tốt nghiệp (PT2).
  • Sử dụng kết quả của các kì thi đánh giá năng lực trong nước hoặc quốc tế (PT3).
  • Tuyển thẳng theo quy chế (PT4).

Như vậy PT1 và PT2 đều có thang điểm là [0, 30]. Đối với PT3, nếu sử dụng điểm của kì thi HSA thì thang điểm sẽ là [0, 150]. Theo quy định mới nhất của bộ GD thì từ năm 2025, các đại học phải quy đổi điểm của các PT khác nhau về một thang duy nhất.

Công thức chuẩn hóa

Trong số N phương thức tuyển sinh, chọn một phương thức bất kì làm phương thức gốc (PTG). Sau đó chuẩn hóa điểm thi của N - 1 phương thức còn lại theo thang điểm của phương thức gốc theo công thức sau:

\[S_{\text{new}} = \frac{S - ThresholdS}{m - ThresholdS} \times (n - ThresholdPTG) + a\]

Trong đó:

  • S (kí hiệu của Score) là điểm thi nguyên gốc của phương thức cần chuẩn hóa.

  • m là điểm cực đại của điểm thi theo phương thức cần chuẩn hóa, n là điểm cực đại của điểm thi theo phương thức gốc.

  • \(ThresholdS\) là điểm sàn tính theo thang đo nguyên bản của phương thức cần chuẩn hóa, \(ThresholdPTG\) là điểm sàn tính theo thang đo của PTG. Và hai mức điểm sàn này sẽ được trường công bố sau khi nhận được hồ sơ dự tuyển của tất cả ứng viên.

Ví dụ áp dụng

Giả sử FTU chọn kết quả thi tốt nghiệp (PT2) làm PTG. Lúc này n = 30. Còn kết quả của các kì thi đánh giá năng lực trong nước là kì thi TSA. Lúc này m = 150 (là điểm tối đa của kì thi này).

Giả sử chỉ tiêu của FTU cho hai phương thức này là 151 và 101.

Hết hạn đăng kí xét tuyển, FTU nhận được 501 hồ sơ đăng kí theo PT2 và 371 hồ sơ đăng kí theo PT3 như sau:

rm(list = ls())

# Số lượng hồ sơ đăng kí theo từng phương thức: 
soluongPT2 <- 501

soluongPT3 <- 371

# Mô phỏng dữ liệu: 

library(dplyr)

set.seed(29)

scorePT2 <- data.frame(diemTN = runif(soluongPT2, min = 0, max = 30) %>% round(1),
                       ID = paste0("PT2.", 1:soluongPT2))

scorePT3 <- data.frame(diemTSA = runif(soluongPT3, min = 0, max = 150) %>% round(0),
                       ID = paste0("PT3.", 1:soluongPT3))

Xác định điểm sàn của từng PT như sau:

# Chỉ tiêu tuyển sinh của từng phương thức: 
chitieuPT2 <- 151

chitieuPT3 <- 101

# Xác định điểm sàn cho PT2 (cũng chính là PTG): 


scorePT2 %>% 
  arrange(-diemTN) %>% 
  slice(1:chitieuPT2) %>% 
  pull(diemTN) %>% 
  min() -> diemsanPTG


# Xác định điểm sàn cho PT3 dựa trên điểm nguyên bản theo thang đo 0-150: 


scorePT3 %>% 
  arrange(-diemTSA) %>% 
  slice(1:chitieuPT3) %>% 
  pull(diemTSA) %>% 
  min() -> diemsanTSA 

Căn cứ vào dữ liệu đăng kí của các thí sinh chúng ta xác định được cụ thể \(ThresholdS = 112\)\(ThresholdPTG = 20.5\). Đến thời điểm này (thức là thời điểm sau khi nhận được đầy đủ dữ liệu đăng kí xét tuyển) ta có công thức chuẩn hóa điểm cho PT3 có thang đo 0-150 về thang đo 0-30 của PTG theo công thức sau:

\[S_{\text{new}} = \frac{S - 112}{150 - 112} \times (30 - 20.5) + 20.5\]

Tiêu chuẩn đánh giá

Chúng ta cần chỉ ra rằng danh sách các thí sinh trúng tuyển khi sử dụng thang đo nguyên gốc 0-150 của điểm thi TSA (gọi là tập A) phải trùng lặp với danh sách các thí sinh trúng tuyển (gọi là tập B) khi sử dụng điểm chuẩn hóa theo công thức chuẩn hóa đề xuất ở trên.

Thực vậy, Table 1 là danh sách các thí sinh trúng tuyển theo PT3 nếu sử dụng điểm nguyên gốc của kì thi TSA (tập A):

library(kableExtra) 

scorePT3 %>% 
  filter(diemTSA >= diemsanTSA) %>% 
  arrange(-diemTSA) %>% 
  mutate(STT = 1:nrow(.)) %>% 
  kbl(caption = "Table 1: Danh sách các thí sinh trúng tuyển của PT3 khi sử dụng điểm thi TSA (tập A)") %>%
  kable_classic(full_width = FALSE, html_font = "Cambria")
Table 1: Danh sách các thí sinh trúng tuyển của PT3 khi sử dụng điểm thi TSA (tập A)
diemTSA ID STT
149 PT3.236 1
149 PT3.351 2
148 PT3.29 3
148 PT3.230 4
148 PT3.286 5
148 PT3.365 6
147 PT3.15 7
146 PT3.26 8
146 PT3.62 9
146 PT3.109 10
146 PT3.164 11
145 PT3.36 12
144 PT3.352 13
143 PT3.105 14
143 PT3.219 15
143 PT3.267 16
143 PT3.270 17
143 PT3.371 18
142 PT3.80 19
142 PT3.202 20
142 PT3.207 21
141 PT3.82 22
141 PT3.224 23
141 PT3.290 24
141 PT3.300 25
141 PT3.315 26
141 PT3.344 27
140 PT3.261 28
139 PT3.8 29
139 PT3.11 30
139 PT3.211 31
138 PT3.67 32
138 PT3.144 33
138 PT3.370 34
137 PT3.22 35
137 PT3.56 36
137 PT3.125 37
137 PT3.155 38
137 PT3.191 39
137 PT3.249 40
137 PT3.325 41
136 PT3.87 42
136 PT3.108 43
136 PT3.313 44
135 PT3.79 45
135 PT3.197 46
135 PT3.231 47
134 PT3.40 48
134 PT3.154 49
134 PT3.326 50
134 PT3.335 51
134 PT3.362 52
133 PT3.107 53
131 PT3.353 54
130 PT3.9 55
130 PT3.35 56
130 PT3.206 57
130 PT3.297 58
129 PT3.42 59
129 PT3.143 60
129 PT3.179 61
128 PT3.311 62
127 PT3.359 63
126 PT3.52 64
126 PT3.295 65
126 PT3.337 66
126 PT3.364 67
125 PT3.64 68
125 PT3.66 69
124 PT3.113 70
124 PT3.114 71
124 PT3.234 72
124 PT3.238 73
124 PT3.244 74
124 PT3.336 75
123 PT3.245 76
122 PT3.252 77
122 PT3.296 78
121 PT3.13 79
121 PT3.246 80
121 PT3.253 81
120 PT3.119 82
120 PT3.199 83
120 PT3.320 84
120 PT3.355 85
119 PT3.232 86
119 PT3.235 87
118 PT3.289 88
117 PT3.322 89
117 PT3.347 90
116 PT3.63 91
116 PT3.225 92
116 PT3.279 93
115 PT3.1 94
115 PT3.18 95
115 PT3.367 96
113 PT3.58 97
113 PT3.76 98
113 PT3.128 99
113 PT3.133 100
112 PT3.34 101
112 PT3.139 102
112 PT3.174 103
112 PT3.323 104

Do có một số thí sinh có điểm thi trùng nhau nên số lượng trúng tuyển thực tế nhiều hơn chỉ tiêu của PT3 3 người.

Còn Table 2 dưới đây là điểm chuẩn hóa cũng như danh sách các thí sinh trúng tuyển theo điểm chuẩn hóa (tập B):

#=========================================================
#  Thực ra việc này là không cần thiết
#  vì hàm chuẩn hóa của chúng ta là đơn ánh
#  https://vi.wikipedia.org/wiki/%C4%90%C6%A1n_%C3%A1nh
#=========================================================  

# Hàm chuẩn hóa: 

chuanhoa30 <- function(x) {
  
  y <- ((x - diemsanTSA) / (150 - diemsanTSA)) * (30 - diemsanPTG) + diemsanPTG
  
  return(y)
}




# Sử dụng hàm trên chuẩn hóa điểm thi cho tất cả 371 thí sinh đăng kí xét tuyển theo PT3: 

scorePT3 %>% 
  mutate(diemThang30 = chuanhoa30(diemTSA)) -> scorePT3

# Danh sách trúng tuyển theo thang điểm chuẩn hóa: 

scorePT3 %>% 
  arrange(-diemThang30) %>% 
  slice(1:chitieuPT3) %>% 
  pull(diemThang30) %>% 
  min() -> diemsanTSA_theothangdo_moi

scorePT3 %>% 
  filter(diemThang30 >= diemsanTSA_theothangdo_moi) %>% 
  arrange(-diemThang30) %>% 
  mutate(STT = 1:nrow(.)) %>% 
  kbl(caption = "Table 2: Danh sách các thí sinh trúng tuyển của PT3 khi sử dụng điểm chuẩn hóa theo PTG (tập B)") %>%
  kable_classic(full_width = FALSE, html_font = "Cambria")
Table 2: Danh sách các thí sinh trúng tuyển của PT3 khi sử dụng điểm chuẩn hóa theo PTG (tập B)
diemTSA ID diemThang30 STT
149 PT3.236 29.75 1
149 PT3.351 29.75 2
148 PT3.29 29.50 3
148 PT3.230 29.50 4
148 PT3.286 29.50 5
148 PT3.365 29.50 6
147 PT3.15 29.25 7
146 PT3.26 29.00 8
146 PT3.62 29.00 9
146 PT3.109 29.00 10
146 PT3.164 29.00 11
145 PT3.36 28.75 12
144 PT3.352 28.50 13
143 PT3.105 28.25 14
143 PT3.219 28.25 15
143 PT3.267 28.25 16
143 PT3.270 28.25 17
143 PT3.371 28.25 18
142 PT3.80 28.00 19
142 PT3.202 28.00 20
142 PT3.207 28.00 21
141 PT3.82 27.75 22
141 PT3.224 27.75 23
141 PT3.290 27.75 24
141 PT3.300 27.75 25
141 PT3.315 27.75 26
141 PT3.344 27.75 27
140 PT3.261 27.50 28
139 PT3.8 27.25 29
139 PT3.11 27.25 30
139 PT3.211 27.25 31
138 PT3.67 27.00 32
138 PT3.144 27.00 33
138 PT3.370 27.00 34
137 PT3.22 26.75 35
137 PT3.56 26.75 36
137 PT3.125 26.75 37
137 PT3.155 26.75 38
137 PT3.191 26.75 39
137 PT3.249 26.75 40
137 PT3.325 26.75 41
136 PT3.87 26.50 42
136 PT3.108 26.50 43
136 PT3.313 26.50 44
135 PT3.79 26.25 45
135 PT3.197 26.25 46
135 PT3.231 26.25 47
134 PT3.40 26.00 48
134 PT3.154 26.00 49
134 PT3.326 26.00 50
134 PT3.335 26.00 51
134 PT3.362 26.00 52
133 PT3.107 25.75 53
131 PT3.353 25.25 54
130 PT3.9 25.00 55
130 PT3.35 25.00 56
130 PT3.206 25.00 57
130 PT3.297 25.00 58
129 PT3.42 24.75 59
129 PT3.143 24.75 60
129 PT3.179 24.75 61
128 PT3.311 24.50 62
127 PT3.359 24.25 63
126 PT3.52 24.00 64
126 PT3.295 24.00 65
126 PT3.337 24.00 66
126 PT3.364 24.00 67
125 PT3.64 23.75 68
125 PT3.66 23.75 69
124 PT3.113 23.50 70
124 PT3.114 23.50 71
124 PT3.234 23.50 72
124 PT3.238 23.50 73
124 PT3.244 23.50 74
124 PT3.336 23.50 75
123 PT3.245 23.25 76
122 PT3.252 23.00 77
122 PT3.296 23.00 78
121 PT3.13 22.75 79
121 PT3.246 22.75 80
121 PT3.253 22.75 81
120 PT3.119 22.50 82
120 PT3.199 22.50 83
120 PT3.320 22.50 84
120 PT3.355 22.50 85
119 PT3.232 22.25 86
119 PT3.235 22.25 87
118 PT3.289 22.00 88
117 PT3.322 21.75 89
117 PT3.347 21.75 90
116 PT3.63 21.50 91
116 PT3.225 21.50 92
116 PT3.279 21.50 93
115 PT3.1 21.25 94
115 PT3.18 21.25 95
115 PT3.367 21.25 96
113 PT3.58 20.75 97
113 PT3.76 20.75 98
113 PT3.128 20.75 99
113 PT3.133 20.75 100
112 PT3.34 20.50 101
112 PT3.139 20.50 102
112 PT3.174 20.50 103
112 PT3.323 20.50 104

Kết luận

  1. Công thức chuẩn hóa điểm theo phương pháp đề xuất ở trên có thể áp dụng cho tất cả các phương thức tuyển sinh còn lại. Và việc phân chia thành các khoảng/hạng như đề xuất dưới đây là thừa thãi, dài dòng và do vậy là không cần thiết:

  1. Phương án chuẩn hóa điểm đơn giản nhất là phương án chỉ cần biết thông tin về thang điểm (cận trên - cận dưới) của từng phương thức theo công thức dưới đây theo gợi ý của chuyên gia ChatGPT:

\[S_{\text{new}} = \frac{S - 0}{150 - 0} \times (30 - 0) + 0\]

Thực vậy, chỉ cần chỉ ra rằng danh sách các thí sinh trúng tuyển dựa trên điểm chuẩn hóa thu được từ công thức này (tập C) là trùng khớp với tập A. Table 3 dưới đây là danh sách trúng tuyển của những thí sinh đăng kí PT3 dựa trên điểm chuẩn hóa từ công thức trên:

# Hàm chuẩn hóa gợi ý bởi ChatGPT: 

chuanhoa30_byChatGPT <- function(x) {
  
  y <- ((x - 0) / (150 - 0)) * (30 - 0) + 0
  
  return(y)
}



# Sử dụng hàm trên chuẩn hóa điểm thi cho tất cả 371 thí sinh đăng kí xét tuyển theo PT3: 

scorePT3 %>% 
  mutate(diem30ByChatGPT = chuanhoa30_byChatGPT(diemTSA)) -> scorePT3

# Danh sách trúng tuyển theo thang điểm chuẩn hóa: 

scorePT3 %>% 
  arrange(-diem30ByChatGPT) %>% 
  slice(1:chitieuPT3) %>% 
  pull(diem30ByChatGPT) %>% 
  min() -> diemsanTSA_theothangdo_ChatGPT

scorePT3 %>% 
  filter(diem30ByChatGPT >= diemsanTSA_theothangdo_ChatGPT) %>% 
  arrange(-diem30ByChatGPT) %>% 
  mutate(diem30ByChatGPT = round(diem30ByChatGPT, 2)) %>% 
  mutate(STT = 1:nrow(.)) %>% 
  kbl(caption = "Table 3: Danh sách các thí sinh trúng tuyển của PT3 khi sử dụng điểm chuẩn hóa theo PTG (tập C)") %>%
  kable_classic(full_width = FALSE, html_font = "Cambria")
Table 3: Danh sách các thí sinh trúng tuyển của PT3 khi sử dụng điểm chuẩn hóa theo PTG (tập C)
diemTSA ID diemThang30 diem30ByChatGPT STT
149 PT3.236 29.75 29.8 1
149 PT3.351 29.75 29.8 2
148 PT3.29 29.50 29.6 3
148 PT3.230 29.50 29.6 4
148 PT3.286 29.50 29.6 5
148 PT3.365 29.50 29.6 6
147 PT3.15 29.25 29.4 7
146 PT3.26 29.00 29.2 8
146 PT3.62 29.00 29.2 9
146 PT3.109 29.00 29.2 10
146 PT3.164 29.00 29.2 11
145 PT3.36 28.75 29.0 12
144 PT3.352 28.50 28.8 13
143 PT3.105 28.25 28.6 14
143 PT3.219 28.25 28.6 15
143 PT3.267 28.25 28.6 16
143 PT3.270 28.25 28.6 17
143 PT3.371 28.25 28.6 18
142 PT3.80 28.00 28.4 19
142 PT3.202 28.00 28.4 20
142 PT3.207 28.00 28.4 21
141 PT3.82 27.75 28.2 22
141 PT3.224 27.75 28.2 23
141 PT3.290 27.75 28.2 24
141 PT3.300 27.75 28.2 25
141 PT3.315 27.75 28.2 26
141 PT3.344 27.75 28.2 27
140 PT3.261 27.50 28.0 28
139 PT3.8 27.25 27.8 29
139 PT3.11 27.25 27.8 30
139 PT3.211 27.25 27.8 31
138 PT3.67 27.00 27.6 32
138 PT3.144 27.00 27.6 33
138 PT3.370 27.00 27.6 34
137 PT3.22 26.75 27.4 35
137 PT3.56 26.75 27.4 36
137 PT3.125 26.75 27.4 37
137 PT3.155 26.75 27.4 38
137 PT3.191 26.75 27.4 39
137 PT3.249 26.75 27.4 40
137 PT3.325 26.75 27.4 41
136 PT3.87 26.50 27.2 42
136 PT3.108 26.50 27.2 43
136 PT3.313 26.50 27.2 44
135 PT3.79 26.25 27.0 45
135 PT3.197 26.25 27.0 46
135 PT3.231 26.25 27.0 47
134 PT3.40 26.00 26.8 48
134 PT3.154 26.00 26.8 49
134 PT3.326 26.00 26.8 50
134 PT3.335 26.00 26.8 51
134 PT3.362 26.00 26.8 52
133 PT3.107 25.75 26.6 53
131 PT3.353 25.25 26.2 54
130 PT3.9 25.00 26.0 55
130 PT3.35 25.00 26.0 56
130 PT3.206 25.00 26.0 57
130 PT3.297 25.00 26.0 58
129 PT3.42 24.75 25.8 59
129 PT3.143 24.75 25.8 60
129 PT3.179 24.75 25.8 61
128 PT3.311 24.50 25.6 62
127 PT3.359 24.25 25.4 63
126 PT3.52 24.00 25.2 64
126 PT3.295 24.00 25.2 65
126 PT3.337 24.00 25.2 66
126 PT3.364 24.00 25.2 67
125 PT3.64 23.75 25.0 68
125 PT3.66 23.75 25.0 69
124 PT3.113 23.50 24.8 70
124 PT3.114 23.50 24.8 71
124 PT3.234 23.50 24.8 72
124 PT3.238 23.50 24.8 73
124 PT3.244 23.50 24.8 74
124 PT3.336 23.50 24.8 75
123 PT3.245 23.25 24.6 76
122 PT3.252 23.00 24.4 77
122 PT3.296 23.00 24.4 78
121 PT3.13 22.75 24.2 79
121 PT3.246 22.75 24.2 80
121 PT3.253 22.75 24.2 81
120 PT3.119 22.50 24.0 82
120 PT3.199 22.50 24.0 83
120 PT3.320 22.50 24.0 84
120 PT3.355 22.50 24.0 85
119 PT3.232 22.25 23.8 86
119 PT3.235 22.25 23.8 87
118 PT3.289 22.00 23.6 88
117 PT3.322 21.75 23.4 89
117 PT3.347 21.75 23.4 90
116 PT3.63 21.50 23.2 91
116 PT3.225 21.50 23.2 92
116 PT3.279 21.50 23.2 93
115 PT3.1 21.25 23.0 94
115 PT3.18 21.25 23.0 95
115 PT3.367 21.25 23.0 96
113 PT3.58 20.75 22.6 97
113 PT3.76 20.75 22.6 98
113 PT3.128 20.75 22.6 99
113 PT3.133 20.75 22.6 100
112 PT3.34 20.50 22.4 101
112 PT3.139 20.50 22.4 102
112 PT3.174 20.50 22.4 103
112 PT3.323 20.50 22.4 104

Rõ ràng, theo công thức chuẩn hóa điểm gợi ý từ chatGPT chúng ta có thể công bố công thức chuẩn hóa trước hàng năm cho cả nước biết, miễn là ta biết được thang đo của các phương thức tuyển sinh (thang 0-30 của thi tốt nghiệp, thang 0-150 của TSA, thang 0-9 của kì thi IELTS).