当我尝试将我的数据集拟合到对数族时出现错误?

I get an error when I try to fit my dataset to a logarithmic family?

我有一个数据框:

               Incidence <- data.frame(Inc. = c(0.4400, 0.5102, 0.2979, 0.2667, 0.0000, 0.0000,
                             0.0200, 0.0213, 0.0000, 0.0238, 0.0256, 0.0000,
                             0.0000, 0.1538, 0.0417, 0.0000, 0.0734, 0.0000,
                             0.0000, 0.0000, 0.1293, 0.0072, 0.0000, 0.0078,
                             0.0000, 0.0000, 0.0000, 0.0068, 0.0000, 0.0000,
                             0.0068), 
                    Habitat = c("Crop", "Crop", "Crop", "Crop", "Edge", "Edge", 
                                "Edge", "Edge", "Edge", "Edge", "Edge", "Edge", 
                                "Edge", "Edge", "Edge", "Oakwood", "Oakwood", 
                                "Oakwood", "Oakwood", "Oakwood", "Oakwood", 
                                "Oakwood", "Oakwood", "Wasteland", "Wasteland", 
                                "Wasteland", "Wasteland", "Wasteland", "Wasteland", 
                                "Wasteland", "Wasteland"), 
                    Season = c("Summer", "Summer", "Summer", "Summer", "Autumn", 
                               "Autumn", "Autumn", "Autumn", "Spring", "Spring", 
                               "Spring", "Spring", "Summer", "Summer", "Summer", 
                               "Autumn", "Autumn", "Autumn", "Autumn", "Spring",
                               "Spring", "Spring", "Spring", "Autumn", "Autumn", 
                               "Autumn", "Autumn", "Spring", "Spring", "Spring", 
                               "Spring"), 
                    Site = c("M1", "M2", "M3", "M4", "L1", "L2", "L3", "L4", 
                             "L1", "L2", "L3", "L4", "L1", "L2", "L3", "Q1", 
                             "Q2", "Q3", "Q4", "Q1", "Q2", "Q3", "Q4", "E1", 
                             "E2", "E3", "E4", "E1", "E2", "E3", "E4"))

我已经使用包 rriskdistribution 检查了我的数据分布。这些结果表明我的数据服从对数分布。

我尝试使用对数族制作广义混合线性模型 (glmm):

     GlM_habitats = lme4::glmer(Inc. ~ Habitat +(1|Season)+(1|Site), data = Incidence, family = Gamma(link = "inverse")) 

获取下一个输出:

    Error in model.frame.default(data = Incidence, drop.unused.levels = TRUE,  : invalid type (list) for variable 'Inc.'

我读到这个错误是因为我的数据集中有零值。正如您在上面看到的,我的数据集没有任何零值。我该如何解决这个问题?

提前致谢。

一方面,您的错误告诉您 Incidence 的数据类型不正确。这并不奇怪,因为 Incidence 是您的 data.frame,并且您可能想引用它的 ,称为 Inc.。所以你需要把电话改成

GlM_habitats = lme4::glmer(Inc. ~ Habitat +(1|Season)+(1|Site), data = Incidence, family = Gamma(link = "inverse"))

这会给你一个不同的错误:

non-positive values not allowed for the 'Gamma' family

这表示您正在为 gamma link 函数建模的变量 (Inc.) 中不允许使用零。伽马分布严格为正。零不能用它建模。

查看带有“许多”零值和其他正值的数据,我宁愿建议使用零 inflation 模型或障碍模型。