我尝试使用mvabund包中的manyglm函数来测试我的三个实验因子(参见example_data1.csv)是否会影响多变量数据集(在同一实验单元上测量的5个变量,参见example_data2.csv)。所有数据都是正的、连续的数值变量。解释变量是因子。以下是示例数据集:(https://github.com/dwarton/mvabund/issues/117)
我运行的代码是:
data1<-read.csv("example_data1.csv")%>%
column_to_rownames(var = "obs")%>%
as.matrix()
data2<-read.csv("example_data2.csv")
manyglm
set.seed(210)
mod1 <- manyglm(data1 ~ factor1 * factor2 * factor3,
family=Gamma(link = "log"),
data=data2
)
当family = Gamma时,我得到以下错误:
Error in if (any(z$var.est == 0)) { :
missing value where TRUE/FALSE needed
所有单变量关系都很好:
model<-glm(variable1~ factor1 x factor2 x factor3, family=Gamma(link = "log"),data = data).
我认为这可能与这里详细描述的估计有关:https://github.com/dwarton/mvabund/issues/91
我想知道是否有人遇到过类似的问题,他们是如何解决的。
其他分布(负二项分布,possion分布)工作/运行,但它们不是我的数据的正确分布。我还尝试了family =“tweedie”(这可能适合我的数据),因为根据mvabund文档,这应该可以工作:https://environmentalcomputing.net/statistics/glms/glm-2/,但根据CRAN文档不支持。
我还尝试了manyglm()模型,每个因素都是单独的,似乎是因素2导致了这个问题。
1条答案
按热度按时间lxkprmvk1#
我不熟悉mvabund或manyglm,所以你必须检查这是否是你想要的: