我的因变量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
1条答案
按热度按时间tvokkenx1#
betareg
不处理混合模型/随机效应,因此它的公式处理器变得混乱。你可以试试glmmTMB
:由于
temp
是一个受试者内变量,并且您有两个以上的水平(因此受试者内变异不会与残差变异混淆),您可以尝试来解释温度效应的个体差异。
我相信
GLMMadaptive
和brms
包也可以处理带有Beta分布响应的混合模型(尽管Mixed Models task view在这一点上不太清楚)。PS,使用
descdist
和fitdist
来描述响应的 * 边际 *(总体)分布没有意义;你需要评估数据的 * 条件 * 分布是否足够好地遵循某些特定的假设分布……