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)