Nothing
## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
echo = TRUE,
collapse = TRUE,
comment = "#>",
dev = "png",
dpi = 144,
fig.width = 7,
fig.height = 5,
warning = FALSE,
message = FALSE
)
## ----cran-install, eval = FALSE-----------------------------------------------
# install.packages("beezdemand")
#
# library(beezdemand)
## ----git-install, eval = FALSE------------------------------------------------
# install.packages("devtools")
#
# devtools::install_github("brentkaplan/beezdemand", build_vignettes = TRUE)
#
# library(beezdemand)
## ----gitdev-install, eval = FALSE---------------------------------------------
# devtools::install_github("brentkaplan/beezdemand@develop")
## ----packages, include = FALSE, echo = FALSE----------------------------------
# Package dependencies are specified in DESCRIPTION
# They should already be installed when building vignettes
library(dplyr)
library(tidyr)
library(ggplot2)
library(beezdemand)
## ----example-data-set, echo=FALSE, results='asis'-----------------------------
knitr::kable(
apt[c(1:10, 17:26), ],
caption = "Example APT (Alcohol Purchase Task) data in long format"
)
## ----example-wide-------------------------------------------------------------
## the following code takes the apt data, which are in long format, and converts
## to a wide format that might be seen from data collection software
wide <- as.data.frame(tidyr::pivot_wider(apt, names_from = x, values_from = y))
colnames(wide) <- c("id", paste0("price_", seq(1, 16, by = 1)))
knitr::kable(
wide[1:5, 1:10],
caption = "Example data in wide format (first 5 participants, first 10 prices)"
)
## ----example-pivot------------------------------------------------------------
long <- pivot_demand_data(
wide,
format = "long",
x_values = c(0, 0.5, 1, 1.50, 2, 2.50, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20)
)
knitr::kable(
head(long),
caption = "Wide to long conversion using pivot_demand_data()"
)
## ----example-wide-manual------------------------------------------------------
## make a copy for the manual approach
wide_manual <- wide
newcolnames <- c("id", "0", "0.5", "1", "1.50", "2", "2.50", "3",
"4", "5", "6", "7", "8", "9", "10", "15", "20")
colnames(wide_manual) <- newcolnames
## ----example-w2l-manual-------------------------------------------------------
long_manual <- tidyr::pivot_longer(wide_manual, -id,
names_to = "price", values_to = "consumption")
long_manual <- dplyr::arrange(long_manual, id)
colnames(long_manual) <- c("id", "x", "y")
long_manual$x <- as.numeric(long_manual$x)
long_manual$y <- as.numeric(long_manual$y)
## ----descriptive--------------------------------------------------------------
desc <- get_descriptive_summary(apt)
knitr::kable(
desc$statistics,
caption = "Descriptive statistics by price point",
digits = 2
)
## ----descriptive-plot, fig.width=7, fig.height=5------------------------------
plot(desc)
## ----change-data, eval = FALSE------------------------------------------------
# ChangeData(apt, nrepl = 1, replnum = 0.01, rem0 = FALSE, remq0e = FALSE, replfree = NULL)
## ----unsystematic, eval=FALSE-------------------------------------------------
# check_systematic_demand(
# data = apt,
# trend_threshold = 0.025,
# bounce_threshold = 0.1,
# max_reversals = 0,
# consecutive_zeros = 2
# )
## ----unsystematic-output, echo=FALSE, results='asis'--------------------------
unsys <- check_systematic_demand(
data = apt,
trend_threshold = 0.025,
bounce_threshold = 0.1,
max_reversals = 0,
consecutive_zeros = 2
)
knitr::kable(
head(unsys$results, 5),
caption = "Systematicity check results (first 5 participants)"
)
## ----empirical, eval=FALSE----------------------------------------------------
# get_empirical_measures(apt)
## ----empirical-output, echo=FALSE, results='asis'-----------------------------
knitr::kable(
head(get_empirical_measures(apt)$measures, 5),
caption = "Empirical demand measures (first 5 participants)",
digits = 3
)
## ----zero-warning, eval=FALSE-------------------------------------------------
# Warning message:
# Zeros found in data not compatible with equation! Dropping zeros!
## ----hs, eval=FALSE-----------------------------------------------------------
# fit_demand_fixed(data = apt, equation = "hs", k = 2)
## ----hs-setup, include=FALSE--------------------------------------------------
fit_hs <- fit_demand_fixed(apt, equation = "hs", k = 2)
hs_tidy <- tidy(fit_hs)
hs_glance <- glance(fit_hs)
hs_confint <- confint(fit_hs)
hs_aug <- augment(fit_hs)
hs_diag <- check_demand_model(fit_hs)
## ----hs-output, echo=FALSE, results='asis'------------------------------------
knitr::kable(head(hs_tidy, 10), caption = "Parameter estimates (`tidy()`, first 10 rows)")
knitr::kable(hs_glance, caption = "Model summary (`glance()`)")
knitr::kable(head(hs_confint, 10), caption = "Confidence intervals (`confint()`, first 10 rows)")
knitr::kable(head(hs_aug, 10), caption = "Fitted values and residuals (`augment()`, first 10 rows)")
## ----hs-diagnostics-----------------------------------------------------------
hs_diag
## ----hs-plot, fig.width=7, fig.height=4---------------------------------------
plot(fit_hs)
## ----hs-residuals, fig.width=7, fig.height=4----------------------------------
plot_residuals(fit_hs)$fitted
## ----alpha-star, echo=TRUE----------------------------------------------------
## alpha_star is included in tidy() output for HS and Koff equations
hs_tidy[hs_tidy$term == "alpha_star", c("id", "term", "estimate", "std.error")]
## ----koff, eval=FALSE---------------------------------------------------------
# fit_demand_fixed(data = apt, equation = "koff", k = 2)
## ----simplified, eval=FALSE---------------------------------------------------
# fit_demand_fixed(data = apt, equation = "simplified")
## ----agg-mean, eval = FALSE---------------------------------------------------
# fit_demand_fixed(data = apt, equation = "hs", k = 2, agg = "Mean")
## ----agg-pooled, eval = FALSE-------------------------------------------------
# fit_demand_fixed(data = apt, equation = "hs", k = 2, agg = "Pooled")
## ----share, eval=FALSE--------------------------------------------------------
# fit_demand_fixed(data = apt, equation = "hs", k = "share")
## ----share-setup, include=FALSE-----------------------------------------------
fit_share <- fit_demand_fixed(apt, equation = "hs", k = "share")
share_tidy <- tidy(fit_share)
share_glance <- glance(fit_share)
## ----share-output, echo=FALSE, results='asis'---------------------------------
knitr::kable(head(share_tidy, 10), caption = "Parameter estimates (`tidy()`, first 10 rows)")
knitr::kable(share_glance, caption = "Model summary (`glance()`)")
## ----learn, eval=FALSE--------------------------------------------------------
# ## Modern interface (recommended)
# ?check_systematic_demand
#
# ## Legacy interface (still available)
# ?CheckUnsystematic
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.