Statistics 如何用多元回归获得WinBUGS中的多项式概率

Statistics 如何用多元回归获得WinBUGS中的多项式概率,statistics,regression,winbugs,multinomial,winbugs14,Statistics,Regression,Winbugs,Multinomial,Winbugs14,在WinBUGS中,我使用多项式似然函数指定一个模型,我需要确保多项式概率都在0和1之间,并且总和为1 以下是代码中指定可能性的部分: e[k,i,1:9] ~ dmulti(P[k,i,1:9],n[i,k]) 这里,数组p[]指定多项式分布的概率 这些概率将根据我的数据(矩阵e[])使用一系列固定和随机效应的多元线性回归进行估计。例如,这里是用于预测P[]元素之一的多元线性回归: P[k,1,2] <- intercept[1,2] + Slope1[1,2]*Covariat

在WinBUGS中,我使用多项式似然函数指定一个模型,我需要确保多项式概率都在0和1之间,并且总和为1

以下是代码中指定可能性的部分:

e[k,i,1:9] ~ dmulti(P[k,i,1:9],n[i,k]) 
这里,数组p[]指定多项式分布的概率

这些概率将根据我的数据(矩阵e[])使用一系列固定和随机效应的多元线性回归进行估计。例如,这里是用于预测P[]元素之一的多元线性回归:

P[k,1,2] <- intercept[1,2]  +  Slope1[1,2]*Covariate1[k]  +
Slope2[1,2]*Covariate2[k]  +  Slope3[1,2]*Covariate3[k]  
+ Slope4[1,2]*Covariate4[k] +  RandomEffect1[group[k]]  +  
RandomEffect2[k]
如果我理解正确,这意味着向量p[k,I,1:9](上面多项式似然函数中的概率向量)的元素可能是非常大(或很小)的数字。实际上,它们都需要介于0和1之间,并且总和为1

我对WinBUGS还不熟悉,但从周围的阅读来看,不知何故,使用beta回归而不是多元线性回归可能是前进的方向。然而,尽管这将允许每个元素介于0和1之间,但它似乎并没有触及问题的核心,即P[k,i,1:9]的所有元素都必须是正的,并且和为1

可能是响应变量可以非常简单地转换成一个比例。我试着用P[k,I,1:9]的和来除以每个元素,但到目前为止没有成功

任何提示都将不胜感激


(我已经提供了模型中有问题的部分;整个过程相当长。)

通常的方法是使用logit链接的多项式等价物将转换的概率约束到区间(0,1)。例如(对于单个预测器,但对于您需要的尽可能多的预测器,这是相同的原则):

Response[i,1:Categories]~dmulti(prob[i,1:Categories],Trials[i])

phi[i,1]是一个非常有用的答案。谢谢-看看你提到的示例代码就太棒了!
elements of proportion vector of multinomial e[1,1,1] must be between zero and one
Response[i, 1:Categories] ~ dmulti(prob[i, 1:Categories], Trials[i])

phi[i,1] <- 1
prob[i,1] <- 1 / sum(phi[i, 1:Categories])
for(c in 2:Categories){
    log(phi[i,c]) <- intercept[c] + slope1[c] * Covariate1[i]
    prob[i,c] <- phi[i,c] / sum(phi[i, 1:Categories])
}
log(phi[i,2]) <- intercept[2] + slope1[2] * Covariate1[i]
prob[i,2] <- phi[i, 2] / (1 + phi[i, 2])
prob[i,1] <- 1 / (1 + phi[i, 2])
logit(prob[i,2]) <- intercept[2] + slope1[2] * Covariate1[i]
prob[i,1] <- 1 - prob[i,2]