*! version 1.0.1 *! Bootstrap Finder *! for the Command xtendothresdpd *! Diallo Ibrahima Amadou *! All comments are welcome, 15Apr2020 capture program drop xtendothresdpdboot program xtendothresdpdboot, rclass sortpreserve version 16.0 syntax, comdline(string asis) local lalignecomd = "`comdline'" quietly `lalignecomd' nographs local lapartievindbt = e(datasignaturevars) local lasectionoptbt = e(lesoptionsdp) local lavargamma = e(gammavarzha) local lasousseuil = e(belowthreszha) local lasurseuil = e(abovethreszha) local lavardepend = e(depvar) local laaddendogene = e(additendox) tempvar monechantil quietly generate `monechantil' = e(sample) local lavardepretard = "L.`lavardepend'" local ladeuxseuils `"`lasousseuil' `lasurseuil'"' local layxvars : list lapartievindbt - ladeuxseuils local laseulxvars : list layxvars - lavardepend local laxvarsansvdr : list laseulxvars - lavardepretard if "`laaddendogene'" == "." { local laadendovrai } else { local laadendovrai "`laaddendogene'" } local grideffectbt = e(gridpoints) - 1 tempvar louisstubgam quietly generate `louisstubgam' = "`lavargamma'" quietly split `louisstubgam', p(_) local stubbt = `louisstubgam'1[1] drop `louisstubgam'* local lavbthreshold = e(thresvaribzha) local lapivitzvbttso = e(pivaribzha) tempvar lapivitzvbt quietly generate double `lapivitzvbt' = `lapivitzvbttso' if `monechantil' tempvar thresvalterbt quietly generate double `thresvalterbt' = `lavbthreshold' if `monechantil' quietly tsset local panelvarbt "`r(panelvar)'" local timevarbt "`r(timevar)'" capture drop wnstar_`stubbt' nnztotalbt_`stubbt' quietly generate double wnstar_`stubbt' = . quietly generate double nnztotalbt_`stubbt' = . quietly tsset quietly sort `lavargamma', stable forvalues i = 1(1)`grideffectbt' { quietly tsset quietly sort `lavargamma', stable quietly generate double inferieurbt_`stubbt' = `lapivitzvbt'*(`thresvalterbt' <= `lavargamma'[`i']) /// if `monechantil' & !missing(`lapivitzvbt') & !missing(`thresvalterbt') quietly tsset quietly sort `lavargamma', stable quietly generate double superieurbt_`stubbt' = `lapivitzvbt'*(`thresvalterbt' > `lavargamma'[`i']) /// if `monechantil' & !missing(`lapivitzvbt') & !missing(`thresvalterbt') quietly tsset quietly bysort `panelvarbt': generate double etai_`stubbt' = rnormal() if `monechantil' quietly tsset quietly xtdpd `lavardepend' `lavardepretard' inferieurbt_`stubbt' superieurbt_`stubbt' `laxvarsansvdr' /// `laadendovrai' if `monechantil', `lasectionoptbt' quietly predict double residusbt_`stubbt' if `monechantil', e quietly tsset quietly generate double yitstar_`stubbt' = residusbt_`stubbt'*etai_`stubbt' if `monechantil' quietly tsset quietly generate double yitstarlag_`stubbt' = L.yitstar_`stubbt' if `monechantil' quietly tsset quietly sort `lavargamma', stable quietly xtdpd yitstar_`stubbt' yitstarlag_`stubbt' inferieurbt_`stubbt' superieurbt_`stubbt' `laxvarsansvdr' /// `laadendovrai' if `monechantil', `lasectionoptbt' quietly replace nnztotalbt_`stubbt' = e(N) if _n == `i' quietly test inferieurbt_`stubbt' = superieurbt_`stubbt' quietly replace wnstar_`stubbt' = r(chi2) if _n == `i' capture drop inferieurbt_`stubbt' superieurbt_`stubbt' residusbt_`stubbt' etai_`stubbt' yitstar_`stubbt' yitstarlag_`stubbt' } tempname supwstar nnhawabt quietly gsort -wnstar_`stubbt' quietly scalar `supwstar' = wnstar_`stubbt'[1] quietly scalar `nnhawabt' = nnztotalbt_`stubbt'[1] return clear return scalar supwstarboots = `supwstar' return scalar ntotalboots = `nnhawabt' capture drop wnstar_`stubbt' nnztotalbt_`stubbt' end