ultimatum: Statistical ultimatum game

Description Usage Arguments Details Value Author(s) References Examples

View source: R/ultimatum.r

Description

Estimates the statistical ultimatum game described in Ramsay and Signorino (2009), illustrated below in "Details".

Usage

1
2
3
4
ultimatum(formulas, data, subset, na.action, minOffer = 0, maxOffer,
  offertol = sqrt(.Machine$double.eps), s1 = NULL, s2 = NULL,
  outcome = c("both", "offer"), boot = 0, bootreport = TRUE, profile,
  method = "BFGS", ..., reltol = 1e-12)

Arguments

formulas

a list of two formulas, or a Formula object with two right-hand sides. See "Details" and the examples below.

data

data frame containing the variables in the model.

subset

optional logical expression specifying which observations from data to use in fitting.

na.action

how to deal with NAs in data. Defaults to the na.action setting of options. See na.omit.

minOffer

numeric: the lowest offer Player 1 could feasibly make (default 0).

maxOffer

numeric: the highest offer Player 1 could feasibly make.

offertol

numeric: offers within offertol of minOffer/maxOffer will be considered to be at the minimum/maximum. (This is used to prevent floating-point problems and need not be changed in most applications.)

s1

numeric: scale parameter for Player 1. If NULL (the default), the parameter will be estimated.

s2

numeric: scale parameter for Player 2. If NULL (the default), the parameter will be estimated.

outcome

the outcome of interest: just Player 1's offer ("offer") or both the offer and its acceptance ("both"). See "Details".

boot

integer: number of bootstrap iterations to perform (if any).

bootreport

logical: whether to print status bar when performing bootstrap iterations.

profile

output from running profile.game on a previous fit of the model, used to generate starting values for refitting when an earlier fit converged to a non-global maximum.

method

character string specifying which optimization routine to use (see maxLik)

...

other arguments to pass to the fitting function (see maxLik).

reltol

numeric: relative convergence tolerance level (see optim). Use of values higher than the default is discouraged.

Details

The model corresponds to the following extensive-form game, described in Ramsay and Signorino (2009):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
.       1
.      / \
.     /   \
.    /     \ y in [0, Q]
.   /       \
.   ---------
.       /\  2
.      /  \
.     /    \
.    /      \
. Q - y     R1
. y         R2

Q refers to the maximum feasible offer (the argument maxOffer).

The two equations on the right-hand side of formulas refer to Player 1's and Player 2's reservation values respectively. The left-hand side should take the form offer + acceptance, where outcome contains the numeric value of the offer made and acceptance is an indicator for whether it was accepted. (If outcome is set to "offer", the acceptance indicator can be omitted. See below for more.)

The outcome argument refers to whether the outcome of interest is just the level of the offer made, or both the level of the offer and whether it was accepted. If acceptance was unobserved, then outcome should be set to "offer". If so, the estimates for Player 2's reservation value should be interpreted as Player 1's expectations about these parameters. It may also be useful to set outcome to "offer" even if acceptance data are available, for the purpose of comparing the strategic model to other models of offer levels (as in Ramsay and Signorino 2009). If an acceptance variable is specified but outcome is set to "offer", the acceptance data will be used for starting values but not in the actual fitting.

Numerical instability is not uncommon in the statistical ultimatum game, especially when the scale parameters are being estimated.

Value

An object of class c("game", "ultimatum"). For details on the game class, see egame12. The ultimatum class is just for use in the generation of predicted values (see predProbs) and profiling (see profile.game).

Author(s)

Brenton Kenkel (brenton.kenkel@gmail.com) and Curtis S. Signorino

References

Kristopher W. Ramsay and Curtis S. Signorino. 2009. "A Statistical Model of the Ultimatum Game." Available online at http://www.rochester.edu/college/psc/signorino/research/RamsaySignorino_Ultimatum.pdf.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
data(data_ult)

## Model formula:
f1 <- offer + accept ~ x1 + x2 + x3 + x4 + w1 + w2 | z1 + z2 + z3 + z4 + w1 + w2
##                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
##                                  R1                              R2

m1 <- ultimatum(f1, data = data_ult, maxOffer = 15)
summary(m1)

## Estimating offer size only
f2 <- update(Formula(f1), offer ~ .)
m2 <- ultimatum(f2, data = data_ult, maxOffer = 15, outcome = "offer")
summary(m2)

## Fixing scale terms
m3 <- ultimatum(f1, data = data_ult, maxOffer = 15, s1 = 5, s2 = 1)
summary(m3)

Example output

Loading required package: maxLik
Loading required package: miscTools

Please cite the 'maxLik' package as:
Henningsen, Arne and Toomet, Ott (2011). maxLik: A package for maximum likelihood estimation in R. Computational Statistics 26(3), 443-458. DOI 10.1007/s00180-010-0217-1.

If you have questions, suggestions, or comments regarding the 'maxLik' package, please use a forum or 'tracker' at maxLik's R-Forge site:
https://r-forge.r-project.org/projects/maxlik/
Loading required package: Formula
Loading required package: MASS

Call:
ultimatum(formulas = f1, data = data_ult, maxOffer = 15)

Coefficients:
                Estimate Std. Error  z value  Pr(>|z|)    
R1:(Intercept)  4.935680   0.271317  18.1916 < 2.2e-16 ***
R1:x1          -2.084117   0.233881  -8.9110 < 2.2e-16 ***
R1:x2           2.157339   0.245177   8.7991 < 2.2e-16 ***
R1:x3          -2.143140   0.239486  -8.9489 < 2.2e-16 ***
R1:x4           2.425016   0.246073   9.8549 < 2.2e-16 ***
R1:w1           0.925143   0.248172   3.7278 0.0001931 ***
R1:w2          -1.159481   0.245275  -4.7273 2.276e-06 ***
R2:(Intercept)  9.922120   0.074362 133.4295 < 2.2e-16 ***
R2:z1           2.014166   0.035268  57.1109 < 2.2e-16 ***
R2:z2          -2.002677   0.034820 -57.5153 < 2.2e-16 ***
R2:z3           2.012617   0.036823  54.6568 < 2.2e-16 ***
R2:z4          -1.975276   0.035740 -55.2681 < 2.2e-16 ***
R2:w1          -0.957349   0.033349 -28.7066 < 2.2e-16 ***
R2:w2           1.076263   0.035389  30.4122 < 2.2e-16 ***
log(s1)         1.639778   0.033843  48.4532 < 2.2e-16 ***
log(s2)         0.011430   0.034730   0.3291 0.7420652    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Standard errors estimated from inverse Hessian

Log-likelihood: -3717.679
AIC: 7467.358
No. observations: 1500 


Call:
ultimatum(formulas = f2, data = data_ult, maxOffer = 15, outcome = "offer")

Coefficients:
                Estimate Std. Error  z value  Pr(>|z|)    
R1:(Intercept)  4.808428   0.337870  14.2316 < 2.2e-16 ***
R1:x1          -2.105411   0.241102  -8.7325 < 2.2e-16 ***
R1:x2           2.180576   0.253462   8.6032 < 2.2e-16 ***
R1:x3          -2.174328   0.248413  -8.7529 < 2.2e-16 ***
R1:x4           2.451379   0.256025   9.5748 < 2.2e-16 ***
R1:w1           0.962783   0.253709   3.7948 0.0001477 ***
R1:w2          -1.171413   0.250832  -4.6701  3.01e-06 ***
R2:(Intercept)  9.850530   0.135920  72.4731 < 2.2e-16 ***
R2:z1           2.033139   0.039345  51.6751 < 2.2e-16 ***
R2:z2          -1.977861   0.039253 -50.3879 < 2.2e-16 ***
R2:z3           2.019361   0.041748  48.3697 < 2.2e-16 ***
R2:z4          -1.970772   0.040258 -48.9540 < 2.2e-16 ***
R2:w1          -0.943152   0.037320 -25.2719 < 2.2e-16 ***
R2:w2           1.072715   0.039853  26.9166 < 2.2e-16 ***
log(s1)         1.646871   0.041190  39.9822 < 2.2e-16 ***
log(s2)         0.046830   0.052730   0.8881 0.3744811    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Standard errors estimated from inverse Hessian

Log-likelihood: -3313.95
AIC: 6659.9
No. observations: 1500 


Call:
ultimatum(formulas = f1, data = data_ult, maxOffer = 15, s1 = 5, 
    s2 = 1)

Coefficients:
                Estimate Std. Error  z value  Pr(>|z|)    
R1:(Intercept)  5.021579   0.241452  20.7974 < 2.2e-16 ***
R1:x1          -2.049177   0.224564  -9.1252 < 2.2e-16 ***
R1:x2           2.125036   0.236164   8.9981 < 2.2e-16 ***
R1:x3          -2.102711   0.229149  -9.1762 < 2.2e-16 ***
R1:x4           2.383386   0.235176  10.1345 < 2.2e-16 ***
R1:w1           0.922013   0.241195   3.8227  0.000132 ***
R1:w2          -1.154102   0.238351  -4.8420 1.285e-06 ***
R2:(Intercept)  9.970120   0.044891 222.0939 < 2.2e-16 ***
R2:z1           2.014641   0.034476  58.4357 < 2.2e-16 ***
R2:z2          -2.002824   0.034012 -58.8864 < 2.2e-16 ***
R2:z3           2.013207   0.036131  55.7201 < 2.2e-16 ***
R2:z4          -1.975776   0.035034 -56.3961 < 2.2e-16 ***
R2:w1          -0.956518   0.032910 -29.0651 < 2.2e-16 ***
R2:w2           1.076160   0.035012  30.7369 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Standard errors estimated from inverse Hessian

Fixed terms:
 log(s1)  log(s2) 
1.609438 0.000000 

Log-likelihood: -3718.144
AIC: 7464.287
No. observations: 1500 

games documentation built on May 2, 2019, 3:26 p.m.