spe function

Empirical Sorted Partial Effects (SPE) and Inference

Empirical Sorted Partial Effects (SPE) and Inference

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.

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.

Returns

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)