Я наблюдаю странное явление при использовании arm :: bayesglm (). Если я создаю пересчитанный файл data.frame непосредственно в вызове функции, он создаст оценки с центром вокруг нуля, а если я сначала создаю пересчитанный файл data.frame, а затем передам его, похоже, получатся правильные оценки:
> bayesglm(I(Species == 'versicolor') ~ I(Sepal.Width <= 2.9), binomial(), data = iris %>% sample_frac(1, replace = T)) %>% tidy(exp = T)
# A tibble: 2 x 5
term estimate std.error statistic p.value
<chr> <dbl> <dbl> <dbl> <dbl>
1 (Intercept) 0.458 0.215 -3.63 0.000278
2 I(Sepal.Width <= 2.9)TRUE 1.29 0.355 0.716 0.474
> local({
+ DF <- iris %>% sample_frac(1, replace = T)
+ bayesglm(I(Species == 'versicolor') ~ I(Sepal.Width <= 2.9), binomial(), data = DF) %>% tidy(exp = T)
+ })
# A tibble: 2 x 5
term estimate std.error statistic p.value
<chr> <dbl> <dbl> <dbl> <dbl>
1 (Intercept) 0.212 0.278 -5.57 0.0000000256
2 I(Sepal.Width <= 2.9)TRUE 7.79 0.379 5.42 0.0000000593
Не пересчитанные оценки:
bayesglm(I(Species == 'versicolor') ~ I(Sepal.Width <= 2.9), binomial(), data = iris) %>% tidy(exp = T)
# A tibble: 2 x 5
term estimate std.error statistic p.value
<chr> <dbl> <dbl> <dbl> <dbl>
1 (Intercept) 0.214 0.270 -5.71 0.0000000114
2 I(Sepal.Width <= 2.9)TRUE 6.72 0.377 5.05 0.000000442
и аналогичны версии, в которой data.frame передается после создания.
Похоже, проблема не возникает, если используя простой glm ().