CBS_ITC {CBSr}  R Documentation 
CBS_ITC
Description
Fit either a 1piece or 2piece CBS latent utility function to binary intertemporal choice data.
Usage
CBS_ITC(choice, Amt1, Delay1, Amt2, Delay2, numpiece, numfit = NULL)
Arguments
choice 
Vector of 0s and 1s. 1 if the choice was option 1, 0 if the choice was option 2. 
Amt1 
Vector of positive real numbers. Reward amount of choice 1. 
Delay1 
Vector of positive real numbers. Delay until the reward of choice 1. 
Amt2 
Vector of positive real numbers. Reward amount of choice 2. 
Delay2 
Vector of positive real numbers. Delay until the reward of choice 2. 
numpiece 
Either 1 or 2. Number of CBS pieces to use. 
numfit 
Number of model fits to perform from different starting points. If not provided, numfit = 10*numpiece 
Details
The input data has n choices (ideally n > 100) between two reward options.
Option 1 is receiving Amt1
in Delay1
and Option 2 is receiving Amt2
in Delay2
(e.g., $40 in 20 days vs. $20 in 3 days).
One of the two options may be immediate (i.e., delay = 0; e.g., $40 in 20 days vs. $20 today).
choice
should be 1 if option 1 is chosen, 0 if option 2 is chosen.
Value
A list containing the following:

type
: either 'CBS1' or 'CBS2' depending on the number of pieces 
LL
: log likelihood of the model 
numparam
: number of total parameters in the model 
scale
: scaling factor of the logit model 
xpos
: x coordinates of the fitted CBS function 
ypos
: y coordinates of the fitted CBS function 
AUC
: area under the curve of the fitted CBS function. Normalized to be between 0 and 1. 
normD
: The domain of CBS function runs from 0 tonormD
. Specifically, this is the constant used to normalize all delays between 0 and 1, since CBS is fitted in a unit square first and then scaled up.
Examples
# Fit example ITC data with 2piece CBS function.
# Load example data (included with package).
# Each row is a choice between option 1 (Amt at Delay) vs option 2 (20 now).
Amount1 = ITCdat$Amt1
Delay1 = ITCdat$Delay1
Amount2 = 20
Delay2 = 0
Choice = ITCdat$Choice
# Fit the model
out = CBS_ITC(Choice,Amount1,Delay1,Amount2,Delay2,2)
# Plot the choices (x = Delay, y = relative amount : 20 / delayed amount)
plot(Delay1[Choice==1],20/Amount1[Choice==1],type = 'p',col="blue",xlim=c(0, 180), ylim=c(0, 1))
points(Delay1[Choice==0],20/Amount1[Choice==0],type = 'p',col="red")
# Plot the fitted CBS
x = 0:out$normD
lines(x,CBSfunc(out$xpos,out$ypos,x),col="black")