繁体   English   中英

在 sjPlot package 的 plot_model() 中考虑偏移变量

[英]Account for offset variables in plot_model() of sjPlot package

我正在使用偏移量变量创建泊松分布广义线性 model(在我的例子中,狍子表现出警惕行为的秒数作为响应变量,总秒数停留在 plot 作为偏移量)。

这是一个可重现的样本,使用与我的案例类似的方式使用偏移量,修改自 Zuur 的生态混合效应模型:

library(glmmTMB)
Owls$NCalls <- Owls$SiblingNegotiation

library(lme4)
Formula <- formula(NCalls ∼ offset(logBroodSize) + SexParent * FoodTreatment + SexParent * ArrivalTime)
fit1 <- glm(Formula, data = Owls, family = poisson(link="log"))

(对于包之间的尴尬转换感到抱歉......我更习惯于 lme4 所以决定在 lme4 中使用 plot 同时使用来自 glmmTMB 的数据集)

所以现在,我想 plot 在 sjPlot package 中使用 plot_model() function 结果:

library(sjPlot)
plot_model(fit1, type="pred")

但是,绘制的结果不考虑 logBroodSize 变量,而是单独绘制偏移量。 为了使结果更有意义,我希望每个回归 plot 的 y 轴为 NCalls/LBroodSize。

这在我的案例中非常有用,因为我想最终将狍子的警惕行为表示为一个比例(警惕的秒数/发生的总时间)。

反正有这样做吗?

根据我之前看到的一个答案(我再也找不到来源),我已经尝试直接将偏移量变量添加到响应中,但是它没有用,仍然打开警告消息,即值是非-整数。

Formula.2 <- formula(NCalls/logBroodSize ∼ SexParent * FoodTreatment + SexParent * ArrivalTime)
fit2 <- glm(Formula.2, data = Owls, family = poisson(link="log"))

我还考虑过将我的数据集转换为高斯分布。 但是,由于我的数据包含很多0值,数据转换可能不是很理想。

谢谢!

偏移量不是统计“变量”。 它们被处理为已知/确定/固定值,并且没有得到与随机变量相同的统计处理。 从某种意义上说,在 RHS 上使用对数偏移量与在 LHS 上使用 BroodSize 作为分母是一样的。 在这两种情况下,都没有对 BroodSize 的估计,而是将其视为已知无误。

我刚刚尝试了我对拟泊松 model 的建议,它似乎允许在适当的比例下使用因变量进行绘图。 我还更改了公式 object 的创建方式,尽管我个人尝试将公式创建glm调用中,以便正确建立环境:

Formula <- NCalls/BroodSize ~ # tilde operator is an infix version of `formula`.
                 SexParent * FoodTreatment + SexParent * ArrivalTime
fit1 <- glm(Formula, data = Owls, family = quasipoisson(link="log"))
plot_model(fit1, type="pred")
#$SexParent
#
#$FoodTreatment
#
#$ArrivalTime

png();  plot_model(fit1, type="pred")$ArrivalTime ; dev.off()

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM