Difference between revisions of "MatchingLBO.do"

From edegan.com
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 16: Line 16:
 
// GENERATE SOME RANDOM NUMBERS TO RANDOMLY BREAK ANY TIES <br>
 
// GENERATE SOME RANDOM NUMBERS TO RANDOMLY BREAK ANY TIES <br>
 
// ON CLOSENESS OF MATCH OF MARKET VALUE  <br>
 
// ON CLOSENESS OF MATCH OF MARKET VALUE  <br>
set seed 1020 <br>
+
set seed 0.5 <br>
 
gen double shuffle1 = runiform()  <br>
 
gen double shuffle1 = runiform()  <br>
 
gen double shuffle2 = runiform()  <br>
 
gen double shuffle2 = runiform()  <br>
Line 24: Line 24:
  
 
  Error op. sys. refuses to provide memory
 
  Error op. sys. refuses to provide memory
 +
 +
==Attempt 2==
 +
foreach x of varlish matchfilter{
 +
  if x==1{
 +
    foreach matchfilter[_n]==0{
 +
        if year[_n]==year[_x] & industrygroup3[_n]==industrygroup3[_x]{
 +
          if nopatents[_n]/nopatents[_x]<1.1 | nopatents[_n]/nopatents[_x]>1/1.1{
 +
          gen delta=abs(logitpw[_n]-logitpw[_x]
 +
          m=gvkey[_min(delta)]}
 +
  }
 +
  }
 +
  }
 +
 +
Error invalid syntax
 +
Possible reasons: 1. use of _n and x      2. if loop

Latest revision as of 16:45, 25 October 2016

This do file aims to match companies with the closest propensity score based on industry, year, and number of patents from STATApredictLBO.dta.

Attempt 1

use STATApredictLBO.dta, clear
rename nopatents case_nopatents
rename logitpw case_logitpw
rename gvkey case_gvkey

/*industry, year, and no. of patents*/
joinby industrygroup3 year using STATApredictLBO.dta
gen a = nopatents*0.95
gen b = nopatents*1.05
gen delta=abs(logitpw-case_logitpw)
drop if case_nopatents > b | case_nopatents < a

// GENERATE SOME RANDOM NUMBERS TO RANDOMLY BREAK ANY TIES
// ON CLOSENESS OF MATCH OF MARKET VALUE
set seed 0.5
gen double shuffle1 = runiform()
gen double shuffle2 = runiform()

by case_gvkey (delta shuffle1 shuffle2), sort: keep if _n == 1
drop delta shuffle1 shuffle2

Error op. sys. refuses to provide memory

Attempt 2

foreach x of varlish matchfilter{

 if x==1{
    foreach matchfilter[_n]==0{
       if year[_n]==year[_x] & industrygroup3[_n]==industrygroup3[_x]{
          if nopatents[_n]/nopatents[_x]<1.1 | nopatents[_n]/nopatents[_x]>1/1.1{
          gen delta=abs(logitpw[_n]-logitpw[_x]
          m=gvkey[_min(delta)]}
 }
 }
 }
Error invalid syntax 

Possible reasons: 1. use of _n and x 2. if loop