Thursday, July 30, 2015

Bạn ở vị trí nào trong kì thi THPT 2015?


Kì thi tốt nghiệp THPT quốc gia vừa kết thúc. Thí sinh có lẽ muốn biết mình ở vị trí nào trong thang điểm quốc gia. Bộ GDĐT đã công bố "phổ điểm" của khối A, B, A1, C, và D (1). Nhưng cách trình bày của Bộ rất khó đọc, và tôi nghĩ thí sinh sẽ khó tra điểm để biết họ ở vị trí nào trong thang điểm quốc gia. Do đó, tôi phân tích lại từ các dữ liệu này và thể hiện bằng biểu đồ phân bố để giúp cho thí sinh tự xác định điểm thi của mình nằm ở vị trí nào trong phân bố điểm toàn quốc.



Hình 1 (Biểu đồ hộp): Mô tả điểm thi tốt nghiệp trung học phổ thông năm 2015 cho các khối A, B, A1, C và D. Ở mỗi khối, biểu đồ cung cấp số trung vị (chính giữa hộp), bách phân vị 25% (phần dưới của hộp), và bách phân vị 75% (phần trên của hộp), điểm tối thiểu, và điểm tối đa. Ví dụ: Đối với khối A, điểm trung vị là 18.5, bách phân vị 25 là 15.5, và bách phân vị 75 là 21.0. Ý nghĩa là 25% thí sinh có điểm khối A bằng hoặc thấp hơn 15.5 , 50% thí sinh có điểm bằng hoặc thấp hơn 18.5, và 75% thí sinh có điểm bằng hoặc thấp hơn 21.

Hình 1: Biểu đồ hộp thể hiện phân bố điểm thi của khối A, B, A1, C, và D 

Bảng bách phân vị: Bảng này trình bày điểm tương ứng của mỗi khối với bách phân vị 5%, 10%, ..., 100%. Chẳng hạn như khối B (toán, hoá, sinh), có 5% thí sinh có điểm thấp hơn hoặc bằng 9.5; 1/4 thí sinh có điểm bằng hoặc thấp hơn 13.5. Chúng ta cũng có thể nói có 20% thí sinh có điểm từ 9.5 đến 13.5.


Bảng bách phân vị 


Các biểu đồ phân bố và tích luỹ. Có 5 biểu đồ dạng này cho 5 khối thi (A, B, A1, C, và D). Mỗi biểu đồ có hai phân bố: phân bố mật độ cho từng điểm, thể hiện bằng các thanh màu xanh; phân bố tích luỹ, thể hiện bằng đường biểu diễn màu đỏ như bậc thang. Trục hoành là điểm thi đạt được. Trục tung là xác suất (từ 0 đến 1), hoặc nếu cần thì nhân cho 100 để có phần trăm.


Cách tra điểm qua ví dụ cụ thể: Một thí sinh có điểm thi khối A là 25, và muốn biết mình thuộc vào hạng mấy trong thang điểm từ 0 đến 100. Dùng biểu đồ khối toán - lí - hoá, dò trục hoành ở điểm 25; dò thẳng theo đường thẳng màu trắng trên trục tung, và tìm điểm giao chéo với đường màu đỏ, chúng ta sẽ thấy tương ứng với khoảng 0.96. Nói cách khác, điểm của thí sinh (25) nằm trong nhóm "top 5%" toàn quốc. Tương tự, nếu thí sinh có điểm 20, thì biểu đồ cho thấy thí sinh đó nằm trong bách phân vị giữa 65%.







Sẵn dịp, tôi tính luôn số trung bình và độ lệch chuẩn (trong ngoặc kép) của từng khối như sau:

Khối A (toán, lí, hoá): 18.1 (4.06)
Khối B (toán, hoá, sinh): 16.7 (4.33)
Khối A1 (toán, lí, ngoại ngữ): 15.9 (3.71)
Khối C (ngữ văn, sử, địa lí): 17.2 (4.18) 
Khối D (toán, ngữ văn, ngoại ngữ): 14.9 (3.67)

Bảng trên đây cho thấy khối A có điểm cao nhất, chủ yếu là do điểm trung bình của môn lí (5.94) và hoá (6.02) tương đối cao hơn môn toán (trung bình 5.16). Khối D có điểm trung bình thấp nhất, chủ yếu là do điểm trung bình môn tiếng Anh quá thấp (chỉ 3.84).

Mỗi khối có 3 môn, mỗi môn có điểm dao động từ 0 đến 10. Do đó, điểm trung bình kì vọng cho mỗi khối là 15. Câu hỏi là bao nhiêu thí sinh có điểm trên 15? Biểu đồ đa màu (hay màu mè) trả lời câu hỏi đó. Khối A (toán, lí, hoá) có tỉ lệ thí sinh có điểm trên 15 cao nhất (77%). Chỉ có khối D (ngữ văn, ngoại ngữ, và văn hoá) là có tỉ lệ điểm>15 thấp hơn 50%.


===

(1) http://tuoitre.vn/tin/giao-duc/20150729/cong-bo-so-thi-sinh-o-tung-muc-diem-thi/784866.html


Mã R dùng cho phân tích: 


t = read.csv("~/Google Drive/Linh tinh/Diem thi theo hoi 2015.csv", header=T)
head(dt)
attach(dt) 

# Creating vectors 

MathPhysChem = (rep(Score, times=KhoiA))
MathChemBiol = (rep(Score, times=KhoiB))
MathPhysLang = (rep(Score, times=KhoiA1))
LangHistGeo = (rep(Score, times=KhoiC))
MathLangFlang = (rep(Score, times=KhoiD))

# vẽ dist và cum 

ddt=data.frame(MathPhysChem)

#For Khoi A 
p = ggplot(ddt, aes(MathPhysChem)) + stat_ecdf(color="red", lwd=1) + geom_bar(aes(y = (..count..)/sum(..count..)), fill="blue", colour='yellow')

p = p + xlab("Đim thi khi Toán, Lí, Hoá") + ylab("Xác sut tích lu") + xlim(c(0, 30))

p = p + scale_y_continuous(breaks=seq(0,1,0.1)) + scale_x_continuous(breaks=seq(0,30,2))

p + theme(legend.position="none", axis.text.x=element_text(color="black"), axis.text.y=element_text(color="black")) 

#For Khoi B  
ddt=data.frame(MathChemBiol)

p = ggplot(ddt, aes(MathChemBiol)) + stat_ecdf(color="red", lwd=1) + geom_bar(aes(y = (..count..)/sum(..count..)), fill="blue", colour='yellow')

p = p + xlab("Đim thi khi Toán, Hoá, Sinh") + ylab("Xác sut tích lu") + xlim(c(0, 30))

p = p + scale_y_continuous(breaks=seq(0,1,0.1)) + scale_x_continuous(breaks=seq(0,30,2))

p + theme(legend.position="none", axis.text.x=element_text(color="black"), axis.text.y=element_text(color="black")) 


#For Khoi A1   
ddt=data.frame(MathPhysLang)

p = ggplot(ddt, aes(MathPhysLang)) + stat_ecdf(color="red", lwd=1) + geom_bar(aes(y = (..count..)/sum(..count..)), fill="blue", colour='yellow')

p = p + xlab("Đim thi khi Toán, Lí, Ngoại ngữ") + ylab("Xác sut tích lu") + xlim(c(0, 30))

p = p + scale_y_continuous(breaks=seq(0,1,0.1)) + scale_x_continuous(breaks=seq(0,30,2))

p + theme(legend.position="none", axis.text.x=element_text(color="black"), axis.text.y=element_text(color="black")) 

#For Khoi C   
ddt=data.frame(LangHistGeo)

p = ggplot(ddt, aes(LangHistGeo)) + stat_ecdf(color="red", lwd=1) + geom_bar(aes(y = (..count..)/sum(..count..)), fill="blue", colour='yellow')

p = p + xlab("Đim thi khi Ngữ văn, Sử, Địa Lí") + ylab("Xác sut tích lu") + xlim(c(0, 30))

p = p + scale_y_continuous(breaks=seq(0,1,0.1)) + scale_x_continuous(breaks=seq(0,30,2))

p + theme(legend.position="none", axis.text.x=element_text(color="black"), axis.text.y=element_text(color="black")) 

#For Khoi D   
ddt=data.frame(MathLangFlang)

p = ggplot(ddt, aes(MathLangFlang)) + stat_ecdf(color="red", lwd=1) + geom_bar(aes(y = (..count..)/sum(..count..)), fill="blue", colour='yellow')

p = p + xlab("Đim thi khi Toán, Ngữ văn, Ngoại ngữ") + ylab("Xác sut tích lu") + xlim(c(0, 30))

p = p + scale_y_continuous(breaks=seq(0,1,0.1)) + scale_x_continuous(breaks=seq(0,30,2))


p + theme(legend.position="none", axis.text.x=element_text(color="black"), axis.text.y=element_text(color="black")) 

1 comment:

Anonymous said...

Khối A1 gồm môn Toán-Lí-Ngoạingữ. Trong hình hộp Boxplot ở trên hình như Thầy Tuấn tính nhầm khối A1 là Toán-Lí-Ngữvăn thì phải.