代码部分
首先需要下载预备的工具包
生成 Q 矩阵
改错 Q 矩阵
源代码不区分 01 的错误顺序,都硬改,所以这个错误率不清楚是 0-1 还是 1-0 的比例
如果要分清楚的话不能使用源代码的随机生成,速度得不到保证,后续重复实验会很麻烦
应该
需要修改 python 中的 CDM 包
CDM 中实际上是计算了同一道题目在不同掌握模式下的回答概率
所以在源代码增加了两句,增加不同掌握模式的回答概率 = 掌握模式种类 * 题目数量
R 语言中的 GDINA 细节
孙代码中
下面数据格式是 sim. ORP. GDINA 函数生成,
32 道题目、
4 个知识点、
300 个学生、
16 种掌握模式
其中 dat 是学生作答矩阵!
Q 是 Q 矩阵
attribute 三百个学生属于那种掌握模式
LCprob 是每道题目 (32)在不同掌握模式 (16)下的概率
问题是数据是怎么来的??
结果是 GDINA 包自己按规则生成
delta 法 debug
在 delta 法中如果知识点数量只有 3,是有可能出现 q=[1,1,1]比两个知识点好,但仍然没有退出循环
4,的话就是可能出现 q=[1,1,1,1]比其他好,但仍还没有跳出循环,所以加上设定
gamma 法 debug
出现 es 为 0 的情况!全部加 1 e-6
Hypothesis 法 debug
在循环检验时,python 的 new 与 old 向量一定要注意 copy()
因为函数内部变量发生改变,函数外的变量也会发生改变!所以放进函数内的参数最好要 copy!
例如
generate data debug
Q 矩阵的错误设置需要有限制
但是作答矩阵错误设置不需要限制,所以应该直接改!
生成学生掌握真值
什么规则?
- 均匀抽样,这种中间的较多
- 正态抽样,怎么正态法,4 个知识点
- 用正态抽样意为:不同知识点[1,2,3,4]对应为等概率分位点[-0.84162123, -0.2533471 , 0.2533471 , 0.84162123]
- 生成独立多元正态随机数 100 × 4 表示 100 个学生的掌握模式
- 因为时正态分布的随机数,因此
理论部分
假设检验法
H0:qj=q0,H1:qj=q0
根据统计量与概率分布,得出拒绝或者接受的结论
当拒绝原假设时,即认为原本的 q0 不正确,可推出 q0 的包含集也不正确,说明该掌握模式答错相应题目数量很多,正确的 qj 应该在非包含集 qup 中。
H0:qj=qupi,H1:qj=qupi
若接受原假设,则无需修改,若拒绝原假设,则