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
)
library(beezdemand)
library(dplyr)
## ----fitcurves-example, eval = FALSE------------------------------------------
# # Old approach
# results <- FitCurves(
# dat = apt,
# equation = "hs",
# k = 2,
# xcol = "x",
# ycol = "y",
# idcol = "id"
# )
#
# # results is a data.frame with all parameters
# head(results)
## ----fit-demand-fixed-example-------------------------------------------------
# New approach
fit <- fit_demand_fixed(
data = apt,
equation = "hs",
k = 2,
x_var = "x",
y_var = "y",
id_var = "id"
)
# fit is a structured S3 object
print(fit)
## ----extract-old, eval = FALSE------------------------------------------------
# # FitCurves returns a data frame directly
# results <- FitCurves(apt, "hs", k = 2)
# q0_values <- results$Q0d
# alpha_values <- results$Alpha
## ----extract-new--------------------------------------------------------------
# Use tidy() for a tibble of coefficients
fit <- fit_demand_fixed(apt, equation = "hs", k = 2)
coefs <- tidy(fit)
head(coefs)
# Or access the results data frame directly
head(fit$results)
## ----stats-old, eval = FALSE--------------------------------------------------
# # Manual calculation required
# results <- FitCurves(apt, "hs", k = 2)
# n_converged <- sum(!is.na(results$Alpha))
# mean_r2 <- mean(results$R2, na.rm = TRUE)
## ----stats-new----------------------------------------------------------------
# Use glance() for model-level statistics
fit <- fit_demand_fixed(apt, equation = "hs", k = 2)
glance(fit)
# Or use summary() for comprehensive output
summary(fit)
## ----pred-old, eval = FALSE---------------------------------------------------
# # Required detailed = TRUE and manual extraction
# results <- FitCurves(apt, "hs", k = 2, detailed = TRUE)
# # Predictions stored in list element
# predictions <- results$newdats # List of data frames
## ----pred-new-----------------------------------------------------------------
# Use predict() method
fit <- fit_demand_fixed(apt, equation = "hs", k = 2)
# Predict at new prices
new_prices <- data.frame(x = c(0, 0.5, 1, 2, 5, 10))
preds <- predict(fit, newdata = new_prices)
head(preds)
## ----plot-old, eval = FALSE---------------------------------------------------
# # Used separate PlotCurves() function
# results <- FitCurves(apt, "hs", k = 2, detailed = TRUE)
# PlotCurves(results)
## ----plot-new, fig.width = 6, fig.height = 4----------------------------------
# Use plot() method directly on the fit object
fit <- fit_demand_fixed(apt, equation = "hs", k = 2)
# Plot first 5 subjects
plot(fit, ids = unique(apt$id)[1:5], facet = TRUE)
## ----post-fit-workflow--------------------------------------------------------
fit <- fit_demand_fixed(apt, equation = "hs", k = 2)
augment(fit) |> head()
check_demand_model(fit)
plot_residuals(fit)$fitted
## ----systematicity-wrapper, eval = FALSE--------------------------------------
# sys <- check_systematic_demand(apt)
# head(sys$results)
## ----agg-example--------------------------------------------------------------
# Fit to mean data
fit_mean <- fit_demand_fixed(apt, equation = "hs", k = 2, agg = "Mean")
tidy(fit_mean)
## ----param-space--------------------------------------------------------------
# Fit in log10 space
fit_log <- fit_demand_fixed(
apt,
equation = "hs",
k = 2,
param_space = "log10"
)
# tidy() can report in either scale
tidy(fit_log, report_space = "log10") |> head()
tidy(fit_log, report_space = "natural") |> head()
## ----suppress-warning, eval = FALSE-------------------------------------------
# # Suppress deprecation warning temporarily
# rlang::with_options(
# lifecycle_verbosity = "quiet",
# FitCurves(apt, "hs", k = 2)
# )
## ----session-info-------------------------------------------------------------
sessionInfo()
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.