Как использовать взвешенное скользящее среднее с geom_smooth в ggplot2?

Я хотел бы использовать средневзвешенное сглаживание в ggplot2::geom_smooth(), но это не один из разрешенных вариантов для method =. Можно ли это сделать, чтобы вычислить сглаженные значения и добавить их в качестве слоя на диаграмму рассеяния ggplot?

Образец данных:

set.seed(0)
x <- seq(0, 50, 0.1)
prob <- - x*(x - 50)/1000
tmp_df <- data.frame(x, prob)
tmp_df <- tmp_df[rep(1:nrow(tmp_df), times = 10),]
tmp_df$success <- rbinom(n = nrow(tmp_df), size = 1, prob = tmp_df$prob)

И используя method = 'gam' для этих данных:

ggplot(tmp_df, aes(x = x, y = success)) +
    geom_point(position = position_jitter(width = 0.2, height = 0.2), size = 0.1) +
    geom_smooth()

производство:

введите здесь описание изображения


person Alex    schedule 25.01.2017    source источник
comment
stackoverflow.com/questions/13840761/ ?   -  person hrbrmstr    schedule 25.01.2017
comment
Это более или менее то, что делает method = 'loess', если я понимаю, что вы хотите.   -  person alistaire    schedule 25.01.2017
comment
какие весы? вероятности успеха?   -  person Sandipan Dey    schedule 25.01.2017