如何组织多变量概率模型的数据?

时间:2012-07-17 15:41:10

标签: r

我对某些科目进行了心理测试,我正在尝试创建一个多变量概率模型。

测试如下进行:

对于受试者1在11种不同条件下给予一定刺激,每种条件10次。答案(correct=1uncorrect=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的图表如下。

enter image description here

现在假设我对20个科目进行了相同的测试。我现在有20张桌子,就像第一张桌子一样。

我想要做的是比较子组,例如:male vs. female; young vs. older等等。但我想保持个体间的差异,所以简单地“添加”20个表将是错误的。

如何组织数据以使用glm()功能?

我希望能够编写如下命令:

prob.glm <- glm(resp.matTOT ~ cnt + sex, family = binomial(link = "probit"))

然后绘制sex=Msex=F的曲线。

我尝试使用rbind()功能创建一个唯一的表格,然后为Subj (1 to 20)SexAge添加列。但它看起来是一个糟糕的解决方案,所以任何替代解决方案都将非常受欢迎。

2 个答案:

答案 0 :(得分:1)

看起来你正在使用错误的功能。检查包glmerlme4的第一个示例;它非常接近你想要的。 herd应替换为主题编号,但请确保您执行类似

的操作
mydata$subject = as.factor(mydata$subject)

当您有数字主题编号时。

# Stolen from lme4
library(lattice)
library(
xyplot(incidence/size ~ period|herd, cbpp, type=c('g','p','l'),
       layout=c(3,5), index.cond = function(x,y)max(y))
(gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
              data = cbpp, family = binomial))

答案 1 :(得分:0)

所有内容的mlogit库中都有一个多变量概率命令。您可以在此处查看所需数据结构的示例:

https://stats.stackexchange.com/questions/28776/multinomial-probit-for-varying-choice-set