Created
June 17, 2022 12:19
-
-
Save MJacobs1985/6541f513e8811c6e1ac88484efec9f4d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| rm(list = ls()) | |
| library(brms) | |
| library(dplyr) | |
| library(ggplot2) | |
| library(grid) | |
| library(gridExtra) | |
| library(bayesplot) | |
| zinb <- read.csv("http://stats.idre.ucla.edu/stat/data/fish.csv") | |
| zinb$camper <- factor(zinb$camper, labels = c("no", "yes")) | |
| head(zinb) | |
| skimr::skim(zinb) | |
| ggplot(zinb, | |
| aes(x=xb, y=zg, color=as.factor(livebait)))+ | |
| geom_point()+ | |
| facet_wrap(~camper)+ | |
| labs(color="LiveBait")+ | |
| theme_bw() | |
| ggplot(zinb, | |
| aes(x=xb, y=zg, | |
| size=count, | |
| color=as.factor(livebait)))+ | |
| geom_point()+ | |
| facet_wrap(~camper)+ | |
| labs(color="LiveBait")+ | |
| theme_bw() | |
| ggplot(zinb, | |
| aes(x=count, | |
| fill=camper))+ | |
| geom_bar(position="dodge")+ | |
| theme_bw() | |
| ggplot(zinb, | |
| aes(x=count, | |
| fill=camper))+ | |
| geom_bar(position="dodge")+ | |
| theme_bw() + facet_wrap(~persons, | |
| scales="free") | |
| ggplot(zinb, | |
| aes(y=count, | |
| fill=as.factor(child)))+ | |
| geom_boxplot(alpha=0.5)+ | |
| ylim(0,50)+ | |
| theme_bw()+facet_wrap(~nofish) | |
| get_prior(count ~ persons + child + camper, | |
| data = zinb, | |
| family = zero_inflated_poisson("log")) | |
| summary(zinb$count) | |
| fit_zinb1 <- brm(count ~ persons + | |
| child + | |
| camper, | |
| data = zinb, | |
| prior=c( | |
| prior(normal(34, 5), class = Intercept), | |
| prior(normal(40, 3), class = b, coef=camperyes), | |
| prior(normal(20, 4), class = b, coef=child), | |
| prior(normal(20, 8), class = b, coef=persons), | |
| prior(gamma(5, 5), class = zi)), | |
| family = zero_inflated_poisson("log"), | |
| chains=4, cores=4) | |
| fit_zinb1$prior | |
| summary(fit_zinb1) | |
| plot(fit_zinb1) | |
| pp_check(fit_zinb1, ndraws=100) | |
| pp_check(fit_zinb1, type = "rootogram") | |
| pp_check(fit_zinb1, type = "error_hist", ndraws = 11) | |
| pp_check(fit_zinb1, type = "scatter_avg", ndraws = 100) | |
| pp_check(fit_zinb1, type = "stat_2d") | |
| pp_check(fit_zinb1, type = "loo_pit") | |
| y<-zinb$count | |
| yrep<-posterior_predict(fit_zinb1 ) | |
| ppc_boxplot(y, yrep[1:8, ]) | |
| ppc_dens(y, yrep[200:202, ]) | |
| ppc_freqpoly(y, yrep[1:3,], alpha = 0.1, size = 1, binwidth = 5) | |
| group<-zinb$camper | |
| ppc_dens_overlay(y, yrep[1:25,]) | |
| ppc_ecdf_overlay(y, yrep[sample(nrow(yrep), 25), ]) | |
| ppc_hist(y, yrep[1:8, ]) | |
| ppc_boxplot(y, yrep[1:8, ]) | |
| ppc_dens(y, yrep[200:202, ]) | |
| ppc_freqpoly(y, yrep[1:3,], alpha = 0.1, size = 1, binwidth = 5) | |
| ppc_freqpoly_grouped(y, yrep[1:3,], group) + yaxis_text() | |
| ppc_dens_overlay_grouped(y, yrep[1:25, ], group = group) | |
| ppc_ecdf_overlay_grouped(y, yrep[1:25, ], group = group) | |
| ppc_violin_grouped(y, yrep, group, size = 1.5) | |
| ppc_violin_grouped(y, yrep, group, alpha = 0, y_draw = "points", y_size = 1.5) | |
| ppc_violin_grouped(y, yrep, group, alpha = 0, y_draw = "both", | |
| y_size = 1.5, y_alpha = 0.5, y_jitter = 0.33) | |
| ppc_stat(y, yrep) | |
| q25 <- function(y) quantile(y, 0.25) | |
| ppc_stat(y, yrep, stat = "q25") | |
| ppc_stat(y, yrep, stat = function(y) quantile(y, 0.25)) | |
| ppc_stat_grouped(y, yrep, group) | |
| ppc_stat_grouped(y, yrep, group) + yaxis_text() | |
| bayesplot_theme_set(ggplot2::theme_linedraw()) | |
| color_scheme_set("viridisE") | |
| ppc_stat_2d(y, yrep, stat = c("mean", "sd")) | |
| bayesplot_theme_set(ggplot2::theme_grey()) | |
| color_scheme_set("brewer-Paired") | |
| ppc_stat_2d(y, yrep, stat = c("median", "mad")) | |
| theme_set(theme_bw()) | |
| color_scheme_set("brightblue") | |
| ppc_intervals(y, yrep) | |
| ppc_intervals(y, yrep, size = 1.5, fatten = 0) | |
| ppc_ribbon(y, yrep) | |
| ppc_ribbon(y, yrep, y_draw = "points") | |
| ppc_ribbon(y, yrep, y_draw = "both") | |
| ppc_error_hist(y, yrep[1:3, ]) | |
| ppc_error_hist_grouped(y, yrep[1:3, ], group) | |
| ppc_error_scatter(y, yrep[10:14, ]) | |
| ppc_error_scatter_avg(y, yrep) | |
| ppc_scatter_avg_grouped(y, yrep, group, facet_args = list(scales = "free_x")) | |
| ppc_bars(y, yrep) | |
| ppc_bars_grouped(y, yrep, group, prob = 0.5, freq = FALSE) | |
| ppc_rootogram(y, yrep) | |
| ppc_rootogram(y, yrep, prob = 0) | |
| loo1 <- loo(fit_zinb1, save_psis = TRUE, cores = 4) | |
| psis1 <- loo1$psis_object | |
| lw <- weights(psis1) | |
| ppc_loo_pit_overlay(y, yrep, lw = lw) | |
| ppc_loo_pit_qq(y, yrep, lw = lw) | |
| ppc_loo_pit_qq(y, yrep, lw = lw, compare = "normal") | |
| keep_obs <- 1:50 | |
| ppc_loo_intervals(y, yrep, psis_object = psis1, subset = keep_obs) | |
| ppc_loo_intervals(y, yrep, psis_object = psis1, subset = keep_obs, | |
| order = "median") | |
| ppc_ribbon_grouped(y, yrep, x = zinb$persons, group, y_draw = "both") + | |
| ggplot2::scale_x_continuous(breaks = pretty) | |
| ce<-conditional_effects(fit_zinb1) | |
| p1<-plot(ce, rug=TRUE, theme=theme_bw()) | |
| p1$persons | |
| grid.arrange(p1$persons, | |
| p1$child, | |
| p1$camper, | |
| ncol=3) | |
| get_prior(count ~ persons + child + camper, | |
| zi ~ child, | |
| data = zinb, family = zero_inflated_poisson()) | |
| fit_zinb2 <- brm(bf(count ~ persons + | |
| child + | |
| camper, | |
| zi ~ child), | |
| data = zinb, chains=4, cores=4) | |
| fit_zinb2 <- brm(bf(count ~ persons + | |
| child + | |
| camper, | |
| zi ~ child), | |
| prior=c( | |
| prior(normal(34, 5), class = Intercept), | |
| prior(normal(40, 3), class = b, coef=camperyes), | |
| prior(normal(20, 4), class = b, coef=child), | |
| prior(normal(20, 8), class = b, coef=persons), | |
| prior(gamma(5, 5), class = zi )), | |
| family = zero_inflated_poisson("log"), | |
| data = zinb, chains=4, cores=4) | |
| fit_zinb2$prior | |
| summary(fit_zinb2) | |
| ce2<-conditional_effects(fit_zinb1) | |
| p2<-plot(ce2, rug=TRUE, theme=theme_bw()) | |
| grid.arrange(p1$persons, | |
| p1$child, | |
| p1$camper, | |
| p2$persons, | |
| p2$child, | |
| p2$camper, | |
| ncol=3) | |
| LOO(fit_zinb1, fit_zinb2) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment