predict.ooi: Predict Outside Option Index

Description Usage Arguments Value Examples

View source: R/OOI.R

Description

predicts the OOI for new coefficients (for counterfactual analysis) and/or new data.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
## S3 method for class 'ooi'
predict(
  object,
  new.coef = NULL,
  new.X = NULL,
  new.Z = NULL,
  new.X.location = NULL,
  new.Z.location = NULL,
  new.wgt = NULL,
  hhi = FALSE,
  both = FALSE,
  ...
)

Arguments

object

an ooi object.

new.coef

a new *named* vector of coefficients. Check the coefficients produced by the main function to see the right format for this vector.

new.X

a new X matrix / data frame.

new.Z

a new Z matrix / data frame.

new.X.location

a new X.location matrix / data frame.

new.Z.location

a new Z.location matrix / data frame.

new.wgt

a new vector of weights

hhi

whether to predict the HHI (Herfindahl-Hirschman Index, an alternative measure for outside options) instead of the OOI. default is FALSE.

both

whether to return a list with both HHI and OOI when suppling new inputs (default is FALSE). Necessary especially when predicting takes a lot of time.

...

further arguments passed to or from other methods.

Value

If there are no new arguments, returns the original results (ooi/hhi). Otherwise, returns a vector of ooi/hhi (or a list of both) calculated using the new arguments.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#generate data
#worker and job characteristics:
n <- 100
men <- rbinom(n, 1, 0.5)
size <- 1 + rgeom(n, 0.1)
size[men == 0] <- size[men == 0] + 2
worker_resid <- data.frame(r = round(runif(n, 0, 20), 1))
job_location <- data.frame(l = round(runif(n, 20, 40), 1))
#prepare data
#define distance function:
dist_metric <- function(x, y){abs(y - x)}
X <- data.frame(men = men)
Z <- data.frame(size = size)
#add "x" / "z" to column names:
X <- add_prefix(X, "x.")
Z <- add_prefix(Z, "z.")
#estimate P(Z|X) / P(Z) and calculate the ooi:
ooi_object <- OOI(formula = ~ x_*z_ + x_*d + z_*d, X = X, Z = Z,
                  X.location = worker_resid, Z.location = job_location,
                  sim.factor = 3, dist.fun = dist_metric, dist.order = 3)
#we can extract the ooi using predict():
ooi <- predict(ooi_object)
#or the hhi:
ooi <- predict(ooi_object, hhi = TRUE)
#we can also estimate the ooi with different coefficients:
coeffs <- ooi_object$coeffs
coeffs[names(coeffs) == "x.men"] <- 0
new_ooi <- predict(ooi_object, new.coef = coeffs)
#or new data:
Z2 <- data.frame(z.size = 1 + rgeom(n, 0.1))
new_ooi <- predict(ooi_object, new.Z = Z2)

OOI documentation built on Jan. 13, 2021, 6:07 a.m.

Related to predict.ooi in OOI...