1.问题描述
某次考试中,有10名考生成绩如下表,包括总分和一道问答题,试求该道问答题的区分度(问答题6分及6分以上为通过,否则未通过)。
考生 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
卷面总分 | 75 | 57 | 73 | 65 | 67 | 56 | 63 | 61 | 65 | 67 |
问答题得分 | 7 | 6 | 7 | 4 | 7 | 4 | 4 | 4 | 7 | 6 |
2.源码实现
import numpy as np
from scipy.stats import norm
score = np.array([[75, 57, 73, 65, 67, 56, 63, 61, 65, 67],
[7, 6, 7, 4, 7, 4, 4, 4, 7, 6]])
c = np.array([np.where(score[1] >= 6), np.where(score[1] < 6)])
p = len(c[0][0]) / (len(c[0][0]) + len(c[1][0]))
q = len(c[1][0]) / (len(c[0][0]) + len(c[1][0]))
Y = norm.pdf(norm.ppf(p))
Xp = np.mean(score[0][c[0][0]])
Xq = np.mean(score[0][c[1][0]])
sg = np.std(score[0], ddof=1)
R = (Xp - Xq) * p * q / (sg * Y)
print(R)
3.运行及其结果
$ python3 example.py
0.617662281919
4.结果分析
从二列相关系数的值,可以看到问答题得分对总分的区分度略高。
网友评论