Nothing
## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(
echo = TRUE,
collapse = TRUE,
comment = "#>"
)
## -----------------------------------------------------------------------------
fakenews <- bayesrules::fake_news[, c("type", "title_has_excl", "title_words", "negative")]
## -----------------------------------------------------------------------------
library(R2BayesX)
## ----eval=FALSE---------------------------------------------------------------
# model1 <- bayesx(
# formula = y ~ x1 + x2 + x3,
# data = data.set,
# family = "binomial"
# )
## -----------------------------------------------------------------------------
fakenews$titlehasexcl <- as.factor(fakenews$title_has_excl)
## -----------------------------------------------------------------------------
fakenews$typeFAKE <- fakenews$type == "fake"
## ----fig = TRUE---------------------------------------------------------------
# Is there a link between the fakeness and whether the title has an exclamation mark?
table(fakenews$title_has_excl, fakenews$typeFAKE)
# For the quantitative variables, look at boxplots on fake vs real
boxplot(fakenews$title_words ~ fakenews$typeFAKE)
boxplot(fakenews$negative ~ fakenews$typeFAKE)
## ----fig = TRUE---------------------------------------------------------------
# Produce the BayesX output
bayesx.output <- bayesx(formula = typeFAKE ~ titlehasexcl + title_words + negative,
data = fakenews,
family = "binomial",
method = "MCMC",
iter = 15000,
burnin = 5000)
summary(bayesx.output)
confint(bayesx.output)
## ----fig = TRUE, fig.width = 5, fig.height = 10-------------------------------
# Traces can be obtained separately
plot(bayesx.output,which = "coef-samples")
## ----fig = TRUE---------------------------------------------------------------
# And the density plots one-by-one
oldpar <- par(mfrow = c(2, 2))
plot(density(samples(bayesx.output)[,"titlehasexclTRUE"]),main="Title Has Excl")
plot(density(samples(bayesx.output)[,"title_words"]),main="Title Words")
plot(density(samples(bayesx.output)[,"negative"]),main="Negative")
par(oldpar)
## ----fig = TRUE---------------------------------------------------------------
# Fit model - note similarity with bayesx syntax
glm.output <- glm(formula = typeFAKE ~ titlehasexcl + title_words + negative,
data = fakenews,
family = "binomial")
# Summarise output
summary(glm.output)
# Perform ANOVA on each variable in turn
drop1(glm.output,test="Chisq")
## -----------------------------------------------------------------------------
esdcomp <- faraway::esdcomp
## ----echo=FALSE---------------------------------------------------------------
library(R2BayesX)
## ----eval=FALSE---------------------------------------------------------------
# model1 <- bayesx(formula = y ~ x1 + x2 + x3 + offset(w),
# data = data.set,
# family="poisson")
## -----------------------------------------------------------------------------
esdcomp$logvisits <- log(esdcomp$visits)
## ----fig = TRUE---------------------------------------------------------------
# Compute the ratio
esdcomp$ratio <- esdcomp$complaints / esdcomp$visits
# Plot the link with revenue
plot(esdcomp$revenue,esdcomp$ratio)
# Use boxplots against residency and gender
boxplot(esdcomp$ratio ~ esdcomp$residency)
boxplot(esdcomp$ratio ~ esdcomp$gender)
## ----fig = TRUE---------------------------------------------------------------
# Fit model - note similarity with glm syntax
esdcomp$logvisits <- log(esdcomp$visits)
bayesx.output <- bayesx(formula = complaints ~ residency + gender + revenue,
offset = logvisits,
data = esdcomp,
family = "poisson")
# Summarise output
summary(bayesx.output)
## ----fig = TRUE, fig.width = 5, fig.height = 10-------------------------------
# An overall plot of sample traces and density estimates
# plot(samples(bayesx.output))
# Traces can be obtained separately
plot(bayesx.output,which = "coef-samples")
## ----fig = TRUE---------------------------------------------------------------
# And the density plots one-by-one
oldpar <- par(mfrow = c(2, 2))
plot(density(samples(bayesx.output)[, "residencyY"]), main = "Residency")
plot(density(samples(bayesx.output)[, "genderM"]), main = "Gender")
plot(density(samples(bayesx.output)[, "revenue"]), main = "Revenue")
par(oldpar)
## ----fig = TRUE---------------------------------------------------------------
# Fit model - note similarity with bayesx syntax
esdcomp$log.visits <- log(esdcomp$visits)
glm.output <- glm(formula = complaints ~ residency + gender + revenue,
offset = logvisits,
data = esdcomp,
family = "poisson")
# Summarise output
summary(glm.output)
# Perform ANOVA on each variable in turn
drop1(glm.output, test = "Chisq")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.