## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(tidy = FALSE)

## ----echo = FALSE-------------------------------------------------------------
library(YEAB)

## -----------------------------------------------------------------------------
data("DD_data")
norm_sv <- DD_data$norm_sv
delays <- DD_data$Delay

DD_data

## -----------------------------------------------------------------------------
# first, fit a linear model
lineal_m <- lm(norm_sv ~ delays)
# hyperbolic model
hyp_m <- hyperbolic_fit(norm_sv, delays, 0.1)
# exponential model
exp_m <- exp_fit(norm_sv, delays, 0.1)
AIC(lineal_m, hyp_m, exp_m)

## -----------------------------------------------------------------------------
k_hyp <- coef(hyp_m)
k_exp <- coef(exp_m)
k_lin <- coef(lineal_m)

## ----echo = FALSE-------------------------------------------------------------
paste("K_hyp: ", k_hyp)
paste("K_exp: ", k_exp)
paste("K_lin: ", k_lin)

## -----------------------------------------------------------------------------
delay_norm <- delays / max(delays) # It is important to normalize the delay values first in order to get a coherent AUC.
AUC_value <- trapezoid_auc(delay_norm, norm_sv)

## ----echo = FALSE-------------------------------------------------------------
y_data <- seq(0, max(delays), len = 200) # For plotting the curves.

plot(
  delays,
  norm_sv,
  ylim = c(0, 1),
  pch = 21,
  ylab = "Subjective Values",
  xlab = "Delay",
  bg = "orange",
  col = "black"
)
lines(
  y_data,
  eq_hyp(k = k_hyp, y_data),
  col = "green4",
  lwd = 2
)
lines(
  y_data,
  exp(-k_exp * y_data),
  col = "steelblue",
  lwd = 2
)
abline(lineal_m, lty = 2, lwd = 2)

legend(
  "topright",
  legend = c("data", "exp fit", "hyp fit", "linear fit", paste("AUC=", AUC_value)),
  pch = c(21, NA, NA, NA, NA),
  lty = c(NA, 1, 1, 2, NA),
  pt.bg = c("orange", NA, NA, NA, NA),
  col = c(1, "steelblue", "green4", 1),
)

## -----------------------------------------------------------------------------
y_data <- seq(0, max(delays), len = 200)
x_data <- eq_hyp(k = k_hyp, y_data)

## -----------------------------------------------------------------------------
x_data <- exp(-k_exp * y_data)