Changes

Jump to navigation Jump to search
There are a few things that can be customized in the script. Getting this into a more user-friendly form is a WIP. In fact, some parts might be difficult, if not impossible, to write in a more accessible way.
Before running, modify the following options if necessary: *If matching using different file, modify
line 12:
readtable("Filepath")
(Not implemented yet: More user-friendly way to input restrictions)
*Specify which observations are valid for matching. For now, we filter out all firms that were never granted a single patent in the period 1970-2015
For firms that LBO, we also drop their observations in all other years from the list of candidates to match to other LBOs
See inline comments in code for detailed description of what matchfilter2, matchfilter4, etc. represent
Lines 38-48
*Specify propensity score type to use for matching
Options are: logitp (panel logit), probitp (panel probit), or Cox proportional hazard (hr)
logitpw, probitpw, hrw
line 58:
mscore = :logitpw;
*Specify whether matching priority should be deterministic or random. If deterministic, priority goes to lower GVKEY
line 61:
randoption = 0;
*Specify additional constraints on valid matches (modify code within function mcexpr as desired)
For example, default code forces matches to be within the same industry group, within the same decade, and with patent stocks within +/- 20% of LBO firm.
lines 69-81:
function mcexpr(i)
#note that the below syntax is the simplest way to store a long string over multiple lines #(i.e., appending additional characters per line) #Also, note that order of operations forces us to put each condition in parentheses
mcriteria = "nonLBOs[:matchsubset] = (nonLBOs[:industrygroup3].== LBOs[$i,:industrygroup3])" mcriteria = mcriteria * " .* (nonLBOs[:decade].==LBOs[$i,:decade])" mcriteria = mcriteria * " .* (nonLBOs[:patentstock] .>= (LBOs[$i,:patentstock]*.8))" mcriteria = mcriteria * " .* (nonLBOs[:patentstock] .<= (LBOs[$i,:patentstock]*1.2))" mcriteria = mcriteria * " .* (nonLBOs[:matchpair] .== 0 )" return eval(parse(mcriteria)) end

Navigation menu