Learn R Programming

bunchr (version 1.2.0)

bunch: Bunching Analysis

Description

Given a kinked or notched budget set, this function gets a vector of earnings and analyzes bunching. The bunchr package has two main useful functions:

Usage

bunch(earnings, zstar, t1, t2, Tax = 0, cf_start = NA, cf_end = NA, exclude_before = NA, exclude_after = NA, force_after = FALSE, binw = 10, poly_size = 7, convergence = 0.01, max_iter = 100, correct = TRUE, select = TRUE, draw = TRUE, nboots = 0, seed = NA, progress = FALSE, title = "Bunching Visualization", varname = "Earnings")

Arguments

earnings
Vector of earnings, hopefully a very large one.
zstar
Place of kink (critical earning point).
t1
Marginal tax rate before kink.
t2
Marginal tax rate after kink.
Tax
"Penalty" tax for crossing zstar.
cf_start
Number of bins before the kink bin where counter-factual histogram should start.
cf_end
Number of bins after the kink bin where counter-factual histogram should start.
exclude_before
Number of excluded bins before the kink bin.
exclude_after
Number of excluded bins after the kink bin.
force_after
For notch analysis, should bunch be forced to use of the provided exclude_after for the end of the bunching, rather than trying to find the bin where the sum of the integral is zero? See details at notch_estimator documentation.
binw
Bin width.
poly_size
Order of polynomial used to calculate counter-factual histogram.
convergence
Minimal rate of change of bunching estimate to stop iterations.
max_iter
Maximum number of iterations for bunching estimates.
correct
Should the counter-factual histogram be corrected to compensate for shifting left because of the notch? See details.
select
Should model selection be used to find counter-factual histogram? See details.
draw
Should a graph be drawn?
nboots
how many bootstraps should be run?
seed
specify seed for bootstraps (earnings sampling).
progress
Should a progress bar be desplayed?
title
Title for Plot output
varname
Name for running variable, to be desplayed in the plot

Value

bunch returns a list comprising of the parameters returned by kink_estimator and notch_estimator. If bootstraps were asked for, bootstrapped values are added to the list. Drawing of histograms is suppressed when running the bootsraps.

Details

bunch checks if the specification has a kink, i.e. if the Tax parameter is greater than zero. If so, it applies notch_estimator. Otherwise, it applies kink_estimator. Additionally, bunch can bootstrap by sampling the earnings vector, returning a vector with the estimated elasticities.

See Also

kink_estimator, notch_estimator

Examples

Run this code
# analyzing a kink
ability_vec <- 4000 * rbeta(100000, 2, 5)
earning_vec <- sapply(ability_vec, earning_fun, 0.2, 0, 0.2, 0, 1000)
# bunch_viewer(earning_vec, 1000, 20, 20, 1, 1, binw = 20)
estim <- bunch(earning_vec, 1000, 0, 0.2, Tax = 0, 20, 20, 1, 1,
binw = 20, draw=TRUE, nboots = 0, seed = 16)
estim$e

# analyzing a notch
earning_vec <- sapply(ability_vec, earning_fun, 0.2, 0.2, 0.2, 500, 1000)
bunch_viewer(earning_vec, 1000, 10, 40, 2, 22, binw = 50)
estim <- bunch(earning_vec, 1000, 0.2, 0.2, Tax = 500, 10, 40, 2, 22,
binw = 50, draw = FALSE, nboots = 0, seed = 16)
estim$e

Run the code above in your browser using DataLab