* xtpmed_cert.do -- certification script for xtpmed * Expected values were computed independently with the Python reference * implementation (econmediate 0.2.0) on the same data and formulas. * Run this file from the folder that contains it; the ado-files are in the same folder. version 14 clear all set more off adopath ++ "`c(pwd)'" cscript "xtpmed certification" adofile xtpmed use xtpmed_cert_static, clear xtset id year * ---------------------------------------------------------------- fe, cluster xtpmed y, treatment(d) mediators(m1 m2) controls(x) estimator(fe) matrix B0 = (1.4153130742709132, 0.969187210733538, 0.6608079019105113, 0.563226906429988, 0.7848390581232143, 0.32569000113634866, -0.4971005654008538, 0.34418221914443875) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-06 matrix V0 = (0.005113740184889821, -0.002046974723561378, 0.000721404859676488, -0.002449869759117141, -4.744653979281104e-05, 0.0003757734066175076, -0.00017100965243410058, -0.0001005968801007738 \ -0.002046974723561378, 0.0034868404059474087, 0.000897027337427658, -0.001226259160839129, -0.0002980689818156809, -0.000538642437397208, -0.00020032154219796997, 0.0003617058274272075 \ 0.000721404859676488, 0.000897027337427658, 0.002157170996566272, -0.0018064712220514467, -0.00016294836184008039, 0.00022592535759520768, -0.0004623266544494941, 0.0006004513455498437 \ -0.002449869759117141, -0.001226259160839129, -0.0018064712220514467, 0.004857301014252858, -1.1871439090232783e-05, 0.0005075861678979557, 0.00017587802344104476, -0.00021897494353556924 \ -4.744653979281104e-05, -0.0002980689818156809, -0.00016294836184008039, -1.1871439090232783e-05, 0.004450085722311067, -0.002434311721507372, 0.004278185558137833, -0.0020719608659479282 \ 0.0003757734066175076, -0.000538642437397208, 0.00022592535759520768, 0.0005075861678979557, -0.002434311721507372, 0.00323052843325663, -0.0023703246384159417, 0.001780692839214811 \ -0.00017100965243410058, -0.00020032154219796997, -0.0004623266544494941, 0.00017587802344104476, 0.004278185558137833, -0.0023703246384159417, 0.0051052274679598934, -0.0025861957629212578 \ -0.0001005968801007738, 0.0003617058274272075, 0.0006004513455498437, -0.00021897494353556924, -0.0020719608659479282, 0.001780692839214811, -0.0025861957629212578, 0.0034081744332380304) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-06 matrix E0 = (1.4153130742709132, 0.07151042011519552 \ 0.4321679959561081, 0.11691739633458918 \ 1.8474810702270212, 0.12056171273353883 \ 0.23392282763850059, 0.05153096061990448 \ 0.7606559776171752, 0.07664471941917309 \ -0.3284879816610671, 0.05537218249441946) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-06 matrix G = e(diag) assert reldif(G[1,1], 14.08262715613277) < 1e-05 assert reldif(G[4,1], 2.085109090305459) < 1e-05 assert reldif(G[3,1], 287.94237113430506) < 1e-05 assert reldif(G[5,1], 5.134348665231525) < 1e-05 assert reldif(G[6,1], 2.2999290021667176) < 1e-05 assert reldif(G[8,1], 32.18352856282308) < 1e-05 assert reldif(G[9,1], 0.29729962986241526) < 1e-05 assert reldif(G[10,1], 2.2550539361072506) < 1e-05 assert reldif(G[11,1], -0.013930689113102846) < 1e-05 assert reldif(G[12,1], 3.220260164398788) < 1e-05 assert reldif(G[13,1], 0.5664666319172076) < 1e-05 assert reldif(G[14,1], 5.832971460882786) < 1e-05 assert reldif(G[15,1], 7.026558810946257) < 1e-05 assert reldif(G[1,5], 33.915468721913854) < 1e-05 assert reldif(G[4,5], 3.0955489334868083) < 1e-05 assert reldif(G[3,5], 769.8598231142761) < 1e-05 assert reldif(G[5,5], 0.4662186529735184) < 1e-05 assert reldif(G[6,5], 3.4112525227776422) < 1e-05 assert reldif(G[8,5], 48.31553948340072) < 1e-05 assert reldif(G[9,5], 0.3292551281981707) < 1e-05 assert reldif(G[10,5], 33.59341410840191) < 1e-05 assert reldif(G[11,5], -0.03622349071460352) < 1e-05 assert reldif(G[12,5], 3.853834709106675) < 1e-05 assert reldif(G[13,5], 0.15945982453707358) < 1e-05 assert reldif(G[14,5], 6.099799987163178) < 1e-05 assert reldif(G[15,5], 6.850914283479091) < 1e-05 assert reldif(G[1,9], 26.866175713397286) < 1e-05 assert reldif(G[4,9], 2.5890216369508714) < 1e-05 assert reldif(G[3,9], 511.1091286301715) < 1e-05 assert reldif(G[5,9], 0.30293525933725385) < 1e-05 assert reldif(G[6,9], 1.5721171043704323) < 1e-05 assert reldif(G[8,9], 55.19700823179302) < 1e-05 assert reldif(G[9,9], 0.34789553451090777) < 1e-05 assert reldif(G[10,9], 20.58270058366712) < 1e-05 assert reldif(G[11,9], 0.056380315058746994) < 1e-05 assert reldif(G[12,9], 3.6611959883578167) < 1e-05 assert reldif(G[13,9], 0.027379224695217894) < 1e-05 assert reldif(G[14,9], 7.514602242695405) < 1e-05 assert reldif(G[15,9], 8.439931792433828) < 1e-05 assert reldif(el(e(chow),1,1), 0.8318002962156161) < 1e-05 * ---------------------------------------------------------------- fe, time effects, Driscoll-Kraay xtpmed y, treatment(d) mediators(m1 m2) controls(x) estimator(fe) timefe vce(dk) matrix B0 = (1.3833598061671815, 0.9970668209956627, 0.6667689193623406, 0.5541333845656552, 0.8053667045299459, 0.31119315350008236, -0.4815453174745014, 0.33669422176862945) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-06 matrix V0 = (0.002946215522399286, -0.0015227866275053152, 0.000843151891491056, -0.0009745562231465494, 0.0007409974032862532, 0.00015991608771267986, 0.0004338825725942837, -6.933494333551056e-05 \ -0.0015227866275053152, 0.0009623717923204177, -0.00045059492575783575, 0.00038258699467435994, -0.0005099189826765395, -8.752643090797232e-05, -0.0002928631850344724, -0.00031107685551473997 \ 0.000843151891491056, -0.00045059492575783575, 0.0007209498392567839, -0.00012443212427424837, -9.194857217422131e-05, 0.000332434002891387, -1.0002159860462985e-06, 7.294169804689219e-05 \ -0.0009745562231465494, 0.00038258699467435994, -0.00012443212427424837, 0.0012006748955446032, -0.0003454915568056257, -0.00010178460325123246, -0.0001614892370396484, 0.0006096600805457912 \ 0.0007409974032862532, -0.0005099189826765395, -9.194857217422131e-05, -0.0003454915568056257, 0.0017054811934002218, -0.0004122167380438989, 0.0006350416885276331, -2.180659518498928e-06 \ 0.00015991608771267986, -8.752643090797232e-05, 0.000332434002891387, -0.00010178460325123246, -0.0004122167380438989, 0.002292793500357387, -0.0002511048357891492, 0.0013803762863935603 \ 0.0004338825725942837, -0.0002928631850344724, -1.0002159860462985e-06, -0.0001614892370396484, 0.0006350416885276331, -0.0002511048357891492, 0.00037277724667135367, -0.00011274728901351887 \ -6.933494333551056e-05, -0.00031107685551473997, 7.294169804689219e-05, 0.0006096600805457912, -2.180659518498928e-06, 0.0013803762863935603, -0.00011274728901351887, 0.00342443911419149) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-06 matrix E0 = (1.3833598061671815, 0.0542790523388383 \ 0.48192496886495767, 0.052933427268341916 \ 1.865284775032139, 0.06737636779480041 \ 0.258365358102842, 0.02379138698018439 \ 0.8030044198214262, 0.03873971862009568 \ -0.32107945095646856, 0.0182633512321359) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-06 matrix G = e(diag) assert reldif(G[1,1], 11.973992203889695) < 1e-05 assert reldif(G[4,1], 1.778758040671794) < 1e-05 assert reldif(G[3,1], 252.39915801533925) < 1e-05 assert reldif(G[5,1], 5.6303002261499095) < 1e-05 assert reldif(G[6,1], -2.898744689224425) < 1e-05 assert reldif(G[8,1], 31.98559157261029) < 1e-05 assert reldif(G[9,1], 0.29840154504464894) < 1e-05 assert reldif(G[10,1], 2.656528163455624) < 1e-05 assert reldif(G[11,1], 0.05768123390822738) < 1e-05 assert reldif(G[12,1], 3.2115601342040785) < 1e-05 assert reldif(G[13,1], 1.0888433507155793) < 1e-05 assert reldif(G[14,1], 5.832971460882786) < 1e-05 assert reldif(G[15,1], 7.026558810946257) < 1e-05 assert reldif(G[1,5], 35.36508835687761) < 1e-05 assert reldif(G[4,5], 3.073910601853365) < 1e-05 assert reldif(G[3,5], 798.7079950385898) < 1e-05 assert reldif(G[5,5], 1.3862213761250726) < 1e-05 assert reldif(G[6,5], -2.6489182974996006) < 1e-05 assert reldif(G[8,5], 45.30544481392998) < 1e-05 assert reldif(G[9,5], 0.3240537449195584) < 1e-05 assert reldif(G[10,5], 55.80238508851643) < 1e-05 assert reldif(G[11,5], -0.13123671090047936) < 1e-05 assert reldif(G[12,5], 4.0727683659942455) < 1e-05 assert reldif(G[13,5], 0.09797633943787372) < 1e-05 assert reldif(G[14,5], 6.099799987163178) < 1e-05 assert reldif(G[15,5], 6.850914283479091) < 1e-05 assert reldif(G[1,9], 22.728668144071904) < 1e-05 assert reldif(G[4,9], 2.4335322877812455) < 1e-05 assert reldif(G[3,9], 542.9942160800267) < 1e-05 assert reldif(G[5,9], 0.43622756075872116) < 1e-05 assert reldif(G[6,9], -2.9706674825880763) < 1e-05 assert reldif(G[8,9], 52.26411773504361) < 1e-05 assert reldif(G[9,9], 0.3400577713412954) < 1e-05 assert reldif(G[10,9], 14.094933821748702) < 1e-05 assert reldif(G[11,9], 0.025537790761345172) < 1e-05 assert reldif(G[12,9], 3.5526999820399436) < 1e-05 assert reldif(G[13,9], 0.015193667963458292) < 1e-05 assert reldif(G[14,9], 7.514602242695405) < 1e-05 assert reldif(G[15,9], 8.439931792433828) < 1e-05 assert reldif(el(e(chow),1,1), 1.5852256673039222) < 1e-05 * ---------------------------------------------------------------- re xtpmed y, treatment(d) mediators(m1 m2) controls(x) estimator(re) matrix B0 = (1.5324301108428047, 1.0175228829175285, 0.7020917621311082, 0.4495740560679088, 0.8534968818831297, 0.2830909874680299, -0.40491150607118376, 0.28847757249041844) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-06 matrix V0 = (0.005064004877641919, -0.001982008059822713, 0.0006675942287985554, -0.0025008577283011147, 4.3797584492798895e-05, 0.0002010321792409561, -0.00024145873014221923, -0.0002300827606739855 \ -0.001982008059822713, 0.0031002010142413107, 0.0006555029682897482, -0.0007805248957439976, -0.0004447739446020736, -0.00045450033031335245, -0.00016922109807787693, 0.00025387403716602673 \ 0.0006675942287985554, 0.0006555029682897482, 0.0020337271236965746, -0.0015202889352176224, -0.0004251384005908916, 0.00025630102129214823, -0.0007038021810821068, 0.0005381648199468008 \ -0.0025008577283011147, -0.0007805248957439976, -0.0015202889352176224, 0.004418980260894933, -0.00010833424118600083, 0.0005376951364131838, -5.466298556364149e-06, -6.403838400198844e-06 \ 4.3797584492798895e-05, -0.0004447739446020736, -0.0004251384005908916, -0.00010833424118600083, 0.003779585028967857, -0.0020766202079544804, 0.0034910755459905524, -0.0017325223389098414 \ 0.0002010321792409561, -0.00045450033031335245, 0.00025630102129214823, 0.0005376951364131838, -0.0020766202079544804, 0.003107184262808292, -0.0020435121246477487, 0.0017394008671794314 \ -0.00024145873014221923, -0.00016922109807787693, -0.0007038021810821068, -5.466298556364149e-06, 0.0034910755459905524, -0.0020435121246477487, 0.0039393701061854105, -0.002092981021225805 \ -0.0002300827606739855, 0.00025387403716602673, 0.0005381648199468008, -6.403838400198844e-06, -0.0017325223389098414, 0.0017394008671794314, -0.002092981021225805, 0.003182999645685094) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-06 matrix E0 = (1.5324301108428047, 0.0711618217684366 \ 0.584167575010165, 0.11294658562409741 \ 2.1165976858529696, 0.11682082534065336 \ 0.27599367556463655, 0.042010778879356114 \ 0.8684526078148433, 0.07347813775933154 \ -0.2842850328046783, 0.05172467579186339) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-06 matrix G = e(diag) assert reldif(G[1,1], 19.263829938164072) < 1e-05 assert reldif(G[4,1], 2.0789280486297534) < 1e-05 assert reldif(G[3,1], 300.07006862402557) < 1e-05 assert reldif(G[5,1], 6.839765072513598) < 1e-05 assert reldif(G[6,1], 2.7648307352766643) < 1e-05 assert reldif(G[8,1], 36.191404060990806) < 1e-05 assert reldif(G[9,1], 0.30675947488824523) < 1e-05 assert reldif(G[10,1], 1.496880010811231) < 1e-05 assert reldif(G[11,1], -0.0391897466240001) < 1e-05 assert reldif(G[12,1], 3.1630194583449716) < 1e-05 assert reldif(G[13,1], 8.577628950809371) < 1e-05 assert reldif(G[14,1], 5.832971460882786) < 1e-05 assert reldif(G[15,1], 7.026558810946257) < 1e-05 assert reldif(G[1,5], 34.618795251484386) < 1e-05 assert reldif(G[4,5], 3.144744255553985) < 1e-05 assert reldif(G[3,5], 854.2566618450488) < 1e-05 assert reldif(G[5,5], 0.3848948601717306) < 1e-05 assert reldif(G[6,5], 3.540799822946661) < 1e-05 assert reldif(G[8,5], 49.13336606424337) < 1e-05 assert reldif(G[9,5], 0.33120525528445205) < 1e-05 assert reldif(G[10,5], 34.66871151690025) < 1e-05 assert reldif(G[11,5], -0.03119259633013467) < 1e-05 assert reldif(G[12,5], 3.8682707710282505) < 1e-05 assert reldif(G[13,5], 1.9219160119842265) < 1e-05 assert reldif(G[14,5], 6.099799987163178) < 1e-05 assert reldif(G[15,5], 6.850914283479091) < 1e-05 assert reldif(G[1,9], 27.238473752886765) < 1e-05 assert reldif(G[4,9], 2.636843744429609) < 1e-05 assert reldif(G[3,9], 483.7726666839019) < 1e-05 assert reldif(G[5,9], 0.25899229580351335) < 1e-05 assert reldif(G[6,9], 1.5526298035185502) < 1e-05 assert reldif(G[8,9], 54.239459335010935) < 1e-05 assert reldif(G[9,9], 0.3448297064590727) < 1e-05 assert reldif(G[10,9], 25.864498339843596) < 1e-05 assert reldif(G[11,9], 0.06668978856427517) < 1e-05 assert reldif(G[12,9], 3.7399689955751656) < 1e-05 assert reldif(G[13,9], 1.0054786573959509) < 1e-05 assert reldif(G[14,9], 7.514602242695405) < 1e-05 assert reldif(G[15,9], 8.439931792433828) < 1e-05 assert reldif(el(e(chow),1,1), 10.738954618674471) < 1e-05 * ---------------------------------------------------------------- re, time effects xtpmed y, treatment(d) mediators(m1 m2) controls(x) estimator(re) timefe matrix B0 = (1.527160847088683, 1.0540616459100338, 0.716495415527802, 0.41546440055083345, 0.8674795736711282, 0.272213256947365, -0.39716241552088044, 0.28512370598761816) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-06 matrix V0 = (0.0048727762621799545, -0.0017816647474423989, 0.0006772603589494451, -0.0025748315034597362, 0.00021068862597706494, 0.00020451343637084877, -0.0001318216462739378, -0.0001256841655909243 \ -0.0017816647474423989, 0.0028882782247191025, 0.0005895195385831326, -0.0007750793191179608, -0.0005426186432237499, -0.0005447158736580667, -0.00021056725426481538, 6.094720115314944e-05 \ 0.0006772603589494451, 0.0005895195385831326, 0.0020548840846927813, -0.001354602922236329, -0.00046479427826832633, 0.00011507912207710376, -0.000775995110690896, 0.0005034618642715463 \ -0.0025748315034597362, -0.0007750793191179608, -0.001354602922236329, 0.004574191390353634, 2.4775941387473284e-05, 0.00041827110108926316, 8.590223822554262e-05, -5.910897965894829e-05 \ 0.00021068862597706494, -0.0005426186432237499, -0.00046479427826832633, 2.4775941387473284e-05, 0.003105215503491541, -0.0015843800977860787, 0.0028535349997171533, -0.0011454300277058504 \ 0.00020451343637084877, -0.0005447158736580667, 0.00011507912207710376, 0.00041827110108926316, -0.0015843800977860787, 0.0029816412747566182, -0.0015658503540231321, 0.0013600626079612137 \ -0.0001318216462739378, -0.00021056725426481538, -0.000775995110690896, 8.590223822554262e-05, 0.0028535349997171533, -0.0015658503540231321, 0.003366787710387375, -0.0015715984114639135 \ -0.0001256841655909243, 6.094720115314944e-05, 0.0005034618642715463, -5.910897965894829e-05, -0.0011454300277058504, 0.0013600626079612137, -0.0015715984114639135, 0.002760975777463648) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-06 matrix E0 = (1.527160847088683, 0.0698052738863273 \ 0.629811897276465, 0.10562537593079271 \ 2.156972744365148, 0.1124974418512283 \ 0.2919888064982642, 0.03796406269624203 \ 0.9143769472171238, 0.06805299871446627 \ -0.2845650499406588, 0.04994165307973304) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-06 matrix G = e(diag) assert reldif(G[1,1], 17.86065585037069) < 1e-05 assert reldif(G[4,1], 1.9760881080293897) < 1e-05 assert reldif(G[3,1], 337.9190758786004) < 1e-05 assert reldif(G[5,1], 6.79945611398084) < 1e-05 assert reldif(G[6,1], -2.993394983469129) < 1e-05 assert reldif(G[8,1], 35.05838217580976) < 1e-05 assert reldif(G[9,1], 0.3030615781539539) < 1e-05 assert reldif(G[10,1], 1.4790561832569302) < 1e-05 assert reldif(G[11,1], 0.02465585881404446) < 1e-05 assert reldif(G[12,1], 3.172908795052069) < 1e-05 assert reldif(G[13,1], 6.391282434728881) < 1e-05 assert reldif(G[14,1], 5.832971460882786) < 1e-05 assert reldif(G[15,1], 7.026558810946257) < 1e-05 assert reldif(G[1,5], 36.748305050811304) < 1e-05 assert reldif(G[4,5], 3.0536859272600467) < 1e-05 assert reldif(G[3,5], 778.6930434208871) < 1e-05 assert reldif(G[5,5], 1.2308258946707233) < 1e-05 assert reldif(G[6,5], -2.601795871031929) < 1e-05 assert reldif(G[8,5], 46.4889777729923) < 1e-05 assert reldif(G[9,5], 0.32750899103557574) < 1e-05 assert reldif(G[10,5], 54.90211618973961) < 1e-05 assert reldif(G[11,5], -0.1324758776211585) < 1e-05 assert reldif(G[12,5], 4.062942530387908) < 1e-05 assert reldif(G[13,5], 2.923921625620456) < 1e-05 assert reldif(G[14,5], 6.099799987163178) < 1e-05 assert reldif(G[15,5], 6.850914283479091) < 1e-05 assert reldif(G[1,9], 23.0011563475578) < 1e-05 assert reldif(G[4,9], 2.4308616135742454) < 1e-05 assert reldif(G[3,9], 524.9438600711213) < 1e-05 assert reldif(G[5,9], 0.26577925945287495) < 1e-05 assert reldif(G[6,9], -2.9513849342397163) < 1e-05 assert reldif(G[8,9], 51.315882058919144) < 1e-05 assert reldif(G[9,9], 0.3366148267045492) < 1e-05 assert reldif(G[10,9], 14.444131300140718) < 1e-05 assert reldif(G[11,9], 0.0284021565847492) < 1e-05 assert reldif(G[12,9], 3.5590098272376864) < 1e-05 assert reldif(G[13,9], 1.7614289668623568) < 1e-05 assert reldif(G[14,9], 7.514602242695405) < 1e-05 assert reldif(G[15,9], 8.439931792433828) < 1e-05 assert reldif(el(e(chow),1,1), 9.802770406145505) < 1e-05 * ---------------------------------------------------------------- dfe xtpmed y, treatment(d) mediators(m1 m2) controls(x) estimator(dfe) matrix B0 = (1.452513050026747, 0.9331626320429972, 0.728274574911847, 0.5838350245438334, -0.9381821797014344, 0.7842844945613774, 0.42277645764929855, -0.8739830019920317, -0.4892203305387784, 0.4166949073040922, -0.8887155539507587) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-06 matrix V0 = (0.010608501022764354, -0.004690760134373191, 0.003156353928867649, -0.0037089617670365963, -0.0006852282101723024, 9.234822941869929e-05, 0.0010097852780474492, 0.00019703431112403746, -9.904925336664711e-05, 0.0011229791383869784, -0.0002909890173651963 \ -0.004690760134373191, 0.004753741980425641, -0.0004777252729739503, -0.0018903580336057774, 0.00026311662378201734, -0.00023743804167703823, -0.0016749231194350003, -3.654520419020673e-05, -0.0008614497633098414, -0.0001301808666020088, 0.0003783413951708418 \ 0.003156353928867649, -0.0004777252729739503, 0.004328155145994988, -0.0035558763005271387, -0.0005243756754427704, 0.0007517962537246309, -0.0012072080340864621, 0.0002990988556168472, -0.0002360646818374903, 0.000608891988778397, 0.00028062487791617854 \ -0.0037089617670365963, -0.0018903580336057774, -0.0035558763005271387, 0.009648768409588305, 0.0002965885287692226, -0.00030387847472732504, 0.001290368325246345, -0.0005366205722191495, 0.0011645719751452314, -0.0014234450989304998, -0.00027550752595069617 \ -0.0006852282101723024, 0.00026311662378201734, -0.0005243756754427704, 0.0002965885287692226, 0.0008303568454850191, -0.0005458570696685641, 0.0002675420610828199, -2.462605222543627e-05, -0.0005377435421510426, 0.00016394570439422736, 0.00013736489290127165 \ 9.234822941869929e-05, -0.00023743804167703823, 0.0007517962537246309, -0.00030387847472732504, -0.0005458570696685641, 0.005575596364291338, -0.0031733665274164247, 0.0005722719940750583, 0.00578441505934154, -0.002822370705622391, 3.34458060757551e-05 \ 0.0010097852780474492, -0.0016749231194350003, -0.0012072080340864621, 0.001290368325246345, 0.0002675420610828199, -0.0031733665274164247, 0.0073707487314169755, -1.6753595096681572e-05, -0.0019768847213299987, 0.004393327055931169, 0.0002478850406712592 \ 0.00019703431112403746, -3.654520419020673e-05, 0.0002990988556168472, -0.0005366205722191495, -2.462605222543627e-05, 0.0005722719940750583, -1.6753595096681572e-05, 0.0007721210000341583, 0.00047007006388887927, -0.0003665073145025002, 0.00013736078105088773 \ -9.904925336664711e-05, -0.0008614497633098414, -0.0002360646818374903, 0.0011645719751452314, -0.0005377435421510426, 0.00578441505934154, -0.0019768847213299987, 0.00047007006388887927, 0.00804472420148314, -0.003924748670976169, -0.0001483645575961009 \ 0.0011229791383869784, -0.0001301808666020088, 0.000608891988778397, -0.0014234450989304998, 0.00016394570439422736, -0.002822370705622391, 0.004393327055931169, -0.0003665073145025002, -0.003924748670976169, 0.009216698954199645, 0.0010676673353198173 \ -0.0002909890173651963, 0.0003783413951708418, 0.00028062487791617854, -0.00027550752595069617, 0.00013736489290127165, 3.34458060757551e-05, 0.0002478850406712592, 0.00013736078105088773, -0.0001483645575961009, 0.0010676673353198173, 0.0009819718028570266) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-06 matrix E0 = (1.452513050026747, 0.10299757775426975 \ 0.3755782549540445, 0.13950206655453273 \ 1.8280913049807914, 0.1401831780731659 \ 0.20544830224330118, 0.06572028308111356 \ 0.7318649832154066, 0.08620718827101811 \ -0.3562867282613621, 0.07396547109376617) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-06 matrix G = e(diag) assert reldif(G[1,1], 2.6757114672852786) < 1e-05 assert reldif(G[4,1], 1.7779889221924745) < 1e-05 assert reldif(G[3,1], 357.8919046165053) < 1e-05 assert reldif(G[5,1], 2.5226052777157015) < 1e-05 assert reldif(G[6,1], 2.0139061162809875) < 1e-05 assert reldif(G[8,1], 23.017084717428574) < 1e-05 assert reldif(G[9,1], 0.31432087163289985) < 1e-05 assert reldif(G[10,1], 0.6557293578251723) < 1e-05 assert reldif(G[11,1], 0.03521604893560696) < 1e-05 assert reldif(G[12,1], 3.1070830397660583) < 1e-05 assert reldif(G[13,1], 6.93672296570682) < 1e-05 assert reldif(G[14,1], 5.832971460882786) < 1e-05 assert reldif(G[15,1], 7.026558810946257) < 1e-05 assert reldif(G[16,1], -0.9381821797014344) < 1e-05 assert reldif(G[1,5], 10.288461145916049) < 1e-05 assert reldif(G[4,5], 2.694788101574837) < 1e-05 assert reldif(G[3,5], 621.4306819044906) < 1e-05 assert reldif(G[5,5], 0.4433214185887415) < 1e-05 assert reldif(G[6,5], 4.70713968773342) < 1e-05 assert reldif(G[8,5], 35.35509251625505) < 1e-05 assert reldif(G[9,5], 0.3453117041044889) < 1e-05 assert reldif(G[10,5], 21.146495289058056) < 1e-05 assert reldif(G[11,5], -0.028866405826081475) < 1e-05 assert reldif(G[12,5], 3.7255570163536587) < 1e-05 assert reldif(G[13,5], 1.8085552899626969) < 1e-05 assert reldif(G[14,5], 6.099799987163178) < 1e-05 assert reldif(G[15,5], 6.850914283479091) < 1e-05 assert reldif(G[16,5], -0.8739830019920317) < 1e-05 assert reldif(G[1,9], 3.5476013831349937) < 1e-05 assert reldif(G[4,9], 2.146396702186527) < 1e-05 assert reldif(G[3,9], 527.0652119224595) < 1e-05 assert reldif(G[5,9], 1.0115666536784613) < 1e-05 assert reldif(G[6,9], 1.724247128558144) < 1e-05 assert reldif(G[8,9], 44.329529483815946) < 1e-05 assert reldif(G[9,9], 0.37147385869648153) < 1e-05 assert reldif(G[10,9], 10.669223531355888) < 1e-05 assert reldif(G[11,9], 0.06750651546016004) < 1e-05 assert reldif(G[12,9], 3.4990580312878663) < 1e-05 assert reldif(G[13,9], 9.32355478547472) < 1e-05 assert reldif(G[14,9], 7.514602242695405) < 1e-05 assert reldif(G[15,9], 8.439931792433828) < 1e-05 assert reldif(G[16,9], -0.8887155539507587) < 1e-05 assert reldif(el(e(chow),1,1), 14.583306212340641) < 1e-05 * ---------------------------------------------------------------- ccep xtpmed y, treatment(d) mediators(m1 m2) controls(x) estimator(ccep) matrix B0 = (1.4560299704292428, 1.0062477532613623, 0.6216312560165075, 0.4920789335338349, 0.8530151400482007, 0.2636441630085477, -0.4819746489661551, 0.32587840686453423) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-06 matrix V0 = (0.0030913740884433204, -0.0014432105742713495, 0.0008920486211792439, -0.0006891536802624915, 1.767935411367254e-06, 0.00011880060927193512, 5.220340554042446e-05, -0.00026486954393982345 \ -0.0014432105742713495, 0.0019647042106030617, 9.287116042015878e-06, -0.0005733586996411824, 0.00027443135589715935, 4.441090493499523e-06, 0.00016607814155148568, -0.00010483993656431582 \ 0.0008920486211792439, 9.287116042015878e-06, 0.0011982912979383385, -0.0005745766727884899, 0.00042066580380324426, -0.00027725301576236877, 7.573609941256457e-05, -0.00018427609206874416 \ -0.0006891536802624915, -0.0005733586996411824, -0.0005745766727884899, 0.002108962726016147, 0.00014316252954099727, -0.0002798241200394735, -1.2270514727381592e-05, 9.229187754817004e-05 \ 1.767935411367254e-06, 0.00027443135589715935, 0.00042066580380324426, 0.00014316252954099727, 0.0015890904233360123, -0.0009696355155710461, 0.0006631792080172938, 3.079856617997793e-05 \ 0.00011880060927193512, 4.441090493499523e-06, -0.00027725301576236877, -0.0002798241200394735, -0.0009696355155710461, 0.002135630428250026, -0.00043700507438391295, -0.0002960501403512973 \ 5.220340554042446e-05, 0.00016607814155148568, 7.573609941256457e-05, -1.2270514727381592e-05, 0.0006631792080172938, -0.00043700507438391295, 0.001821465672992619, -0.0008575110627300242 \ -0.00026486954393982345, -0.00010483993656431582, -0.00018427609206874416, 9.229187754817004e-05, 3.079856617997793e-05, -0.0002960501403512973, -0.0008575110627300242, 0.0019137239524419523) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-06 matrix E0 = (1.4560299704292428, 0.0556001266922394 \ 0.558734061766482, 0.07096947377782775 \ 2.0147640321957248, 0.06981726300119476 \ 0.27731985127685843, 0.02944863492091723 \ 0.8583445681714282, 0.059242801102526776 \ -0.2996105064049463, 0.030607850571572) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-06 matrix G = e(diag) assert reldif(G[1,1], 0.03523109647202291) < 1e-05 assert reldif(G[4,1], 1.357801070984976) < 1e-05 assert reldif(G[3,1], 285.556585514927) < 1e-05 assert reldif(G[5,1], 1.0981747028335866) < 1e-05 assert reldif(G[6,1], -2.4658774563652104) < 1e-05 assert reldif(G[8,1], 12.361921377914024) < 1e-05 assert reldif(G[9,1], 0.24351941885238118) < 1e-05 assert reldif(G[10,1], 0.6203735346808834) < 1e-05 assert reldif(G[11,1], -0.02174294517565784) < 1e-05 assert reldif(G[12,1], 3.1080233983965404) < 1e-05 assert reldif(G[13,1], 0.9210518529885858) < 1e-05 assert reldif(G[14,1], 5.832971460882786) < 1e-05 assert reldif(G[15,1], 7.026558810946257) < 1e-05 assert reldif(G[1,5], 0.497269253291241) < 1e-05 assert reldif(G[4,5], 1.5176418257684718) < 1e-05 assert reldif(G[3,5], 442.2002673029544) < 1e-05 assert reldif(G[5,5], 10.801919113719677) < 1e-05 assert reldif(G[6,5], -2.4094263611360174) < 1e-05 assert reldif(G[8,5], 17.887924924643936) < 1e-05 assert reldif(G[9,5], 0.26086201605116605) < 1e-05 assert reldif(G[10,5], 2.5293831543589196) < 1e-05 assert reldif(G[11,5], -0.0046928719526915285) < 1e-05 assert reldif(G[12,5], 3.234944613248735) < 1e-05 assert reldif(G[13,5], 0.048854584959000455) < 1e-05 assert reldif(G[14,5], 6.099799987163178) < 1e-05 assert reldif(G[15,5], 6.850914283479091) < 1e-05 assert reldif(G[1,9], 0.9062179059586132) < 1e-05 assert reldif(G[4,9], 1.1640394343628353) < 1e-05 assert reldif(G[3,9], 198.46249342367585) < 1e-05 assert reldif(G[5,9], 1.1720006079089493) < 1e-05 assert reldif(G[6,9], -2.715800165598118) < 1e-05 assert reldif(G[8,9], 19.23276933090225) < 1e-05 assert reldif(G[9,9], 0.26196009689098415) < 1e-05 assert reldif(G[10,9], 0.8381806576881982) < 1e-05 assert reldif(G[11,9], 0.0659219558875351) < 1e-05 assert reldif(G[12,9], 3.0306279548857855) < 1e-05 assert reldif(G[13,9], 0.0031452176542098947) < 1e-05 assert reldif(G[14,9], 7.514602242695405) < 1e-05 assert reldif(G[15,9], 8.439931792433828) < 1e-05 assert reldif(el(e(chow),1,1), 1.0065565298789267) < 1e-05 * ---------------------------------------------------------------- ccep, Driscoll-Kraay xtpmed y, treatment(d) mediators(m1 m2) controls(x) estimator(ccep) vce(dk) matrix B0 = (1.4560299704292428, 1.0062477532613623, 0.6216312560165075, 0.4920789335338349, 0.8530151400482007, 0.2636441630085477, -0.4819746489661551, 0.32587840686453423) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-06 matrix V0 = (0.0010273071181442718, -0.0006114501728043925, 0.00028247705896344236, 6.738138095480276e-05, -0.00012487297997454896, 0.0002554076862833588, 2.1721606380244513e-05, -0.00014842136387308887 \ -0.0006114501728043925, 0.0005998841898185159, -5.69868541541041e-05, -0.00020956181180997128, 9.904409145520812e-05, -1.726990873556228e-05, -0.00013748636710605538, 0.0001213648161089275 \ 0.00028247705896344236, -5.69868541541041e-05, 0.00042981231770067627, -2.20924414440948e-05, -0.00011545193955348271, -0.0001243998087762885, 0.00012802278262923623, 0.00023808475864982957 \ 6.738138095480276e-05, -0.00020956181180997128, -2.20924414440948e-05, 0.0008520683110008874, 0.000305510859787865, -0.0008467806679969118, -4.993689719543723e-05, 2.1481953100725648e-05 \ -0.00012487297997454896, 9.904409145520812e-05, -0.00011545193955348271, 0.000305510859787865, 0.0017032534159129073, -0.0011507191938320519, 0.00026267135385828455, -0.0004229503487356427 \ 0.0002554076862833588, -1.726990873556228e-05, -0.0001243998087762885, -0.0008467806679969118, -0.0011507191938320519, 0.0020825823082099557, -0.00021815644099342895, -0.0002399714259937276 \ 2.1721606380244513e-05, -0.00013748636710605538, 0.00012802278262923623, -4.993689719543723e-05, 0.00026267135385828455, -0.00021815644099342895, 0.0007447849554762336, -0.00014250153571312678 \ -0.00014842136387308887, 0.0001213648161089275, 0.00023808475864982957, 2.1481953100725648e-05, -0.0004229503487356427, -0.0002399714259937276, -0.00014250153571312678, 0.0012949055076386397) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-06 matrix E0 = (1.4560299704292428, 0.0320516320654832 \ 0.558734061766482, 0.05462333192320288 \ 2.0147640321957248, 0.049711857581964086 \ 0.27731985127685843, 0.02189446078637443 \ 0.8583445681714282, 0.0482817508124065 \ -0.2996105064049463, 0.01763335220104681) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-06 matrix G = e(diag) assert reldif(G[1,1], 0.03523109647202291) < 1e-05 assert reldif(G[4,1], 1.357801070984976) < 1e-05 assert reldif(G[3,1], 285.556585514927) < 1e-05 assert reldif(G[5,1], 1.0981747028335866) < 1e-05 assert reldif(G[6,1], -2.4658774563652104) < 1e-05 assert reldif(G[8,1], 12.361921377914024) < 1e-05 assert reldif(G[9,1], 0.24351941885238118) < 1e-05 assert reldif(G[10,1], 0.6203735346808834) < 1e-05 assert reldif(G[11,1], -0.02174294517565784) < 1e-05 assert reldif(G[12,1], 3.1080233983965404) < 1e-05 assert reldif(G[13,1], 1.371586790498314) < 1e-05 assert reldif(G[14,1], 5.832971460882786) < 1e-05 assert reldif(G[15,1], 7.026558810946257) < 1e-05 assert reldif(G[1,5], 0.497269253291241) < 1e-05 assert reldif(G[4,5], 1.5176418257684718) < 1e-05 assert reldif(G[3,5], 442.2002673029544) < 1e-05 assert reldif(G[5,5], 10.801919113719677) < 1e-05 assert reldif(G[6,5], -2.4094263611360174) < 1e-05 assert reldif(G[8,5], 17.887924924643936) < 1e-05 assert reldif(G[9,5], 0.26086201605116605) < 1e-05 assert reldif(G[10,5], 2.5293831543589196) < 1e-05 assert reldif(G[11,5], -0.0046928719526915285) < 1e-05 assert reldif(G[12,5], 3.234944613248735) < 1e-05 assert reldif(G[13,5], 0.055013474632286674) < 1e-05 assert reldif(G[14,5], 6.099799987163178) < 1e-05 assert reldif(G[15,5], 6.850914283479091) < 1e-05 assert reldif(G[1,9], 0.9062179059586132) < 1e-05 assert reldif(G[4,9], 1.1640394343628353) < 1e-05 assert reldif(G[3,9], 198.46249342367585) < 1e-05 assert reldif(G[5,9], 1.1720006079089493) < 1e-05 assert reldif(G[6,9], -2.715800165598118) < 1e-05 assert reldif(G[8,9], 19.23276933090225) < 1e-05 assert reldif(G[9,9], 0.26196009689098415) < 1e-05 assert reldif(G[10,9], 0.8381806576881982) < 1e-05 assert reldif(G[11,9], 0.0659219558875351) < 1e-05 assert reldif(G[12,9], 3.0306279548857855) < 1e-05 assert reldif(G[13,9], 0.016732528024195406) < 1e-05 assert reldif(G[14,9], 7.514602242695405) < 1e-05 assert reldif(G[15,9], 8.439931792433828) < 1e-05 assert reldif(el(e(chow),1,1), 2.52444587997114) < 1e-05 * ---------------------------------------------------------------- ccemg xtpmed y, treatment(d) mediators(m1 m2) controls(x) estimator(ccemg) matrix B0 = (1.5217081913494583, 0.9529993329987634, 0.630114027817769, 0.51205722507452, 0.8819792826750222, 0.2021070788781238, -0.4470391897678802, 0.2604806265286595) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-06 matrix V0 = (0.005905586572372827, -0.0031476127282152205, 0.00038331087029577185, 0.000388614078066121, 8.284340187329306e-05, 0.00029498790121699873, -0.0006539784316741904, 0.0002498810594559431 \ -0.0031476127282152205, 0.0035181545057796607, 0.0004599410618093624, -0.001282985120914456, 0.00016774261160129846, -5.741541295762011e-05, 0.0002225534236090033, -0.00031447217580732464 \ 0.00038331087029577185, 0.0004599410618093624, 0.0018158351791570093, -0.00032894766719878386, 0.00024332080715406748, -0.000303583604115437, 6.177195408227212e-05, -0.00035532550517928683 \ 0.000388614078066121, -0.001282985120914456, -0.00032894766719878386, 0.0031949098482609906, -6.188944101548227e-05, -0.00025656233212210185, 0.00017478899948502135, -0.0009505594288459953 \ 8.284340187329306e-05, 0.00016774261160129846, 0.00024332080715406748, -6.188944101548227e-05, 0.0016652689257297048, -0.0008685263126881335, 0.00046348567186270823, -1.4374750472079606e-06 \ 0.00029498790121699873, -5.741541295762011e-05, -0.000303583604115437, -0.00025656233212210185, -0.0008685263126881335, 0.00264912309380056, -0.0007610391894565338, 0.00028969264581836166 \ -0.0006539784316741904, 0.0002225534236090033, 6.177195408227212e-05, 0.00017478899948502135, 0.00046348567186270823, -0.0007610391894565338, 0.0028284950928601266, -0.0011782702127573822 \ 0.0002498810594559431, -0.00031447217580732464, -0.00035532550517928683, -0.0009505594288459953, -1.4374750472079606e-06, 0.00028969264581836166, -0.0011782702127573822, 0.0026215061700037273) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-06 matrix E0 = (1.5217081913494583, 0.07684781436830987 \ 0.558840003650993, 0.07884313506155426 \ 2.080548195000451, 0.07456940103643452 \ 0.2686022871250391, 0.03412355791884028 \ 0.840525668108024, 0.06731361159094298 \ -0.281685664457031, 0.038093561248208486) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-06 matrix G = e(diag) assert reldif(G[1,1], 1.1964558602499566) < 1e-05 assert reldif(G[4,1], 2.024903779553588) < 1e-05 assert reldif(G[3,1], 1014.6050214363651) < 1e-05 assert reldif(G[5,1], 0.9655551771143958) < 1e-05 assert reldif(G[6,1], -2.2089089687942027) < 1e-05 assert reldif(G[8,1], 11.8946770028984) < 1e-05 assert reldif(G[9,1], 0.24258284011882134) < 1e-05 assert reldif(G[10,1], 15.688722672709352) < 1e-05 assert reldif(G[11,1], 0.14118997772137157) < 1e-05 assert reldif(G[12,1], 3.513015068700799) < 1e-05 assert missing(G[13,1]) assert reldif(G[14,1], 5.832971460882786) < 1e-05 assert reldif(G[15,1], 7.026558810946257) < 1e-05 assert reldif(G[1,5], 0.018784440818583686) < 1e-05 assert reldif(G[4,5], 1.724596837014302) < 1e-05 assert reldif(G[3,5], 619.4995731974603) < 1e-05 assert reldif(G[5,5], 5.893066741255278) < 1e-05 assert reldif(G[6,5], -2.345602663364968) < 1e-05 assert reldif(G[8,5], 10.69357118328573) < 1e-05 assert reldif(G[9,5], 0.2415508825830843) < 1e-05 assert reldif(G[10,5], 11.817470031887241) < 1e-05 assert reldif(G[11,5], -0.04054026384468994) < 1e-05 assert reldif(G[12,5], 3.5017283168387623) < 1e-05 assert missing(G[13,5]) assert reldif(G[14,5], 6.099799987163178) < 1e-05 assert reldif(G[15,5], 6.850914283479091) < 1e-05 assert reldif(G[1,9], 5.600210494871833e-05) < 1e-05 assert reldif(G[4,9], 1.2468869413472803) < 1e-05 assert reldif(G[3,9], 235.5826239069171) < 1e-05 assert reldif(G[5,9], 1.6975072157996394) < 1e-05 assert reldif(G[6,9], -2.2488155974240107) < 1e-05 assert reldif(G[8,9], 10.574500397360506) < 1e-05 assert reldif(G[9,9], 0.23642671370705667) < 1e-05 assert reldif(G[10,9], 4.392132877994399) < 1e-05 assert reldif(G[11,9], -0.05037767101393936) < 1e-05 assert reldif(G[12,9], 3.293003865998183) < 1e-05 assert missing(G[13,9]) assert reldif(G[14,9], 7.514602242695405) < 1e-05 assert reldif(G[15,9], 8.439931792433828) < 1e-05 use xtpmed_cert_dynamic, clear xtset id year * ---------------------------------------------------------------- dfe (dynamic panel) xtpmed y, treatment(d) mediators(m) estimator(dfe) matrix B0 = (1.4088128212075974, 1.0019479272400014, -0.6481444592399307, 0.6607523505735492, -0.5523737900035435) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-06 matrix V0 = (0.005804127081507743, 0.0011684487312697157, 0.00034092522873456737, 0.0017137472541833376, -0.0002066650712793383 \ 0.0011684487312697157, 0.007530790858378655, 0.001019554506815371, 0.0008045329290604065, -0.00028566661456244657 \ 0.00034092522873456737, 0.001019554506815371, 0.0003797762985654771, 0.0005269111171631093, 1.9987432775699453e-05 \ 0.0017137472541833376, 0.0008045329290604065, 0.0005269111171631093, 0.009458639211780745, 0.0003967084085697858 \ -0.0002066650712793383, -0.00028566661456244657, 1.9987432775699453e-05, 0.0003967084085697858, 0.0002697867378889365) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-06 matrix E0 = (1.4088128212075974, 0.07618482186231892 \ 0.6620394480761264, 0.11768043706613118 \ 2.0708522692837237, 0.15694296371811722 \ 0.31969419446087083, 0.0371541334493876) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-06 matrix G = e(diag) assert reldif(G[1,1], 0.010777504534265119) < 1e-05 assert reldif(G[4,1], 6.964856905877363) < 1e-05 assert reldif(G[3,1], 910.8141117895437) < 1e-05 assert reldif(G[5,1], 4.249646929957298) < 1e-05 assert reldif(G[6,1], -0.9182451295970948) < 1e-05 assert reldif(G[8,1], 48.75614216836496) < 1e-05 assert reldif(G[9,1], 0.26471959839515713) < 1e-05 assert reldif(G[10,1], 391.38462108323785) < 1e-05 assert reldif(G[11,1], -0.28564908006615247) < 1e-05 assert reldif(G[12,1], 5.49662516236098) < 1e-05 assert reldif(G[13,1], 1.597367744482015) < 1e-05 assert reldif(G[14,1], 12.681565018898436) < 1e-05 assert reldif(G[15,1], 13.380790625670969) < 1e-05 assert reldif(G[16,1], -0.6481444592399307) < 1e-05 assert reldif(G[1,5], 19.292840551563362) < 1e-05 assert reldif(G[4,5], 3.8881730035306186) < 1e-05 assert reldif(G[3,5], 427.4907279755937) < 1e-05 assert reldif(G[5,5], 0.08248108121501563) < 1e-05 assert reldif(G[6,5], 7.246706269586033) < 1e-05 assert reldif(G[8,5], 72.05685203087474) < 1e-05 assert reldif(G[9,5], 0.31583309200588366) < 1e-05 assert reldif(G[10,5], 10.157175292981055) < 1e-05 assert reldif(G[11,5], 0.05799989649018113) < 1e-05 assert reldif(G[12,5], 3.39594953741485) < 1e-05 assert reldif(G[13,5], 1.0303113492665719) < 1e-05 assert reldif(G[14,5], 26.789323246212092) < 1e-05 assert reldif(G[15,5], 27.87434719818123) < 1e-05 assert reldif(G[16,5], -0.5523737900035435) < 1e-05 assert reldif(el(e(chow),1,1), 2.7489011204077385) < 1e-05 * ---------------------------------------------------------------- mg (dynamic panel) xtpmed y, treatment(d) mediators(m) estimator(mg) matrix B0 = (1.521397697334821, 0.9347746632108841, -0.6561590381661849, 0.7477027407399576, -0.5700456436617268) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-06 matrix V0 = (0.00705957366850253, -0.0015963800588097794, 0.0002998765245767295, 0.0018587085139537046, -0.00011523219089053554 \ -0.0015963800588097794, 0.0031717401131392473, 0.00023458288200376958, -5.74196987604711e-06, 0.00011208459225587843 \ 0.0002998765245767295, 0.00023458288200376958, 0.0003272013998842254, 0.00032104538209608155, 9.883483570740834e-05 \ 0.0018587085139537046, -5.74196987604711e-06, 0.00032104538209608155, 0.006692213920512479, 0.00036748798492998707 \ -0.00011523219089053554, 0.00011208459225587843, 9.883483570740834e-05, 0.00036748798492998707, 0.0004799425735952466) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-06 matrix E0 = (1.521397697334821, 0.08402126914606702 \ 0.6989335776570488, 0.0872516227254528 \ 2.22033127499187, 0.1255393607466426 \ 0.3147879712947826, 0.028624245497008153) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-06 matrix G = e(diag) assert reldif(G[1,1], 0.42032055826056625) < 1e-05 assert reldif(G[4,1], 4.192843463001273) < 1e-05 assert reldif(G[3,1], 375.25205408878105) < 1e-05 assert reldif(G[5,1], 1.1089162007056457) < 1e-05 assert reldif(G[6,1], 0.8755723434901692) < 1e-05 assert reldif(G[8,1], 0.6406019706452667) < 1e-05 assert reldif(G[9,1], 0.14552230230271543) < 1e-05 assert reldif(G[10,1], 63.18914840504918) < 1e-05 assert reldif(G[11,1], -0.0792101210569137) < 1e-05 assert reldif(G[12,1], 4.016827927270455) < 1e-05 assert reldif(G[13,1], 0.14965930470942831) < 1e-05 assert reldif(G[14,1], 12.681565018898436) < 1e-05 assert reldif(G[15,1], 13.380790625670969) < 1e-05 assert reldif(G[16,1], -0.6561590381661849) < 1e-05 assert reldif(G[1,5], 13.16581213554118) < 1e-05 assert reldif(G[4,5], 2.5503263147591233) < 1e-05 assert reldif(G[3,5], 255.1477124211509) < 1e-05 assert reldif(G[5,5], 0.7378223816308491) < 1e-05 assert reldif(G[6,5], 3.1683063228311017) < 1e-05 assert reldif(G[8,5], 11.949899175194403) < 1e-05 assert reldif(G[9,5], 0.18140517574840542) < 1e-05 assert reldif(G[10,5], 0.2009005542260557) < 1e-05 assert reldif(G[11,5], 0.0016020160679663922) < 1e-05 assert reldif(G[12,5], 3.057937747392542) < 1e-05 assert reldif(G[13,5], 1.6293119438573123) < 1e-05 assert reldif(G[14,5], 26.789323246212092) < 1e-05 assert reldif(G[15,5], 27.87434719818123) < 1e-05 assert reldif(G[16,5], -0.5700456436617268) < 1e-05 assert reldif(el(e(chow),1,1), 1.7106256670548268) < 1e-05 * ---------------------------------------------------------------- pmg (dynamic panel) xtpmed y, treatment(d) mediators(m) estimator(pmg) matrix B0 = (1.5043655866822512, 1.0698781315183115, -0.6021606146496745, 0.837396700880382, -0.5014901534597417) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-05 matrix V0 = (0.002189963287305815, -0.0006170698043806313, -0.00018212118140746003, 0.00019337783355220114, 2.4943026766568084e-06 \ -0.0006170698043806313, 0.0022736082666715697, 6.99456337952231e-05, 0.0003950791888174085, 0.0001476714833492893 \ -0.00018212118140746003, 6.99456337952231e-05, 0.00026417025137061214, 6.411462326591042e-05, 0.00010774466479547213 \ 0.00019337783355220114, 0.0003950791888174085, 6.411462326591042e-05, 0.0012879888336126267, -6.557270290574912e-05 \ 2.4943026766568084e-06, 0.0001476714833492893, 0.00010774466479547213, -6.557270290574912e-05, 0.0005864567027918505) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-05 matrix E0 = (1.5043655866822512, 0.04679704357710192 \ 0.8959124176775014, 0.0614534369288869 \ 2.4002780043597527, 0.07312185167308104 \ 0.37325360481169595, 0.018319504495930575) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-05 matrix G = e(diag) assert reldif(G[1,1], 0.7940589195099576) < 1e-05 assert reldif(G[4,1], 4.664583992739044) < 1e-05 assert reldif(G[3,1], 440.00097576263744) < 1e-05 assert reldif(G[5,1], 0.12637087097212607) < 1e-05 assert reldif(G[6,1], -0.11025626050482591) < 1e-05 assert reldif(G[8,1], 5.345577445577585) < 1e-05 assert reldif(G[9,1], 0.16037409888592474) < 1e-05 assert reldif(G[10,1], 39.226770404214165) < 1e-05 assert reldif(G[11,1], -0.07280705570823197) < 1e-05 assert reldif(G[12,1], 3.797639289887524) < 1e-05 assert reldif(G[13,1], 0.8083017443603936) < 1e-05 assert reldif(G[14,1], 12.681565018898436) < 1e-05 assert reldif(G[15,1], 13.380790625670969) < 1e-05 assert reldif(G[16,1], -0.6021606146496745) < 1e-05 assert reldif(G[1,5], 10.112463092180603) < 1e-05 assert reldif(G[4,5], 2.4649083912798773) < 1e-05 assert reldif(G[3,5], 300.5058839180566) < 1e-05 assert reldif(G[5,5], 0.30592521147842433) < 1e-05 assert reldif(G[6,5], 3.7137586100081856) < 1e-05 assert reldif(G[8,5], 17.685888869376072) < 1e-05 assert reldif(G[9,5], 0.19695104543803504) < 1e-05 assert reldif(G[10,5], 1.3879770801484477) < 1e-05 assert reldif(G[11,5], 0.034252482327172026) < 1e-05 assert reldif(G[12,5], 3.136269055616156) < 1e-05 assert reldif(G[13,5], 1.045594469955188) < 1e-05 assert reldif(G[14,5], 26.789323246212092) < 1e-05 assert reldif(G[15,5], 27.87434719818123) < 1e-05 assert reldif(G[16,5], -0.5014901534597417) < 1e-05 assert reldif(el(e(chow),1,1), 1.5508571678206091) < 1e-05 * ---------------------------------------------------------------- csardl (dynamic panel) xtpmed y, treatment(d) mediators(m) estimator(csardl) matrix B0 = (1.315379526771341, 0.9285003474147413, -0.749099409500902, 0.7708632362812976, -0.6151874980307366) matrix B1 = e(b) assert mreldif(B1, B0) < 1e-06 matrix V0 = (0.008123366129200406, -0.003279268255493637, 0.00042657127252571233, 0.000745714076898072, 0.00012252295996228473 \ -0.003279268255493637, 0.0066583356076770125, 0.00011799822851395806, -6.37340977148199e-05, -0.00015247993088962012 \ 0.00042657127252571233, 0.00011799822851395806, 0.0006114035695666311, 0.00016587045840025974, -5.68619131173637e-05 \ 0.000745714076898072, -6.37340977148199e-05, 0.00016587045840025974, 0.005518569575813965, 0.0007889172494190297 \ 0.00012252295996228473, -0.00015247993088962012, -5.68619131173637e-05, 0.0007889172494190297, 0.0005731930286171958) matrix V1 = e(V) assert mreldif(V1, V0) < 1e-06 matrix E0 = (1.315379526771341, 0.09012971835220354 \ 0.7157467826964367, 0.09285999499876771 \ 2.0311263094677776, 0.11434772266285412 \ 0.3523891051777996, 0.03638961579237657) matrix E1 = e(effects) matrix E1 = E1[1..., 1..2] assert mreldif(E1, E0) < 1e-06 matrix G = e(diag) assert reldif(G[1,1], 0.4915669003219468) < 1e-05 assert reldif(G[4,1], 2.660942744436775) < 1e-05 assert reldif(G[3,1], 263.1889084131108) < 1e-05 assert reldif(G[5,1], 3.048015102254679) < 1e-05 assert reldif(G[6,1], -1.396180339536059) < 1e-05 assert reldif(G[8,1], 8.610192876455885) < 1e-05 assert reldif(G[9,1], 0.17546079550371022) < 1e-05 assert reldif(G[10,1], 14.443096767939274) < 1e-05 assert reldif(G[11,1], -0.08852653011269204) < 1e-05 assert reldif(G[12,1], 3.473584464647846) < 1e-05 assert missing(G[13,1]) assert reldif(G[14,1], 12.681565018898436) < 1e-05 assert reldif(G[15,1], 13.380790625670969) < 1e-05 assert reldif(G[16,1], -0.749099409500902) < 1e-05 assert reldif(G[1,5], 8.591039894392448) < 1e-05 assert reldif(G[4,5], 1.584786303329626) < 1e-05 assert reldif(G[3,5], 150.749025151568) < 1e-05 assert reldif(G[5,5], 1.9891816716480806) < 1e-05 assert reldif(G[6,5], -3.178209681736723) < 1e-05 assert reldif(G[8,5], 10.615316629466431) < 1e-05 assert reldif(G[9,5], 0.18095180557071225) < 1e-05 assert reldif(G[10,5], 0.7553060035980371) < 1e-05 assert reldif(G[11,5], -0.021746136595550213) < 1e-05 assert reldif(G[12,5], 2.8928707788511305) < 1e-05 assert missing(G[13,5]) assert reldif(G[14,5], 26.789323246212092) < 1e-05 assert reldif(G[15,5], 27.87434719818123) < 1e-05 assert reldif(G[16,5], -0.6151874980307366) < 1e-05 * ---------------------------------------------------------------- dml (random splits: check against the true effects) use xtpmed_cert_static, clear xtset id year set seed 20261111 xtpmed y, treatment(d) mediators(m1 m2) controls(x) estimator(dml) lags(0) ivlags(2) matrix E1 = e(effects) assert abs(E1[3,1] - 2.0) < 0.7 assert abs(E1[2,1] - 0.5) < 0.7 assert E1[1,2] < . & E1[2,2] < . & E1[3,2] < . matrix G = e(diag) assert G[1,1] < . & G[2,1] < . * ---------------------------------------------------------------- bootstrap runs set seed 1 xtpmed y, treatment(d) mediators(m1 m2) controls(x) estimator(fe) bootstrap(50) nodots nodiag assert e(bootstrap) == 50 & el(e(effects),3,2) < . * ---------------------------------------------------------------- error checks rcof "xtpmed y, treatment(d) mediators(m1) estimator(bogus)" == 198 rcof "xtpmed y, treatment(d) mediators(m1) estimator(mg) vce(dk)" == 198 rcof "xtpmed y, treatment(d) mediators(m1) d1(1) d0(1)" == 198 rcof "xtpmed y, treatment(d) mediators(d)" == 198 xtset, clear rcof "xtpmed y, treatment(d) mediators(m1) estimator(fe)" == 459 di as res "xtpmed certification completed"