Trong báo cáo này, mình sẽ chia sẻ quy trình sử dụng CTT để phân tích kết quả thi của HS.

Code của chương trình không được show vì lí do bảo mật.

Part I: Classical Test Theory (CTT)

Lý thuyết trắc nghiệm cổ điển (Classical Test Theory - CTT) được xem là những thành tựu của khoa học đo lường và đánh giá tính đến những năm 70 của thế kỷ XX. Lý thuyết dựa vào công thức:

\[ X = T + E \]

trong đó:

  • T (true score) là số đo năng lực thực sự của thí sinh thể hiện qua kỹ năng đang được đo lường

  • X (observed score) là điểm thực tế (điểm thô)

  • E (error) là sai số.

1 . Độ khó của câu hỏi

Với CTT, độ khó của câu hỏi được xác định là tỷ lệ thí sinh trả lời đúng so với tổng số thí sinh tham gia trả lời câu hỏi đó.

\[ p = \frac{n_r}{n_t} \]

trong đó:

  • p là độ khó của câu hỏi
  • \(n_r\) là số TS trả lời đúng
  • \(n_t\) là tổng số TS

Số đo tham khảo:

  • p < 0.25 : CH có thể quá khó
  • 0.25 < p < 0.75: độ khó chấp nhận được
  • p > 0.75: CH có thể quá dễ

2 . Độ phân biệt của câu hỏi

Độ phân biệt thể hiện cho khả năng một câu trắc nghiệm phân biệt được năng lực của nhóm TS (giỏi, trung bình, kém, ...), dựa trên phản ứng của các nhóm TS với CH.

Có 2 cách tính độ phân biệt:

Cách 1: Tính đơn giản, có thể tính bằng tay hoặc từ bảng excel

Dựa vào tổng điểm thô, xếp hạng học sinh theo điểm từ cao xuống thấp, 27% top đầu là nhóm giỏi, 27% điểm thấp nhất là nhóm kém.

Độ phân biệt của mỗi câu là:

\[ D=\frac{C-T}{S} \]

Trong đó:

  • C là số HS thuộc nhóm giỏi trả lời đúng CH
  • T là số HS thuộc nhóm kém trả lời đúng CH
  • S là số HS của 27% của cả lớp.

Giá trị tham khảo:

Độ phân biệt Giải thích
>0.4 Tốt
0.3 ~ 0.39 Khá tốt
0.2 ~ 0.29 Tạm được nhưng cần chỉnh sửa
<0.19 Kém, cần loại bỏ hoặc chỉnh sửa

Cách 2: Tính hệ số tương quan Point-biserial correlation coefficient

Tính hệ số tương quan \(r_{pb}\) của 1 câu hỏi là trường hợp đặc biệt của hệ số tương quan, chỉ áp dúng với dạng CH trắc nghiệm chỉ đúng Đúng và Sai, tương đương 1 và 0 điểm. Chúng ta sẽ chia TS thành 2 nhóm, nhóm 1 là những TS trả lời đúng - điểm 1, nhóm 2 là những TS trả lời sai - điểm 0. Công thức tính sẽ là:

Trong đó:

  • \(s_n\) là standard deviation của điểm của các TS
  • \(M_1\) là điểm trung bình của nhóm 1 (điểm 1) , \(M_0\) là điểm trung bình của nhóm 2 (điểm 0)
  • \(n_1\) là số TS nhóm 1, \(n_0\) là số TS nhóm 2, \(n\) là tổng số TS

Giá trị tham khảo: Độ phân biệt \(r_{pb}\) chấp nhận được cần > 0.2

3 . Độ tin cậy của đề trắc nghiệm

Độ tin cậy đề cập đến mức độ mà kết quả có thể nhân rộng. Ví dụ, nếu tiến hành một thí nghiệm lặp lại thì có cho kết quả tương tự như lúc trước không. Khi đề cập đến việc tổ chức kiểm tra, người ta đặt câu hỏi “điểm kiểm tra của học sinh sẽ thay đổi bao nhiêu nếu học sinh đó làm nhiều bài kiểm tra tương tự?” Các phép đo độ tin cậy thường được thể hiện dưới dạng chỉ số từ 0 đến 1, trong đó chỉ số 1 cho thấy thử nghiệm lặp lại sẽ có kết quả giống hệt nhau. Ngược lại, độ tin cậy bằng 0 cho thấy điểm kiểm tra của học sinh từ lần tổ chức kiểm tra này sang lần tổ chức kiểm tra khác sẽ không có bất kỳ mối quan hệ nào. Rõ ràng, độ tin cậy cao hơn được mong muốn hơn vì nó cho thấy rằng điểm số của học sinh trong bài kiểm tra đáng “tin cậy”.

Về mặt hình thức, độ tin cậy của bài kiểm tra được định nghĩa là tỷ lệ phương sai (Var - variance) của điểm số thực (T) so với phương sai của điểm số quan sát được (X) trên tổng số học sinh. là:

\[ \rho_{XX'}=\frac{Var(T)}{Var(X)} = \frac{Var(T)}{Var(T)+Var(E)} \]

  • *Note 1:X và X’ thể hiện kết quả của TS trong 2 bài test song song, thể hiện ý “bài kiểm tra tương tự”
  • *Note 2: Var(X) = Var(T) + Var(E) + cov(T,E) nhưng theo assumption của CTT là correlation(T,E) = 0

Khi độ tin cậy của bài test cao, chúng ta sẽ kì vọng độ tương quan giữa điểm thực (T) và điểm nhận được (X) cũng cao.

Một số cách để tính độ tin cậy (reliability Coefficient) của ĐTN đó là:

A. Test-retest (Trắc nghiệm – trắc nghiệm lại): cùng một ĐTN cho một nhóm thí sinh (TS) làm 2 lần rồi tính tương quan giữa 2 bộ điểm. Nếu số lượng TS lớn, từ 1 bộ kết quả, ta có thể tách thành 2 bộ một cách random, như bộ TS chẵn và bộ TS lẻ, sau đó phân tích tương quan giữa các chỉ số của ĐTN từ 2 bộ TS.

B. Inter-rated: TS là 1 ĐTN, nhưng nhiều người chấm, tính độ tương quan giữa các kết quả.

C.1. Parallel-forms (ĐTN tương đương): cùng 1 nhóm TS, làm 2 ĐTN tương đương, rồi tính tương quan giữa 2 bộ điểm. Thay vì để 1 nhóm làm 2 ĐTN tương đương, ta có thể tách đôi ĐTN (như 1 đề có các câu chẵn, 1 đề có các câu lẻ), rồi phân tích độ tương quan giữa các chỉ số của đề chẵn và đề lẻ để ra được độ đồng nhất nội tại (internal consistency) của ĐTN. Tuy nhiên cách này có thể không đánh giá chính xác được độ tin cậy của ĐTN với độ dài ban đầu.

C.2. Định lượng internal consistency với Cronbach’s Alpha: vì có rất nhiều cách để chia đôi ĐTN (chẵn - lẻ là 1 cách), ta có thể tăng độ chính xác của giá trị internal consistency bằng cách giá trị này với tất cả các cách rồi lấy giá trị trung bình. Hệ số Cronbach’s Alpha có thể ước lượng tốt giá trị trung bình này.

\[ \alpha = \frac{I}{I-1} \frac{Var(X) - \sum_{i=1}^{I}Var(item\ scores\ of\ item\ i)}{Var(X)} \]

  • α = Cronbach’s Alpha

  • I = Number of items

  • Var(X) = Variance của điểm của HS

Giá trị tham khảo:

  • Giá trị của Alpha trong khoảng từ 0 đến 1
  • Alpha > 0.7 là chấp nhận được cho hầu hết các trường hợp
  • Alpha >0.8 là internal consistency rất cao.

Ta có thể hình dung \(\sum_{i=1}^{I}Var(item\ scores\ of\ item\ i)\) như là \(Var(E)\), khi đó, hệ số Alpha trông sẽ giống như định nghĩa của độ tin cậy. Và \(\rho_{XX'} \ge \alpha\).

\[ \alpha \cong \frac{I}{I-1} \frac{Var(X) - Var(E)}{Var(X)} = \frac{I}{I-1} \frac{Var(T)}{Var(X)} \]

Với đề trắc nghiệm dạng điểm nhị phân (0 và 1) ta có thể dùng Kuder-Richardson formula (KR-20), một trường hợp đặc biệt của hệ số Alpha.

4 . Standard Error of Measurement (SEM)

SEM cung cấp thông tin về ước tính về error, từ đó có căn cứ đưa ra khoảng giá trị mà điểm thực (T) có thể rơi vào.

Trong statistics, chúng ta có standard deviation (SD) (\(=\sqrt{Variance}=\sqrt{Var(X)}\) ) để ước tính được phân bố của data. Tuy nhiên trong nghiên cứu về psychometrics (trắc học tâm lí), chúng ta quan tâm đến cả độ tin cậy của phép đo. Công thức của SEM là:

\[ SEM = \sqrt{Var(E)} = \sqrt{(1-\rho_{XX'}) Var(X)} \]

Sau khi biết được SEM, ta có thể ước lượng được khoảng điểm thực của TS dựa vào công thức:

\[ T \in (X_j - SEM.Z, X_j + SEM.Z) \]

trong đó:

  • \(X_j\) là điểm nhận được của TS thứ j
  • Z là Z score được quy đổi khi biết confidence interval (CI). Số phổ biến thường dùng là CI = 95%, thì Z = 2.

5 . R programming for CTT

5.1 CTT coefficient

Cần đảm bảo file import đã được làm sạch với định dạng như file import trong tài liệu này, một số điểm chính của file đã được làm sạch đó là:

  • Điểm ở dạng nhị phân, TS làm đúng - 1, làm sai - 0

  • Không có ô trống (missing value): ở bước làm sạch data cần thay các ô missing value bằng điểm 0 hoặc loại bỏ kết quả của TS (TS có vấn đề)

## 'data.frame':    3850 obs. of  30 variables:
##  $ No.1 : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ No.2 : int  1 1 1 1 1 1 1 1 0 1 ...
##  $ No.3 : int  0 1 1 1 1 1 1 1 1 1 ...
##  $ No.4 : int  1 1 1 1 1 1 1 0 1 1 ...
##  $ No.5 : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ No.6 : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ No.7 : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ No.8 : int  1 1 0 1 1 1 1 1 1 1 ...
##  $ No.9 : int  1 0 0 0 1 1 1 1 0 1 ...
##  $ No.10: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ No.11: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ No.12: int  0 0 0 1 0 0 1 1 0 0 ...
##  $ No.13: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ No.14: int  0 0 1 0 1 1 1 1 1 0 ...
##  $ No.15: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ No.16: int  0 0 1 1 1 1 1 0 1 1 ...
##  $ No.17: int  1 1 1 0 1 1 1 1 1 0 ...
##  $ No.18: int  0 0 0 0 1 1 0 1 1 1 ...
##  $ No.19: int  0 0 0 0 0 0 0 1 0 0 ...
##  $ No.20: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ No.21: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ No.22: int  0 0 0 0 0 0 0 1 0 1 ...
##  $ No.23: int  1 0 1 0 1 0 0 0 0 0 ...
##  $ No.24: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ No.25: int  0 1 0 0 0 1 1 1 1 1 ...
##  $ No.26: int  1 1 0 0 0 0 0 0 0 0 ...
##  $ No.27: int  1 1 0 1 1 1 1 1 1 1 ...
##  $ No.28: int  1 0 0 0 0 1 1 1 0 1 ...
##  $ No.29: int  1 1 1 1 1 0 1 1 1 1 ...
##  $ No.30: int  1 1 1 1 1 1 1 1 0 1 ...
##    itemName  itemMean         pBis          bis alphaIfDeleted easy lowPBis
## 1      No.1 0.5761039  0.339519102  0.428384610      0.7541157             
## 2      No.2 0.5062338  0.320857658  0.402153281      0.7553227             
## 3      No.3 0.8270130  0.293236047  0.433444615      0.7570750    X        
## 4      No.4 0.9303896  0.264835941  0.504126788      0.7593330    X        
## 5      No.5 0.7054545  0.442972575  0.585643982      0.7480289             
## 6      No.6 0.9425974  0.329805456  0.666772458      0.7577043    X        
## 7      No.7 0.8914286  0.347034371  0.579578297      0.7554900    X        
## 8      No.8 0.7862338  0.387614234  0.545673635      0.7519416    X        
## 9      No.9 0.3223377  0.283587342  0.369506206      0.7575377             
## 10    No.10 0.8389610  0.364441695  0.548232800      0.7537643    X        
## 11    No.11 0.9096104  0.354994676  0.624819115      0.7556692    X        
## 12    No.12 0.2693506  0.348015479  0.467491005      0.7537800             
## 13    No.13 0.9275325  0.347384234  0.653165239      0.7565447    X        
## 14    No.14 0.1228571 -0.019115146 -0.030853932      0.7702664            X
## 15    No.15 0.9171429  0.369710358  0.667633792      0.7553907    X        
## 16    No.16 0.5501299  0.236593428  0.297382670      0.7606859             
## 17    No.17 0.7296104  0.370130402  0.496843295      0.7524983             
## 18    No.18 0.2529870  0.170196540  0.231374942      0.7637005            X
## 19    No.19 0.2093506  0.224214382  0.317093684      0.7605379             
## 20    No.20 0.8714286  0.301556203  0.480816682      0.7570372    X        
## 21    No.21 0.9277922  0.318499606  0.599511974      0.7575111    X        
## 22    No.22 0.2220779  0.177088132  0.247254778      0.7630648            X
## 23    No.23 0.1784416 -0.038332941 -0.056240701      0.7728632            X
## 24    No.24 0.6077922  0.396904809  0.504270206      0.7504609             
## 25    No.25 0.3522078  0.262452156  0.337682885      0.7588762             
## 26    No.26 0.2345455  0.002645236  0.003651221      0.7722927            X
## 27    No.27 0.7625974  0.439269812  0.604817357      0.7488330    X        
## 28    No.28 0.3838961  0.047955860  0.061065586      0.7719477            X
## 29    No.29 0.4748052  0.373487108  0.468436493      0.7519029             
## 30    No.30 0.4823377  0.358500623  0.449474054      0.7528796

Alpha:

## [1] 0.7642333

SEM:

## [1] 2.118703

Tính khoảng điểm thực với khoảng tin cậy (confidence interval) là 95%

##      st_raw_score st_T_low st_T_high
## [1,]           22 17.84742  26.15258
## [2,]           21 16.84742  25.15258
## [3,]           20 15.84742  24.15258
## [4,]           20 15.84742  24.15258
## [5,]           24 19.84742  28.15258
## [6,]           24 19.84742  28.15258

5.2 Score Transformation

Library của CTT có hỗ trợ hàm quy đổi điểm sang thang mới với giá trị trung bình và standard deviation mới.

## List of 2
##  $ new.scores: num [1:3850] 797 749 699 699 901 ...
##  $ p.scores  : num [1:3850] 0.838 0.772 0.69 0.69 0.934 ...

Tóm tắt một vài chỉ số của hệ điểm mới

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -32.72  460.74  604.69  599.98  748.88 1294.10

5.3 CTT coefficient for polytomous score

Vì không có package nào của R dùng để phân tích kết quả thi khác điểm nhị phân, tức là có nhiều thang điểm, nên ta sẽ cần tự thiết lập các chỉ số CTT để phân tích kết quả.

## 'data.frame':    29 obs. of  5 variables:
##  $ item_1: num  1 2 0 2 0 1 2 2 1 2 ...
##  $ item_2: num  2 1 3 2 1 1 2 1 0 1 ...
##  $ item_3: int  0 1 4 1 2 1 1 4 1 1 ...
##  $ item_4: num  3 1 1 1 3 2 1 1 1 2 ...
##  $ item_5: int  1 1 3 2 1 1 1 1 1 2 ...
  1. Difficulty / Độ khó
##    item_1    item_2    item_3    item_4    item_5 
## 0.5396552 0.4068966 0.4310345 0.4793103 0.5057471
  1. Discrimination / Độ phân biệt

Tính điểm HS

##  [1]  7.0  6.0 11.0  8.0  7.0  6.0  7.0  9.0  4.0  8.0 10.0  4.2  7.0 10.0  8.7
## [16]  9.0  8.0  6.2  3.7  8.0  5.0  5.7 10.7  5.0  9.0  6.0  3.7  4.5  5.0

Tính độ tương quan giữa kết quả trả lời mỗi CH với điểm HS

##              [,1]
## item_1 0.08169329
## item_2 0.53016660
## item_3 0.65063469
## item_4 0.27450032
## item_5 0.65813853
  1. Internal consistency

Alpha:

## 
## Cronbach's alpha for the 'st_data_poly' data-set
## 
## Items: 5
## Sample units: 29
## alpha: 0.038
  1. SEM và Khoảng điểm thực

SEM:

## [1] 2.103403

Khoảng điểm thực:

##      st_T_low_poly student_score st_T_high_poly
## [1,]      2.847418             7       11.15258
## [2,]      1.847418             6       10.15258
## [3,]      6.847418            11       15.15258
## [4,]      3.847418             8       12.15258
## [5,]      2.847418             7       11.15258
## [6,]      1.847418             6       10.15258