我对一些科目进行了心理测试,我正在尝试创建一个多元概率模型。
测试如下:
受试者1在11种不同条件下给予一定刺激,每种条件10次。答案 ( correct=1
, uncorrect=0
) 已注册。所以对于主题 1,我有以下结果表:
# Subj 1
correct
cnt 1 0
1 0 10
2 0 10
3 1 9
4 5 5
5 7 3
6 10 0
7 10 0
8 10 0
9 9 1
10 10 0
11 10 0
这意味着 Subj1 在条件 1 和 2 下答错了 10 次,在条件 10 和 11 下答对了 10 次。对于其他条件,响应从条件 3 增加到条件 9。我希望我很清楚。
我通常使用以下代码分析数据:
prob.glm <- glm(resp.mat1 ~ cnt, family = binomial(link = "probit"))
这resp.mat1
是响应表,而cnt
对比表是c(1,11)
。所以我可以使用该predict()
函数绘制 sigmoid 曲线。主题 1 的图表如下。
现在假设我对 20 个科目进行了相同的测试。我现在有 20 张桌子,像第一个一样组织。
我想要做的是比较子组,例如male vs. female
:young vs. older
等等。但我想保持个体间的可变性,所以简单地“添加”20 个表是错误的。
如何组织数据以使用该glm()
功能?
我希望能够编写如下命令:
prob.glm <- glm(resp.matTOT ~ cnt + sex, family = binomial(link = "probit"))
然后绘制sex=M
, 和的曲线sex=F
。
我尝试使用该rbind()
函数创建一个唯一的表,然后为Subj (1 to 20)
、Sex
、 . 添加列Age
。但它看起来我是一个糟糕的解决方案,所以任何替代解决方案都将不胜感激。