运行 R 中的 GLMER 时如何忽略特定因子水平?

How can I ignore a specific factor level when running a GLMER in R?

我是 运行 一名普通的 RSF,负责评估带 GPS 项圈的鹿对土地覆盖类型的使用情况。我有一个名为 Landcover_Type 的因子列,其中填充了数字 1-5,对应于特定的土地覆盖类型(即 2 = 木本、3 = 草本、4 = 水等)。如何在我的模型中排除水?

下面的代码指定了用作参考的因子水平,模型运行得很好。但是,我需要把水从考虑中去掉。

levels(pre_RSFpoints$Landcover_Type) 
pre_RSFpoints<-within(pre_RSFpoints, Landcover_Type <-relevel(Landcover_Type, ref = 2))

pre_model <- glmer(Used ~ Landcover_Type + (1|Id),family="binomial",data=pre_RSFpoints)
summary(pre_model)

提前致谢!

如果您不想创建新的数据框:

pre_model_nowater <- subset(pre_model, Landcover_Type != "4"))

您可以在 glmer:

中使用 subset= 参数
pre_model <- glmer(Used ~ Landcover_Type + (1|Id),   
    family="binomial", data=pre_RSFpoints,
    subset = (Landcover_Type != "4"))

顺便说一句,在使用以数字作为水平的因素时,您应该非常小心。在你升级之前,值之间的对应关系 ("1"="something"=1, "2"="woody"=2, "3"="herbaceous"=3) 是合理的,但之后它会被打乱 (" 2" 将是第一级,"1" 是第二级),如果您通过整数代码引用因子,您可能会搞砸。如果可能的话,最好将字符串保留为标签 ...

如果数据以数字代码形式出现,最好的处理方法是在读入数据后立即将它们转换回文本标签,使用 transform() (base R) 或mutate() (tidyverse),例如

pre_model <- transform(pre_model,
    Landcover_Type = factor(Landcover_Type, levels = 1:5,
              labels = c("something", "woody", "herbaceous", ...)))

此外,如果您正在进行栖息地偏好分析,您可能应该阅读 this thread, which refers to this journal article