# ultimatum: Statistical ultimatum game In games: Statistical Estimation of Game-Theoretic Models

## 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 `NA`s 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

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/

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.