spe: Empirical Sorted Partial Effects (SPE) and Inference

View source: R/spe.R

speR Documentation

Empirical Sorted Partial Effects (SPE) and Inference

Description

spe conducts SPE estimation and inference at user-specifed quantile index. The bootstrap procedures follows algorithm 2.1 as in Chernozhukov, Fernandez-Val and Luo (2018). All estimates are bias-corrected and all confidence bands are monotonized. For graphical results, please use plot.spe.

Usage

spe(
  fm,
  data,
  method = c("ols", "logit", "probit", "QR"),
  var_type = c("binary", "continuous", "categorical"),
  var,
  compare,
  subgroup = NULL,
  samp_weight = NULL,
  us = c(1:9)/10,
  alpha = 0.1,
  taus = c(5:95)/100,
  b = 500,
  parallel = FALSE,
  ncores = detectCores(),
  seed = 1,
  bc = TRUE,
  boot_type = c("nonpar", "weighted")
)

Arguments

fm

Regression formula.

data

Data in use.

method

Models to be used for estimating partial effects. Four options: "logit" (binary response), "probit" (binary response), "ols" (interactive linear with additive errors), "QR" (linear model with non-additive errors). Default is "ols".

var_type

The type of parameter in interest. Three options: "binary", "categorical", "continuous". Default is "binary".

var

Variable T in interset. Should be a character type.

compare

If parameter in interest is categorical, then user needs to specify which two category to compare with. Should be a 1 by 2 character vector. For example, if the two levels to compare with is 1 and 3, then c=("1", "3"), which will calculate partial effect from 1 to 3. To use this option, users first need to specify var as a factor variable.

subgroup

Subgroup in interest. Default is NULL. Specifcation should be a logical variable. For example, suppose data contains indicator variable for women (female if 1, male if 0). If users are interested in women SPE, then users should specify subgroup = data[, "female"] == 1.

samp_weight

Sampling weight of data. Input should be a n by 1 vector, where n denotes sample size. Default is NULL.

us

Percentile of interest for SPE. Should be a vector of values between 0 and 1. Default is c(1:9)/10.

alpha

Size for confidence interval. Shoule be between 0 and 1. Default is 0.1

taus

Indexes for quantile regression. Default is c(5:95)/100.

b

Number of bootstrap draws. Default is set to be 500.

parallel

Whether the user wants to use parallel computation. The default is FALSE and only 1 CPU will be used. The other option is TRUE, and user can specify the number of CPUs in the ncores option.

ncores

Number of cores for computation. Default is set to be detectCores(), which is a function from package parallel that detects the number of CPUs on the current host. For large dataset, parallel computing is highly recommended since bootstrap is time-consuming.

seed

Pseudo-number generation for reproduction. Default is 1.

bc

Whether want the estimate to be bias-corrected. Default is TRUE. If FALSE uncorrected estimate and corresponding confidence bands will be reported.

boot_type

Type of bootstrap. Default is "nonpar", and the package implements nonparametric bootstrap. The other alternative is "weighted", and the package implements weighted bootstrap.

Value

The output is a list with 4 components: (1) spe stores spe estimates, the upper and lower confidence bounds, and standard errors; (2) ape stores ape estimates, the upper and lower confidence bounds, and the standard error; (3) us stores percentile index as in \ codespe command; (4) alpha stores significance level as in spe command.

Examples

data("mortgage")
fm <- deny ~ black + p_irat + hse_inc + ccred + mcred + pubrec + ltv_med +
ltv_high + denpmi + selfemp + single + hischl

test <- spe(fm = fm, data = mortgage, var = "black", method = "logit",
us = c(2:98)/100, b = 50)


SortedEffects documentation built on March 22, 2022, 9:05 a.m.