Foxtable(狐表)用户栏目专家坐堂 → [求助]选做题区分度的计算


  共有2593人关注过本帖树形打印复制链接

主题:[求助]选做题区分度的计算

帅哥哟,离线,有人找我吗?
cqlpjks
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
[求助]选做题区分度的计算  发帖心情 Post By:2019/4/29 12:20:00 [只看该作者]

小题分分析程序调试

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:小题分分析程序调试.rar


 


图片点击可在新窗口打开查看此主题相关图片如下:理数调试.jpg
图片点击可在新窗口打开查看
如何修改选做题(选做22题、选做23题)的区分度计算代码,请指教。谢谢!

 

If Lx = "客观题"  Then
    dr("难度") = dr("满分人")/dr("参考人数")
    dr("区分度") = (c4-c5)/c2
ElseIf Lx = "主观题"  Then
    dr("难度") = dr("平均分")/c1
    If dr("题型").Contains("选做") Then
        Dim c31 As Integer = DataTables(Km).Compute("count(单位)","选做 = '"& dr("题型") &"'")
        Dim c21 As Integer = c31*0.27
        Dim c22 As Integer = c31*0.73
        Dim tj1 As String = Km & "选做题名次"
        Dim c23 As Double = DataTables(Km).Compute("Sum("& dr("题号") &")","" & tj1 & " <= '" & c21 & "'") '选做题高分组得分之和
        Dim c24 As Double = DataTables(Km).Compute("Sum("& dr("题号") &")","" & tj1 & " >= '" & c22 & "'") '选做题低分组得分之和
        dr("区分度") = (c23-c24)/c21/(dr("最大值")-dr("最小值")) '高低分组得分的和之差/总人数27%/(最高分-最低分)
    Else
        dr("区分度") = (c6-c7)/c2/(dr("最大值")-dr("最小值")) '高低分组得分的和之差/总人数27%/(最高分-最低分)
    End If
Else
End If

[此贴子已经被作者于2019/4/29 12:22:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/29 13:05:00 [只看该作者]

不理解你的逻辑。

 

请你弹出你各个值看一下,和你手工计算对比,看哪个值不正确。

 

msgbox(c23)

msgbox(c24)

msgbox(c21)

msgbox(dr("最大值")-dr("最小值"))


 回到顶部
帅哥哟,离线,有人找我吗?
cqlpjks
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2019/4/30 17:04:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:理数小题分分析表1.xls

统计此表中列“难度”、“区分度”:卷二 = 主观题平均分(序号13-19)   理数 = 主、客观题的平均分(序号1-19)

代码:

卷二:

dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 12, r, 18, r)
dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 12, q, 18, q)

理数:

dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, r, 18, r)
dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, q, 18, q)

执行结果有误,怎么修改代码?请指教。谢谢!

 

卷一统计没问题:

dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, r, 11, r)
dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, q, 11, q)

[此贴子已经被作者于2019/4/30 17:10:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/30 17:24:00 [只看该作者]

请用compute比较,如

 

Tables(Km & "小题分析").compute("avg(题号)", "题号>=13 and 题号<=19")

 

 


 回到顶部