R语言 在模型中拟合包含受试者内变量的β分布:请求的公式

pbpqsu0x  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(137)

我的因变量st的分布遵循Beta分布(通过命令descdist可见)。现在我必须创建我的模型。唯一的问题是,我的实验设计是3x2,其中我有一个IV称为temp,一个在参与者(不同时间的相同参与者)内测量的3个水平的因子,和一个IV称为cond,一个作为参与者间效应(两个不同的组)测量的2个水平的因子。我想同时看到主效应和交互效应。到目前为止,我已经将betareg()公式应用于beta分布,然后用fitdist()拟合分布。唯一的问题是,我不知道如何在betareg()公式中表示我的临时变量是within,而我的cond变量是betweensubjects。你能帮帮我吗?
我试着应用这个公式:

MSTb=betareg(scaledst~temp*cond, data=ds.cy)

然后方差分析

Anova(MSTB)

它给了我一个结果,但我认为它没有考虑重复测量的情况。
但应用这个公式并不奏效:

MSTb=betareg(scaledst~temp*cond+(1|id), data=ds.cy)

其中“id”是要过滤的参与者的代码。它给了我这个错误:误差

`contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
  the contrast can be applied only to factors variable with 2 or more levels 
In addition: Warning message:
In Ops.factor(1, id) : ‘|’ not meaningful for factors

也不是这个:

betareg(scaledst~temp*cond+(1+temp|id), data=ds.cy)

Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
  contrasts can be applied only to factors with 2 or more levels
In addition: Warning messages:
1: In Ops.factor(1, temp) : ‘+’ not meaningful for factors
2: In Ops.factor(1 + temp, id) : ‘|’ not meaningful for factors
tvokkenx

tvokkenx1#

betareg不处理混合模型/随机效应,因此它的公式处理器变得混乱。你可以试试glmmTMB

library(glmmTMB)
MSTb <- glmmTMB(scaledst~temp*cond+(1|id), data=ds.cy, family = beta_family)

由于temp是一个受试者内变量,并且您有两个以上的水平(因此受试者内变异不会与残差变异混淆),您可以尝试

scaledst~temp*cond+(temp|id)

来解释温度效应的个体差异。
我相信GLMMadaptivebrms包也可以处理带有Beta分布响应的混合模型(尽管Mixed Models task view在这一点上不太清楚)。
PS,使用descdistfitdist来描述响应的 * 边际 *(总体)分布没有意义;你需要评估数据的 * 条件 * 分布是否足够好地遵循某些特定的假设分布……

相关问题