似乎predict
产生了一个太大的标准错误。我用模型得到 0.820,parsnip
但用基本 R 模型得到 0.194。标准误差 0.194 似乎更合理,因为在我的预测上下大约 2*0.195 是置信区间的末端。我的问题/误解是什么?
library(parsnip)
library(dplyr)
# example data
mod_dat <- mtcars %>%
as_tibble() %>%
mutate(cyl_8 = as.numeric(cyl == 8)) %>%
select(mpg, cyl_8)
parsnip_mod <- logistic_reg() %>%
set_engine("glm") %>%
fit(as.factor(cyl_8) ~ mpg, data = mod_dat)
base_mod <- glm(as.factor(cyl_8) ~ mpg, data = mod_dat, family = "binomial")
parsnip_pred <- tibble(mpg = 18) %>%
bind_cols(predict(parsnip_mod, new_data = ., type = 'prob'),
predict(parsnip_mod, new_data = ., type = 'conf_int', std_error = T)) %>%
select(!ends_with("_0"))
base_pred <- predict(base_mod, tibble(mpg = 18), se.fit = T, type = "response") %>%
unlist()
# these give the same prediction but different SE
parsnip_pred
#> # A tibble: 1 x 5
#> mpg .pred_1 .pred_lower_1 .pred_upper_1 .std_error
#> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 18 0.614 0.230 0.895 0.820
base_pred
#> fit.1 se.fit.1 residual.scale
#> 0.6140551 0.1942435 1.0000000
由reprex 包(v0.3.0)于 2020-06-04 创建
--编辑--
正如@thelatemail 和@Limey 所说,使用type="link"
基本模型将给出logit 标度的标准误差(0.820)。但是,我想要概率尺度上的标准误差。我缺少的parsnip
文档中有一个选项吗?我想用parsnip
.