------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      name:  <unnamed>
       log:  C:\Users\faafrin\Dropbox (CSU Fullerton)\AKRY\Data\JAR\temp\log 1.smcl
  log type:  smcl
 opened on:  26 Jul 2024, 22:38:20

. do "C:\Users\faafrin\Dropbox (CSU Fullerton)\AKRY\Data\JAR\1_X_var_construction.do"

. 
. 
. glo path = "../../Data/Datasets"

. glo path3 = "../../Data/JAR"

. 
. 
. use "$path/compa78_20_20220410.dta",clear

. destring gvkey, gen(gvkey_num)
gvkey: all characters numeric; gvkey_num generated as long

. drop if at == .
(63,905 observations deleted)

. gen mve = csho*prcc_f
(54,121 missing values generated)

. *keep key variable
. keep gvkey_num datadate fyear at sale mve year

. xtset gvkey_num fyear

Panel variable: gvkey_num (unbalanced)
 Time variable: fyear, 1977 to 2021, but with gaps
         Delta: 1 unit

. foreach var in at sale mve{
  2.         gen `var'_lag1 = l1.`var'
  3. }
(31,008 missing values generated)
(33,050 missing values generated)
(80,364 missing values generated)

. duplicates drop gvkey_num year, force

Duplicates in terms of gvkey_num year

(767 observations deleted)

. rename gvkey_num cgvkey

. save "$path3/temp/compa_temp2.dta",replace
file ../../Data/JAR/temp/compa_temp2.dta saved

. 
. **TSS variable
. import delimited "$path/TNIC3HHIdata/TNIC3HHIdata.txt", clear 
(encoding automatically selected: UTF-8)
(4 vars, 169,669 obs)

. duplicates drop gvkey year,force

Duplicates in terms of gvkey year

(0 observations are duplicates)

. rename gvkey cgvkey

. drop if cgvkey == . | year == .
(0 observations deleted)

. save "$path3/temp/tnic3_hhi.dta",replace
file ../../Data/JAR/temp/tnic3_hhi.dta saved

. 
. 
. use "$path/seg1208.dta",clear

. *drop duplicates
. duplicates drop sgvkey cgvkey srcdate,force

Duplicates in terms of sgvkey cgvkey srcdate

(0 observations are duplicates)

. 
. *get the compa vars for customers
. merge m:1 cgvkey year using "$path3/temp/compa_temp2.dta"

    Result                      Number of obs
    -----------------------------------------
    Not matched                       324,783
        from master                     4,718  (_merge==1)
        from using                    320,065  (_merge==2)

    Matched                            62,642  (_merge==3)
    -----------------------------------------

. 
. drop if _m ==2
(320,065 observations deleted)

. drop _m

. foreach var in  at sale mve{
  2.         rename `var' c`var'
  3.         rename `var'_lag1  c`var'_lag1
  4.         
.         gen c`var'_log = ln(1+c`var')
  5.         gen c`var'_lag1_log = ln(1+c`var'_lag1)
  6. }
(4,718 missing values generated)
(5,274 missing values generated)
(5,314 missing values generated)
(7,568 missing values generated)
(8,423 missing values generated)

. 
. *get the TSS var for customers
. merge m:1 cgvkey year using "$path3/temp/tnic3_hhi.dta"

    Result                      Number of obs
    -----------------------------------------
    Not matched                       171,038
        from master                    16,397  (_merge==1)
        from using                    154,641  (_merge==2)

    Matched                            50,963  (_merge==3)
    -----------------------------------------

. 
. 
. drop if _m == 2
(154,641 observations deleted)

. drop _m

. save "$path3/temp/seg1208_tss.dta",replace
file ../../Data/JAR/temp/seg1208_tss.dta saved

. 
. *calculate the TSS variables
. 
. use "$path3/temp/seg1208_tss.dta",clear

. 
. *simple average
. bysort sgvkey srcdate: egen a_tss = mean(tnic3tsimm) 
(7,875 missing values generated)

. *simple sum
. bysort sgvkey srcdate: egen s_tss = sum(tnic3tsimm) 

. *weighted average 1
. bysort sgvkey srcdate: egen wa1_tss = sum(tnic3tsimm * p_salecs) 

. 
. foreach weight in p_salecs  cat csale cmve cat_lag1 csale_lag1 cmve_lag1{
  2.         *weighted average 2
.         bysort sgvkey srcdate: asgen wa2_tss_`weight' = tnic3tsimm , w(`weight')
  3. 
.         *weighted sum (weighted-average*numbers)
.         gen flag_temp = 0
  4.                 *identify those with non-missing data
.         replace flag_temp = 1 if tnic3tsimm!=. & `weight'!=.
  5.         
.         bysort sgvkey srcdate: egen ws_tss_`weight' = sum(flag_temp*wa2_tss_`weight')
  6.         drop flag_temp
  7. }
(50,963 real changes made)
(50,893 real changes made)
(50,963 real changes made)
(50,823 real changes made)
(50,838 real changes made)
(50,813 real changes made)
(50,163 real changes made)

. 
. global a_tss s_tss wa1_tss wa2_tss_p_salecs ws_tss_p_salecs wa2_tss_cat ws_tss_cat wa2_tss_csale ws_tss_csale wa2_tss_cmve ws_tss_cmve wa2_tss_cat_lag1 ws_tss_cat_lag1 wa2_
> tss_csale_lag1 ws_tss_csale_lag1 wa2_tss_cmve_lag1 ws_tss_cmve_lag1

. 
. *collapse into sgvkey srcdate level
. duplicates drop sgvkey srcdate,force

Duplicates in terms of sgvkey srcdate

(28,246 observations deleted)

. save "$path3/temp/supplier_year_tss_xvar_final.dta",replace
file ../../Data/JAR/temp/supplier_year_tss_xvar_final.dta saved

. 
. *get the TSS var for own firm (supplier)
. import delimited "$path/TNIC3HHIdata/TNIC3HHIdata.txt", clear 
(encoding automatically selected: UTF-8)
(4 vars, 169,669 obs)

. duplicates drop gvkey year,force

Duplicates in terms of gvkey year

(0 observations are duplicates)

. rename gvkey sgvkey

. rename tnic3tsimm supplier_tss

. drop if sgvkey == . | year == .
(0 observations deleted)

. drop tnic3hhi

. save "$path3/temp/stnic3_hhi.dta",replace
file ../../Data/JAR/temp/stnic3_hhi.dta saved

. 
. use "$path3/temp/supplier_year_tss_xvar_final.dta",clear

. 
. merge m:1 sgvkey year using "$path3/temp/stnic3_hhi.dta"

    Result                      Number of obs
    -----------------------------------------
    Not matched                       148,996
        from master                     9,217  (_merge==1)
        from using                    139,779  (_merge==2)

    Matched                            29,897  (_merge==3)
    -----------------------------------------

. 
. //  Result                      Number of obs
. //     -----------------------------------------
. //     Not matched                       148,996
. //         from master                     9,217  (_merge==1)
. //         from using                    139,779  (_merge==2)
. //
. //     Matched                            29,897  (_merge==3)
. //     -----------------------------------------
. 
. 
. drop if _m == 2
(139,779 observations deleted)

. drop _m

. save "$path3/temp/supplier_year_tss_xvar_final.dta",replace
file ../../Data/JAR/temp/supplier_year_tss_xvar_final.dta saved

. 
. *lead and lag value
. use "$path3/temp/supplier_year_tss_xvar_final.dta",clear

. keep sgvkey srcdate fyear s_tss

. duplicates drop

Duplicates in terms of all variables

(0 observations are duplicates)

. drop if fyear == .
(2,771 observations deleted)

. duplicates drop sgvkey fyear,force 

Duplicates in terms of sgvkey fyear

(929 observations deleted)

. xtset sgvkey fyear

Panel variable: sgvkey (unbalanced)
 Time variable: fyear, 1988 to 2018, but with gaps
         Delta: 1 unit

. forvalues i = 1(1)5{
  2.         gen s_tss_lag`i' = l`i'.s_tss
  3.         gen s_tss_lead`i' = f`i'.s_tss
  4. }
(10,285 missing values generated)
(10,285 missing values generated)
(15,090 missing values generated)
(15,090 missing values generated)
(18,723 missing values generated)
(18,723 missing values generated)
(21,561 missing values generated)
(21,561 missing values generated)
(23,778 missing values generated)
(23,778 missing values generated)

. save "$path3/temp/tss_lag_forward_final.dta",replace
file ../../Data/JAR/temp/tss_lag_forward_final.dta saved

. 
. count if fyear <=2014 & fyear >=1989
  33,330

. 
end of do-file

. 
