ggeffect() 不返回所有预测

ggeffect() Not Returning all Predictions

使用安全带(包含在 R 中)数据,我想要预测“front”的边际效应。这个变量有 170 个值。 ggeffect() 仅 return 对前值 400、500、600、...、1300 的预测。我怎样才能 return 所有的预测?

Seatbelts <- data.frame(Seatbelts)
head(Seatbelts)

Seatbelts <- Seatbelts[complete.cases(Seatbelts), ]

## 75% of the sample size
smp_size <- floor(0.75 * nrow(Seatbelts))

## set the seed to make your partition reproducible
set.seed(123)
train_ind <- sample(seq_len(nrow(Seatbelts)), size = smp_size)

train <- Seatbelts[train_ind, ]
test <- Seatbelts[-train_ind, ]

# glm()
m1 <- glm(DriversKilled  ~  front + rear + kms + PetrolPrice + 
              VanKilled + law,
          family=poisson(link = "log"),
          weights = drivers,
          data=train)

ggeffect(m1, terms = c("front"), typical = "average")

在幕后,函数 ggeffect 使用 effects 库中的 Effect 函数来获取其绘图数据。如果您有兴趣查看在特定变量的各个级别预测的实际数字,最好直接获取它们,因为它不是 ggeffect 到 return 任意预测列表的工作。

我们可以通过 xlevels 参数传递您选择的任何级别的预测和置信区间的良好数据框。

predictions <- effects::Effect("front", m1, xlevels = list(front = seq(400, 1300, 5)))

df <-  data.frame(front = predictions$x, 
                  fit   = exp(predictions$fit),
                  lower = exp(predictions$lower),
                  upper = exp(predictions$upper))

所以我们数据框的顶部是这样的:

head(df)
#>   front      fit    lower    upper
#> 1   400 68.16168 67.99573 68.32803
#> 2   405 68.62226 68.45703 68.78788
#> 3   410 69.08595 68.92146 69.25083
#> 4   415 69.55277 69.38904 69.71689
#> 5   420 70.02275 69.85979 70.18609
#> 6   425 70.49590 70.33373 70.65845

reprex package (v2.0.1)

创建于 2022-03-01