提问人:NJ Oram 提问时间:9/28/2023 更新时间:9/29/2023 访问量:37
manyglm(软件包 mvabund)在使用 family = Gamma(link = log) 时出现错误
manyglm (package mvabund) giving error when using family = Gamma(link = log)
问:
我正在尝试测试我的三个实验因素(见example_data1.csv)是否影响多变量数据集(在同一实验单元上测量的 5 个变量,见 example_data2.csv),使用 mvabund 包中的 manyglm 函数。所有数据都是正数、连续的数值变量。解释变量是因子。以下是示例数据集: (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
我想知道是否有人遇到过类似的问题以及他们是如何解决的。
其他分布(负二项式、占位)可以工作/运行,但它们不是我的数据的正确分布。我还尝试过 family = “tweedie”(这可能适合我的数据),因为这应该根据此处的 mvabund 文档工作:https://environmentalcomputing.net/statistics/glms/glm-2/,但根据 CRAN 文档不支持它。
我还单独尝试了每个因素的 manyglm() 模型,似乎因素 2 导致了这个问题。
答:
0赞
Sascha
9/29/2023
#1
我不熟悉 mvabund 或 manyglm,因此您必须检查这是否在做您想要的:
# Load packages
library(tidyr)
library(mvabund)
# Import data
data1<-read.csv("example_data1.csv") %>%
select(-obs)
data2<-read.csv("example_data2.csv")
# Process data
data1 <- mvabund(data1)
is.mvabund(data1)
data2 <- as.data.frame(data2)
#Merge
data <- merge(data1, data2, by.x = "row.names", by.y = "row.names")
# Fit a multivariate model using mvabund with multiple response variables
set.seed(210)
mod1 <- manyglm(data1 ~ factor1 * factor2 * factor3,
family = Gamma(link = "log"),
data = data
)
# See Model
summary(mod1)
plot(mod1)
评论
0赞
NJ Oram
10/25/2023
不 - 不幸的是,这不是我需要的,因为问题仍然存在,即估计失败:如果中的错误 (any(z$var.est == 0)) { :需要 TRUE/FALSE 的缺失值
上一个:伽玛编码如何增加阴影细节?
评论