簡體   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