*********************************************** * run specifications reported in Table 4 * perform qml estimation then calculate standard errors clustered by drug category * estimation program reports unclustered standard errors; clustered standard errors computed by hand * clustered standard errors reported below estimation, after which unclustered standard errors are computed to check against estimation program * do-file and data set created 5/1/2005 *********************************************** clear set mem 100m set mat 100 set more off set type double log using table4, replace text *************************** * load data and prepare variables needed to compute standard errors *************************** * load data use public-qje-drugs, clear * create dummies for time intervals xi i.yearint * set all drugcat counts to zero if missing gen one=1 foreach kind in appnongen appnewmol { replace `kind' = 0 if `kind'==. } * estimate first stages (first for non generics then for new molecules): * IV for lagged dependent variable areg llnappnongen missdum1lnappnongen missdum2dlnappnongen l2dlnappnongen _Iyearint* [aw=totcatspend], absorb(drug) predict firststdepappnongen, resid areg llnappnewmol missdum1lnappnewmol missdum2dlnappnewmol l2dlnappnewmol _Iyearint* [aw=totcatspend], absorb(drug) predict firststdepnm, resid areg lnmktinc lnmktinciv _Iyearint* [aw=totcatspend], absorb(drug) predict firststiv, resid * expand variables similarly to table 2 foreach kind in lnmktinc llnappnongen llnappnewmol firststdepappnongen firststdepnm firststiv lifeyearslost crispfund lnmktincins { qui for X in num 1/6: gen `kind'X=`kind' if yearint==X sort drugcat yearint qui for X in num 1/6: by drugcat: replace `kind'X=`kind'X[_n-1] if `kind'X==. gsort drugcat -yearint qui for X in num 1/6: by drugcat: replace `kind'X=`kind'X[_n-1] if `kind'X==. } * expand missing approval dummy variables foreach kind in missdum1lnappnongen missdum1lnappnewmol { qui for X in num 1/6: gen `kind'X = `kind' if yearint==X qui for X in num 1/6: replace `kind'X=0 if `kind'X==0 sort drugcat yearint qui for X in num 1/6: by drug: egen max`kind'X = max(`kind'X) qui for X in num 1/6: replace `kind'X=max`kind'X } * calculate total drug approvals by category, taking sum over first 5 time periods for lead specifications foreach kind in appnongen appnewmol { sort drugcat yearint by drugcat: egen tot`kind' = sum(`kind') by drugcat: egen totf`kind' = sum(`kind') if yearint<6 } *************************** * Column 1: lagged dependent variable *************************** ****** * Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnongen qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnongen = lnmktinc llnappnongen missdum1lnappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max gen pit = exp([#1]lnmktinc*lnmktinc+[#1]llnappnongen*llnappnongen+[#1]missdum1lnappnongen*missdum1lnappnongen)/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]llnappnongen*llnappnongen+[#1]missdum1lnappnongen*missdum1lnappnongen+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6)) if yearint==X gen pitinv = 1/pit gen wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6)) gen lwtpit = (llnappnongen1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1)+llnappnongen2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]_Iyearint_2)+llnappnongen3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]_Iyearint_3)+llnappnongen4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]_Iyearint_4)+llnappnongen5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]_Iyearint_5)+llnappnongen6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6)) gen mwtpit = (missdum1lnappnongen1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1)+missdum1lnappnongen2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]_Iyearint_2)+missdum1lnappnongen3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]_Iyearint_3)+missdum1lnappnongen4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]_Iyearint_4)+missdum1lnappnongen5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]_Iyearint_5)+missdum1lnappnongen6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6)) gen pitdenom = (exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6)) gen uit = appnongen - totappnongen*pit summ uit gen p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: gen pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]llnappnongen*llnappnongenX+[#1]missdum1lnappnongen*missdum1lnappnongenX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]llnappnongen*llnappnongenX+[#1]missdum1lnappnongen*missdum1lnappnongenX+[#1]_Iyearint_X)/pitdenom if yearint==X gen p7 = llnappnongen*pit-pit*lwtpit gen p8 = missdum1lnappnongen*pit-pit*mwtpit summ totcatspend gen wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p7 p8 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnongen if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]llnappnongen,[#1]missdum1lnappnongen,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc llnappnongen missdum1lnappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc llnappnongen missdum1lnappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc llnappnongen missdum1lnappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]llnappnongen,[#1]missdum1lnappnongen,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc llnappnongen missdum1lnappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc llnappnongen missdum1lnappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc llnappnongen missdum1lnappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display ****** * Panel B: new molecules ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnewmol qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnewmol = lnmktinc llnappnewmol missdum1lnappnewmol _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc+[#1]llnappnewmol*llnappnewmol+[#1]missdum1lnappnewmol*missdum1lnappnewmol)/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]llnappnewmol*llnappnewmol+[#1]missdum1lnappnewmol*missdum1lnappnewmol+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6)) replace lwtpit = (llnappnewmol1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1)+llnappnewmol2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]_Iyearint_2)+llnappnewmol3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]_Iyearint_3)+llnappnewmol4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]_Iyearint_4)+llnappnewmol5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]_Iyearint_5)+llnappnewmol6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6)) replace mwtpit = (missdum1lnappnewmol1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1)+missdum1lnappnewmol2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]_Iyearint_2)+missdum1lnappnewmol3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]_Iyearint_3)+missdum1lnappnewmol4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]_Iyearint_4)+missdum1lnappnewmol5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]_Iyearint_5)+missdum1lnappnewmol6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6)) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]llnappnewmol*llnappnewmolX+[#1]missdum1lnappnewmol*missdum1lnappnewmolX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]llnappnewmol*llnappnewmolX+[#1]missdum1lnappnewmol*missdum1lnappnewmolX+[#1]_Iyearint_X)/pitdenom if yearint==X replace p7 = llnappnewmol*pit-pit*lwtpit replace p8 = missdum1lnappnewmol*pit-pit*mwtpit summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p7 p8 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnewmol if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]llnappnewmol,[#1]missdum1lnappnewmol,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc llnappnewmol missdum1lnappnewmol _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc llnappnewmol missdum1lnappnewmol _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc llnappnewmol missdum1lnappnewmol _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]llnappnewmol,[#1]missdum1lnappnewmol,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc llnappnewmol missdum1lnappnewmol _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc llnappnewmol missdum1lnappnewmol _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc llnappnewmol missdum1lnappnewmol _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 2: lagged dependent variable, IV *************************** ****** * Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnongen qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnongen = lnmktinc llnappnongen missdum1lnappnongen firststdepappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc+[#1]llnappnongen*llnappnongen+[#1]missdum1lnappnongen*missdum1lnappnongen+[#1]firststdepappnongen*firststdepappnongen)/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1+[#1]firststdepappnongen*firststdepappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]firststdepappnongen*firststdepappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]firststdepappnongen*firststdepappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]firststdepappnongen*firststdepappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]firststdepappnongen*firststdepappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]firststdepappnongen*firststdepappnongen6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]llnappnongen*llnappnongen+[#1]missdum1lnappnongen*missdum1lnappnongen+[#1]firststdepappnongen*firststdepappnongen+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1+[#1]firststdepappnongen*firststdepappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]firststdepappnongen*firststdepappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]firststdepappnongen*firststdepappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]firststdepappnongen*firststdepappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]firststdepappnongen*firststdepappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]firststdepappnongen*firststdepappnongen6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1+[#1]firststdepappnongen*firststdepappnongen1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]firststdepappnongen*firststdepappnongen2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]firststdepappnongen*firststdepappnongen3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]firststdepappnongen*firststdepappnongen4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]firststdepappnongen*firststdepappnongen5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]firststdepappnongen*firststdepappnongen6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1+[#1]firststdepappnongen*firststdepappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]firststdepappnongen*firststdepappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]firststdepappnongen*firststdepappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]firststdepappnongen*firststdepappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]firststdepappnongen*firststdepappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]firststdepappnongen*firststdepappnongen6)) replace lwtpit = (llnappnongen1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1+[#1]firststdepappnongen*firststdepappnongen1)+llnappnongen2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]firststdepappnongen*firststdepappnongen2+[#1]_Iyearint_2)+llnappnongen3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]firststdepappnongen*firststdepappnongen3+[#1]_Iyearint_3)+llnappnongen4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]firststdepappnongen*firststdepappnongen4+[#1]_Iyearint_4)+llnappnongen5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]firststdepappnongen*firststdepappnongen5+[#1]_Iyearint_5)+llnappnongen6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]firststdepappnongen*firststdepappnongen6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1+[#1]firststdepappnongen*firststdepappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]firststdepappnongen*firststdepappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]firststdepappnongen*firststdepappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]firststdepappnongen*firststdepappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]firststdepappnongen*firststdepappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]firststdepappnongen*firststdepappnongen6)) replace mwtpit = (missdum1lnappnongen1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1+[#1]firststdepappnongen*firststdepappnongen1)+missdum1lnappnongen2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]firststdepappnongen*firststdepappnongen2+[#1]_Iyearint_2)+missdum1lnappnongen3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]firststdepappnongen*firststdepappnongen3+[#1]_Iyearint_3)+missdum1lnappnongen4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]firststdepappnongen*firststdepappnongen4+[#1]_Iyearint_4)+missdum1lnappnongen5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]firststdepappnongen*firststdepappnongen5+[#1]_Iyearint_5)+missdum1lnappnongen6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]firststdepappnongen*firststdepappnongen6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1+[#1]firststdepappnongen*firststdepappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]firststdepappnongen*firststdepappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]firststdepappnongen*firststdepappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]firststdepappnongen*firststdepappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]firststdepappnongen*firststdepappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]firststdepappnongen*firststdepappnongen6)) gen fwtpit = (firststdepappnongen1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1+[#1]firststdepappnongen*firststdepappnongen1)+firststdepappnongen2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]firststdepappnongen*firststdepappnongen2+[#1]_Iyearint_2)+firststdepappnongen3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]firststdepappnongen*firststdepappnongen3+[#1]_Iyearint_3)+firststdepappnongen4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]firststdepappnongen*firststdepappnongen4+[#1]_Iyearint_4)+firststdepappnongen5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]firststdepappnongen*firststdepappnongen5+[#1]_Iyearint_5)+firststdepappnongen6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]firststdepappnongen*firststdepappnongen6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1+[#1]firststdepappnongen*firststdepappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]firststdepappnongen*firststdepappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]firststdepappnongen*firststdepappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]firststdepappnongen*firststdepappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]firststdepappnongen*firststdepappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]firststdepappnongen*firststdepappnongen6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1+[#1]llnappnongen*llnappnongen1+[#1]missdum1lnappnongen*missdum1lnappnongen1+[#1]firststdepappnongen*firststdepappnongen1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnongen*llnappnongen2+[#1]_Iyearint_2+[#1]missdum1lnappnongen*missdum1lnappnongen2+[#1]firststdepappnongen*firststdepappnongen2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnongen*llnappnongen3+[#1]_Iyearint_3+[#1]missdum1lnappnongen*missdum1lnappnongen3+[#1]firststdepappnongen*firststdepappnongen3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnongen*llnappnongen4+[#1]_Iyearint_4+[#1]missdum1lnappnongen*missdum1lnappnongen4+[#1]firststdepappnongen*firststdepappnongen4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnongen*llnappnongen5+[#1]_Iyearint_5+[#1]missdum1lnappnongen*missdum1lnappnongen5+[#1]firststdepappnongen*firststdepappnongen5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnongen*llnappnongen6+[#1]_Iyearint_6+[#1]missdum1lnappnongen*missdum1lnappnongen6+[#1]firststdepappnongen*firststdepappnongen6)) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]llnappnongen*llnappnongenX+[#1]missdum1lnappnongen*missdum1lnappnongenX+[#1]firststdepappnongen*firststdepappnongenX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]llnappnongen*llnappnongenX+[#1]missdum1lnappnongen*missdum1lnappnongenX+[#1]firststdepappnongen*firststdepappnongenX+[#1]_Iyearint_X)/pitdenom if yearint==X replace p7 = llnappnongen*pit-pit*lwtpit replace p8 = missdum1lnappnongen*pit-pit*mwtpit gen p9 = firststdepappnongen*pit-pit*fwtpit summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p7 p8 p9 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnongen if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]llnappnongen,[#1]missdum1lnappnongen,[#1]firststdepappnongen,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc llnappnongen missdum1lnappnongen firststdepappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc llnappnongen missdum1lnappnongen firststdepappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc llnappnongen missdum1lnappnongen firststdepappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]llnappnongen,[#1]missdum1lnappnongen,[#1]firststdepappnongen,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc llnappnongen missdum1lnappnongen firststdepappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc llnappnongen missdum1lnappnongen firststdepappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc llnappnongen missdum1lnappnongen firststdepappnongen _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display ****** * Panel B: new molecules ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnewmol qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnewmol = lnmktinc llnappnewmol missdum1lnappnewmol firststdepnm _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc+[#1]llnappnewmol*llnappnewmol+[#1]missdum1lnappnewmol*missdum1lnappnewmol+[#1]firststdepnm*firststdepnm)/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1+[#1]firststdepnm*firststdepnm1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]firststdepnm*firststdepnm2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]firststdepnm*firststdepnm3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]firststdepnm*firststdepnm4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]firststdepnm*firststdepnm5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]firststdepnm*firststdepnm6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]llnappnewmol*llnappnewmol+[#1]missdum1lnappnewmol*missdum1lnappnewmol+[#1]firststdepnm*firststdepnm+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1+[#1]firststdepnm*firststdepnm1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]firststdepnm*firststdepnm2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]firststdepnm*firststdepnm3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]firststdepnm*firststdepnm4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]firststdepnm*firststdepnm5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]firststdepnm*firststdepnm6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1+[#1]firststdepnm*firststdepnm1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]firststdepnm*firststdepnm2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]firststdepnm*firststdepnm3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]firststdepnm*firststdepnm4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]firststdepnm*firststdepnm5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]firststdepnm*firststdepnm6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1+[#1]firststdepnm*firststdepnm1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]firststdepnm*firststdepnm2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]firststdepnm*firststdepnm3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]firststdepnm*firststdepnm4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]firststdepnm*firststdepnm5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]firststdepnm*firststdepnm6)) replace lwtpit = (llnappnewmol1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1+[#1]firststdepnm*firststdepnm1)+llnappnewmol2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]firststdepnm*firststdepnm2+[#1]_Iyearint_2)+llnappnewmol3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]firststdepnm*firststdepnm3+[#1]_Iyearint_3)+llnappnewmol4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]firststdepnm*firststdepnm4+[#1]_Iyearint_4)+llnappnewmol5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]firststdepnm*firststdepnm5+[#1]_Iyearint_5)+llnappnewmol6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]firststdepnm*firststdepnm6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1+[#1]firststdepnm*firststdepnm1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]firststdepnm*firststdepnm2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]firststdepnm*firststdepnm3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]firststdepnm*firststdepnm4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]firststdepnm*firststdepnm5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]firststdepnm*firststdepnm6)) replace mwtpit = (missdum1lnappnewmol1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1+[#1]firststdepnm*firststdepnm1)+missdum1lnappnewmol2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]firststdepnm*firststdepnm2+[#1]_Iyearint_2)+missdum1lnappnewmol3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]firststdepnm*firststdepnm3+[#1]_Iyearint_3)+missdum1lnappnewmol4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]firststdepnm*firststdepnm4+[#1]_Iyearint_4)+missdum1lnappnewmol5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]firststdepnm*firststdepnm5+[#1]_Iyearint_5)+missdum1lnappnewmol6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]firststdepnm*firststdepnm6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1+[#1]firststdepnm*firststdepnm1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]firststdepnm*firststdepnm2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]firststdepnm*firststdepnm3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]firststdepnm*firststdepnm4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]firststdepnm*firststdepnm5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]firststdepnm*firststdepnm6)) replace fwtpit = (firststdepnm1*exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1+[#1]firststdepnm*firststdepnm1)+firststdepnm2*exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]firststdepnm*firststdepnm2+[#1]_Iyearint_2)+firststdepnm3*exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]firststdepnm*firststdepnm3+[#1]_Iyearint_3)+firststdepnm4*exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]firststdepnm*firststdepnm4+[#1]_Iyearint_4)+firststdepnm5*exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]firststdepnm*firststdepnm5+[#1]_Iyearint_5)+firststdepnm6*exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]firststdepnm*firststdepnm6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1+[#1]firststdepnm*firststdepnm1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]firststdepnm*firststdepnm2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]firststdepnm*firststdepnm3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]firststdepnm*firststdepnm4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]firststdepnm*firststdepnm5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]firststdepnm*firststdepnm6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1+[#1]llnappnewmol*llnappnewmol1+[#1]missdum1lnappnewmol*missdum1lnappnewmol1+[#1]firststdepnm*firststdepnm1)+exp([#1]lnmktinc*lnmktinc2+[#1]llnappnewmol*llnappnewmol2+[#1]_Iyearint_2+[#1]missdum1lnappnewmol*missdum1lnappnewmol2+[#1]firststdepnm*firststdepnm2)+exp([#1]lnmktinc*lnmktinc3+[#1]llnappnewmol*llnappnewmol3+[#1]_Iyearint_3+[#1]missdum1lnappnewmol*missdum1lnappnewmol3+[#1]firststdepnm*firststdepnm3)+exp([#1]lnmktinc*lnmktinc4+[#1]llnappnewmol*llnappnewmol4+[#1]_Iyearint_4+[#1]missdum1lnappnewmol*missdum1lnappnewmol4+[#1]firststdepnm*firststdepnm4)+exp([#1]lnmktinc*lnmktinc5+[#1]llnappnewmol*llnappnewmol5+[#1]_Iyearint_5+[#1]missdum1lnappnewmol*missdum1lnappnewmol5+[#1]firststdepnm*firststdepnm5)+exp([#1]lnmktinc*lnmktinc6+[#1]llnappnewmol*llnappnewmol6+[#1]_Iyearint_6+[#1]missdum1lnappnewmol*missdum1lnappnewmol6+[#1]firststdepnm*firststdepnm6)) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]llnappnewmol*llnappnewmolX+[#1]missdum1lnappnewmol*missdum1lnappnewmolX+[#1]firststdepnm*firststdepnmX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]llnappnewmol*llnappnewmolX+[#1]missdum1lnappnewmol*missdum1lnappnewmolX+[#1]firststdepnm*firststdepnmX+[#1]_Iyearint_X)/pitdenom if yearint==X replace p7 = llnappnewmol*pit-pit*lwtpit replace p8 = missdum1lnappnewmol*pit-pit*mwtpit replace p9 = firststdepnm*pit-pit*fwtpit summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p7 p8 p9 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnewmol if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]llnappnewmol,[#1]missdum1lnappnewmol,[#1]firststdepnm,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc llnappnewmol missdum1lnappnewmol firststdepnm _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc llnappnewmol missdum1lnappnewmol firststdepnm _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc llnappnewmol missdum1lnappnewmol firststdepnm _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]llnappnewmol,[#1]missdum1lnappnewmol,[#1]firststdepnm,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc llnappnewmol missdum1lnappnewmol firststdepnm _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc llnappnewmol missdum1lnappnewmol firststdepnm _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc llnappnewmol missdum1lnappnewmol firststdepnm _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 3: control for life-years-lost *************************** ****** * Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnongen qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnongen = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc+[#1]lifeyearslost*lifeyearslost)/(exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]lifeyearslost*lifeyearslost+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6)) replace lwtpit = (lifeyearslost1*exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+lifeyearslost2*exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+lifeyearslost3*exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+lifeyearslost4*exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+lifeyearslost5*exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+lifeyearslost6*exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6)) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]lifeyearslost*lifeyearslostX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]lifeyearslost*lifeyearslostX+[#1]_Iyearint_X)/pitdenom if yearint==X replace p7 = lifeyearslost*pit-pit*lwtpit summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p7 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnongen if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]lifeyearslost,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]lifeyearslost,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display ****** * Panel B: new molecules ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnewmol qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnewmol = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc+[#1]lifeyearslost*lifeyearslost)/(exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]lifeyearslost*lifeyearslost+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6)) replace lwtpit = (lifeyearslost1*exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+lifeyearslost2*exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+lifeyearslost3*exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+lifeyearslost4*exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+lifeyearslost5*exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+lifeyearslost6*exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1+[#1]lifeyearslost*lifeyearslost1)+exp([#1]lnmktinc*lnmktinc2+[#1]lifeyearslost*lifeyearslost2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]lifeyearslost*lifeyearslost3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]lifeyearslost*lifeyearslost4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]lifeyearslost*lifeyearslost5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]lifeyearslost*lifeyearslost6+[#1]_Iyearint_6)) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]lifeyearslost*lifeyearslostX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]lifeyearslost*lifeyearslostX+[#1]_Iyearint_X)/pitdenom if yearint==X replace p7 = lifeyearslost*pit-pit*lwtpit summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p7 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnewmol if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]lifeyearslost,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]lifeyearslost,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc lifeyearslost _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 4: control for CRISP funding *************************** ****** * Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnongen qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnongen = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc+[#1]crispfund*crispfund)/(exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]crispfund*crispfund+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6)) replace lwtpit = (crispfund1*exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+crispfund2*exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+crispfund3*exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+crispfund4*exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+crispfund5*exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+crispfund6*exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6)) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]crispfund*crispfundX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]crispfund*crispfundX+[#1]_Iyearint_X)/pitdenom if yearint==X replace p7 = crispfund*pit-pit*lwtpit summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p7 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnongen if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]crispfund,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]crispfund,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display ****** * Panel B: new molecules ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnewmol qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnewmol = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc+[#1]crispfund*crispfund)/(exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]crispfund*crispfund+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6)) replace lwtpit = (crispfund1*exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+crispfund2*exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+crispfund3*exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+crispfund4*exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+crispfund5*exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+crispfund6*exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1+[#1]crispfund*crispfund1)+exp([#1]lnmktinc*lnmktinc2+[#1]crispfund*crispfund2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]crispfund*crispfund3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]crispfund*crispfund4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]crispfund*crispfund5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]crispfund*crispfund6+[#1]_Iyearint_6)) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]crispfund*crispfundX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]crispfund*crispfundX+[#1]_Iyearint_X)/pitdenom if yearint==X replace p7 = crispfund*pit-pit*lwtpit summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p7 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnewmol if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]crispfund,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]crispfund,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc crispfund _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 5: include pre-existing trends *************************** ****** * Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnongen qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnongen = lnmktinc ngtr26070 ngtr36070 ngtr46070 ngtr56070 ngtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]ngtr26070*lnappnongen6070tr+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]ngtr36070*lnappnongen6070tr+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]ngtr46070*lnappnongen6070tr+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]ngtr56070*lnappnongen6070tr+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]ngtr66070*lnappnongen6070tr+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]ngtrX6070*lnappnongen6070tr+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]ngtr26070*lnappnongen6070tr+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]ngtr36070*lnappnongen6070tr+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]ngtr46070*lnappnongen6070tr+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]ngtr56070*lnappnongen6070tr+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]ngtr66070*lnappnongen6070tr+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]ngtr26070*lnappnongen6070tr+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]ngtr36070*lnappnongen6070tr+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]ngtr46070*lnappnongen6070tr+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]ngtr56070*lnappnongen6070tr+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]ngtr66070*lnappnongen6070tr+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]ngtr26070*lnappnongen6070tr+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]ngtr36070*lnappnongen6070tr+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]ngtr46070*lnappnongen6070tr+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]ngtr56070*lnappnongen6070tr+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]ngtr66070*lnappnongen6070tr+[#1]_Iyearint_6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]ngtr26070*lnappnongen6070tr+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]ngtr36070*lnappnongen6070tr+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]ngtr46070*lnappnongen6070tr+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]ngtr56070*lnappnongen6070tr+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]ngtr66070*lnappnongen6070tr+[#1]_Iyearint_6)) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]ngtrX6070*lnappnongen6070tr+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]ngtrX6070*lnappnongen6070tr+[#1]_Iyearint_X)/pitdenom if yearint==X quietly for X in num 2/6: gen p1X = -pit*lnappnongen6070tr*exp([#1]lnmktinc*lnmktincX+[#1]ngtrX6070*lnappnongen6070tr+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace p1X = ngtrX6070*pit-pit*ngtrX6070*exp([#1]lnmktinc*lnmktincX+[#1]ngtrX6070*lnappnongen6070tr+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p12 p13 p14 p15 p16 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnongen if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]ngtr26070,[#1]ngtr36070,[#1]ngtr46070,[#1]ngtr56070,[#1]ngtr66070,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc ngtr26070 ngtr36070 ngtr46070 ngtr56070 ngtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc ngtr26070 ngtr36070 ngtr46070 ngtr56070 ngtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc ngtr26070 ngtr36070 ngtr46070 ngtr56070 ngtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]ngtr26070,[#1]ngtr36070,[#1]ngtr46070,[#1]ngtr56070,[#1]ngtr66070,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc ngtr26070 ngtr36070 ngtr46070 ngtr56070 ngtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc ngtr26070 ngtr36070 ngtr46070 ngtr56070 ngtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc ngtr26070 ngtr36070 ngtr46070 ngtr56070 ngtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display ****** * Panel B: new molecules ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnewmol qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnewmol = lnmktinc nmtr26070 nmtr36070 nmtr46070 nmtr56070 nmtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]nmtr26070*lnappnewmol6070tr+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]nmtr36070*lnappnewmol6070tr+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]nmtr46070*lnappnewmol6070tr+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]nmtr56070*lnappnewmol6070tr+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]nmtr66070*lnappnewmol6070tr+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]nmtrX6070*lnappnewmol6070tr+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]nmtr26070*lnappnewmol6070tr+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]nmtr36070*lnappnewmol6070tr+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]nmtr46070*lnappnewmol6070tr+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]nmtr56070*lnappnewmol6070tr+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]nmtr66070*lnappnewmol6070tr+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]nmtr26070*lnappnewmol6070tr+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]nmtr36070*lnappnewmol6070tr+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]nmtr46070*lnappnewmol6070tr+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]nmtr56070*lnappnewmol6070tr+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]nmtr66070*lnappnewmol6070tr+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]nmtr26070*lnappnewmol6070tr+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]nmtr36070*lnappnewmol6070tr+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]nmtr46070*lnappnewmol6070tr+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]nmtr56070*lnappnewmol6070tr+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]nmtr66070*lnappnewmol6070tr+[#1]_Iyearint_6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]nmtr26070*lnappnewmol6070tr+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]nmtr36070*lnappnewmol6070tr+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]nmtr46070*lnappnewmol6070tr+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]nmtr56070*lnappnewmol6070tr+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]nmtr66070*lnappnewmol6070tr+[#1]_Iyearint_6)) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]nmtrX6070*lnappnewmol6070tr+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]nmtrX6070*lnappnewmol6070tr+[#1]_Iyearint_X)/pitdenom if yearint==X quietly for X in num 2/6: replace p1X = -pit*lnappnewmol6070tr*exp([#1]lnmktinc*lnmktincX+[#1]nmtrX6070*lnappnewmol6070tr+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace p1X = nmtrX6070*pit-pit*nmtrX6070*exp([#1]lnmktinc*lnmktincX+[#1]nmtrX6070*lnappnewmol6070tr+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p12 p13 p14 p15 p16 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnewmol if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]nmtr26070,[#1]nmtr36070,[#1]nmtr46070,[#1]nmtr56070,[#1]nmtr66070,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc nmtr26070 nmtr36070 nmtr46070 nmtr56070 nmtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc nmtr26070 nmtr36070 nmtr46070 nmtr56070 nmtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc nmtr26070 nmtr36070 nmtr46070 nmtr56070 nmtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]nmtr26070,[#1]nmtr36070,[#1]nmtr46070,[#1]nmtr56070,[#1]nmtr66070,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc nmtr26070 nmtr36070 nmtr46070 nmtr56070 nmtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc nmtr26070 nmtr36070 nmtr46070 nmtr56070 nmtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc nmtr26070 nmtr36070 nmtr46070 nmtr56070 nmtr66070 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 6: add major category trends *************************** ****** * create trends, then interact with time interval dummies ****** * create category variable for major drug categories, 1-16 gen majdrug = 1 if drug==1 | drug==2 replace majdrug = 2 if drug==3 replace majdrug = 3 if drug==4 replace majdrug = 4 if drug==5 | drug==6 replace majdrug = 5 if drug==7 | drug==27 replace majdrug = 6 if drug==8 | drug==9 replace majdrug = 7 if drug==10 | drug==11 replace majdrug = 8 if drug==12 | drug==13 | drug==14 replace majdrug = 9 if drug==15 | drug==16 replace majdrug = 10 if drug>=17 & drug<=21 replace majdrug = 11 if drug==22 | drug==23 replace majdrug = 12 if drug==24 | drug==25 replace majdrug = 13 if drug==26 replace majdrug = 14 if drug==28 | drug==29 replace majdrug = 15 if drug==30 replace majdrug = 16 if drug>=31 & drug<=33 * create category and time dummies xi i.majdrug i.yearint * interact category dummies with time dummies qui for X in num 2/16: gen majdrugtrX=(yearint-1)*_Imajdrug_X qui for Y in num 2/16: for X in num 1/6: gen majdrugtrYX=majdrugtrY if yearint==X qui for Y in num 2/16: for X in num 1/6: replace majdrugtrYX=0 if majdrugtrYX==. sort drug yearint qui for Y in num 2/16: for X in num 1/6: by drug: replace majdrugtrYX=majdrugtrYX[_n-1] if majdrugtrYX==0 gsort drug -yearint qui for Y in num 2/16: for X in num 1/6: by drug: replace majdrugtrYX=majdrugtrYX[_n-1] if majdrugtrYX==. qui for Y in num 2/16: for X in num 1/6: replace majdrugtrYX=0 if majdrugtrYX==. ****** * Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnongen qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnongen = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max gen double maj = [#1]majdrugtr2*majdrugtr2+[#1]majdrugtr3*majdrugtr3+[#1]majdrugtr4*majdrugtr4+[#1]majdrugtr5*majdrugtr5+[#1]majdrugtr6*majdrugtr6+[#1]majdrugtr7*majdrugtr7+[#1]majdrugtr8*majdrugtr8+[#1]majdrugtr9*majdrugtr9+[#1]majdrugtr10*majdrugtr10+[#1]majdrugtr11*majdrugtr11+[#1]majdrugtr12*majdrugtr12+[#1]majdrugtr13*majdrugtr13+[#1]majdrugtr14*majdrugtr14+[#1]majdrugtr15*majdrugtr15+[#1]majdrugtr16*majdrugtr16 gen double maj1 = [#1]majdrugtr2*majdrugtr21+[#1]majdrugtr3*majdrugtr31+[#1]majdrugtr4*majdrugtr41+[#1]majdrugtr5*majdrugtr51+[#1]majdrugtr6*majdrugtr61+[#1]majdrugtr7*majdrugtr71+[#1]majdrugtr8*majdrugtr81+[#1]majdrugtr9*majdrugtr91+[#1]majdrugtr10*majdrugtr101+[#1]majdrugtr11*majdrugtr111+[#1]majdrugtr12*majdrugtr121+[#1]majdrugtr13*majdrugtr131+[#1]majdrugtr14*majdrugtr141+[#1]majdrugtr15*majdrugtr151+[#1]majdrugtr16*majdrugtr161 gen double maj2 = [#1]majdrugtr2*majdrugtr22+[#1]majdrugtr3*majdrugtr32+[#1]majdrugtr4*majdrugtr42+[#1]majdrugtr5*majdrugtr52+[#1]majdrugtr6*majdrugtr62+[#1]majdrugtr7*majdrugtr72+[#1]majdrugtr8*majdrugtr82+[#1]majdrugtr9*majdrugtr92+[#1]majdrugtr10*majdrugtr102+[#1]majdrugtr11*majdrugtr112+[#1]majdrugtr12*majdrugtr122+[#1]majdrugtr13*majdrugtr132+[#1]majdrugtr14*majdrugtr142+[#1]majdrugtr15*majdrugtr152+[#1]majdrugtr16*majdrugtr162 gen double maj3 = [#1]majdrugtr2*majdrugtr23+[#1]majdrugtr3*majdrugtr33+[#1]majdrugtr4*majdrugtr43+[#1]majdrugtr5*majdrugtr53+[#1]majdrugtr6*majdrugtr63+[#1]majdrugtr7*majdrugtr73+[#1]majdrugtr8*majdrugtr83+[#1]majdrugtr9*majdrugtr93+[#1]majdrugtr10*majdrugtr103+[#1]majdrugtr11*majdrugtr113+[#1]majdrugtr12*majdrugtr123+[#1]majdrugtr13*majdrugtr133+[#1]majdrugtr14*majdrugtr143+[#1]majdrugtr15*majdrugtr153+[#1]majdrugtr16*majdrugtr163 gen double maj4 = [#1]majdrugtr2*majdrugtr24+[#1]majdrugtr3*majdrugtr34+[#1]majdrugtr4*majdrugtr44+[#1]majdrugtr5*majdrugtr54+[#1]majdrugtr6*majdrugtr64+[#1]majdrugtr7*majdrugtr74+[#1]majdrugtr8*majdrugtr84+[#1]majdrugtr9*majdrugtr94+[#1]majdrugtr10*majdrugtr104+[#1]majdrugtr11*majdrugtr114+[#1]majdrugtr12*majdrugtr124+[#1]majdrugtr13*majdrugtr134+[#1]majdrugtr14*majdrugtr144+[#1]majdrugtr15*majdrugtr154+[#1]majdrugtr16*majdrugtr164 gen double maj5 = [#1]majdrugtr2*majdrugtr25+[#1]majdrugtr3*majdrugtr35+[#1]majdrugtr4*majdrugtr45+[#1]majdrugtr5*majdrugtr55+[#1]majdrugtr6*majdrugtr65+[#1]majdrugtr7*majdrugtr75+[#1]majdrugtr8*majdrugtr85+[#1]majdrugtr9*majdrugtr95+[#1]majdrugtr10*majdrugtr105+[#1]majdrugtr11*majdrugtr115+[#1]majdrugtr12*majdrugtr125+[#1]majdrugtr13*majdrugtr135+[#1]majdrugtr14*majdrugtr145+[#1]majdrugtr15*majdrugtr155+[#1]majdrugtr16*majdrugtr165 gen double maj6 = [#1]majdrugtr2*majdrugtr26+[#1]majdrugtr3*majdrugtr36+[#1]majdrugtr4*majdrugtr46+[#1]majdrugtr5*majdrugtr56+[#1]majdrugtr6*majdrugtr66+[#1]majdrugtr7*majdrugtr76+[#1]majdrugtr8*majdrugtr86+[#1]majdrugtr9*majdrugtr96+[#1]majdrugtr10*majdrugtr106+[#1]majdrugtr11*majdrugtr116+[#1]majdrugtr12*majdrugtr126+[#1]majdrugtr13*majdrugtr136+[#1]majdrugtr14*majdrugtr146+[#1]majdrugtr15*majdrugtr156+[#1]majdrugtr16*majdrugtr166 replace pit = exp([#1]lnmktinc*lnmktinc+maj)/(exp([#1]lnmktinc*lnmktinc1+maj1)+exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+maj+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+maj1)+exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+maj1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+maj1)+exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6)) quietly for X in num 2/16: gen majXpit = (majdrugtrX1*exp([#1]lnmktinc*lnmktinc1+maj1)+majdrugtrX2*exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+majdrugtrX3*exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+majdrugtrX4*exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+majdrugtrX5*exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+majdrugtrX6*exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+maj1)+exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1+maj1)+exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6)) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+majX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+majX+[#1]_Iyearint_X)/pitdenom if yearint==X quietly for X in num 2/9: gen p10X = majdrugtrX*pit-pit*majXpit quietly for X in num 10/16: gen p1X = majdrugtrX*pit-pit*majXpit summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p102 p103 p104 p105 p106 p107 p108 p109 p110 p111 p112 p113 p114 p115 p116 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnongen if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]majdrugtr2,[#1]majdrugtr3,[#1]majdrugtr4,[#1]majdrugtr5,[#1]majdrugtr6,[#1]majdrugtr7,[#1]majdrugtr8,[#1]majdrugtr9,[#1]majdrugtr10,[#1]majdrugtr11,[#1]majdrugtr12,[#1]majdrugtr13,[#1]majdrugtr14,[#1]majdrugtr15,[#1]majdrugtr16,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]majdrugtr2,[#1]majdrugtr3,[#1]majdrugtr4,[#1]majdrugtr5,[#1]majdrugtr6,[#1]majdrugtr7,[#1]majdrugtr8,[#1]majdrugtr9,[#1]majdrugtr10,[#1]majdrugtr11,[#1]majdrugtr12,[#1]majdrugtr13,[#1]majdrugtr14,[#1]majdrugtr15,[#1]majdrugtr16,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display ****** * Panel B: new molecules ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnewmol qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnewmol = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace maj = [#1]majdrugtr2*majdrugtr2+[#1]majdrugtr3*majdrugtr3+[#1]majdrugtr4*majdrugtr4+[#1]majdrugtr5*majdrugtr5+[#1]majdrugtr6*majdrugtr6+[#1]majdrugtr7*majdrugtr7+[#1]majdrugtr8*majdrugtr8+[#1]majdrugtr9*majdrugtr9+[#1]majdrugtr10*majdrugtr10+[#1]majdrugtr11*majdrugtr11+[#1]majdrugtr12*majdrugtr12+[#1]majdrugtr13*majdrugtr13+[#1]majdrugtr14*majdrugtr14+[#1]majdrugtr15*majdrugtr15+[#1]majdrugtr16*majdrugtr16 replace maj1 = [#1]majdrugtr2*majdrugtr21+[#1]majdrugtr3*majdrugtr31+[#1]majdrugtr4*majdrugtr41+[#1]majdrugtr5*majdrugtr51+[#1]majdrugtr6*majdrugtr61+[#1]majdrugtr7*majdrugtr71+[#1]majdrugtr8*majdrugtr81+[#1]majdrugtr9*majdrugtr91+[#1]majdrugtr10*majdrugtr101+[#1]majdrugtr11*majdrugtr111+[#1]majdrugtr12*majdrugtr121+[#1]majdrugtr13*majdrugtr131+[#1]majdrugtr14*majdrugtr141+[#1]majdrugtr15*majdrugtr151+[#1]majdrugtr16*majdrugtr161 replace maj2 = [#1]majdrugtr2*majdrugtr22+[#1]majdrugtr3*majdrugtr32+[#1]majdrugtr4*majdrugtr42+[#1]majdrugtr5*majdrugtr52+[#1]majdrugtr6*majdrugtr62+[#1]majdrugtr7*majdrugtr72+[#1]majdrugtr8*majdrugtr82+[#1]majdrugtr9*majdrugtr92+[#1]majdrugtr10*majdrugtr102+[#1]majdrugtr11*majdrugtr112+[#1]majdrugtr12*majdrugtr122+[#1]majdrugtr13*majdrugtr132+[#1]majdrugtr14*majdrugtr142+[#1]majdrugtr15*majdrugtr152+[#1]majdrugtr16*majdrugtr162 replace maj3 = [#1]majdrugtr2*majdrugtr23+[#1]majdrugtr3*majdrugtr33+[#1]majdrugtr4*majdrugtr43+[#1]majdrugtr5*majdrugtr53+[#1]majdrugtr6*majdrugtr63+[#1]majdrugtr7*majdrugtr73+[#1]majdrugtr8*majdrugtr83+[#1]majdrugtr9*majdrugtr93+[#1]majdrugtr10*majdrugtr103+[#1]majdrugtr11*majdrugtr113+[#1]majdrugtr12*majdrugtr123+[#1]majdrugtr13*majdrugtr133+[#1]majdrugtr14*majdrugtr143+[#1]majdrugtr15*majdrugtr153+[#1]majdrugtr16*majdrugtr163 replace maj4 = [#1]majdrugtr2*majdrugtr24+[#1]majdrugtr3*majdrugtr34+[#1]majdrugtr4*majdrugtr44+[#1]majdrugtr5*majdrugtr54+[#1]majdrugtr6*majdrugtr64+[#1]majdrugtr7*majdrugtr74+[#1]majdrugtr8*majdrugtr84+[#1]majdrugtr9*majdrugtr94+[#1]majdrugtr10*majdrugtr104+[#1]majdrugtr11*majdrugtr114+[#1]majdrugtr12*majdrugtr124+[#1]majdrugtr13*majdrugtr134+[#1]majdrugtr14*majdrugtr144+[#1]majdrugtr15*majdrugtr154+[#1]majdrugtr16*majdrugtr164 replace maj5 = [#1]majdrugtr2*majdrugtr25+[#1]majdrugtr3*majdrugtr35+[#1]majdrugtr4*majdrugtr45+[#1]majdrugtr5*majdrugtr55+[#1]majdrugtr6*majdrugtr65+[#1]majdrugtr7*majdrugtr75+[#1]majdrugtr8*majdrugtr85+[#1]majdrugtr9*majdrugtr95+[#1]majdrugtr10*majdrugtr105+[#1]majdrugtr11*majdrugtr115+[#1]majdrugtr12*majdrugtr125+[#1]majdrugtr13*majdrugtr135+[#1]majdrugtr14*majdrugtr145+[#1]majdrugtr15*majdrugtr155+[#1]majdrugtr16*majdrugtr165 replace maj6 = [#1]majdrugtr2*majdrugtr26+[#1]majdrugtr3*majdrugtr36+[#1]majdrugtr4*majdrugtr46+[#1]majdrugtr5*majdrugtr56+[#1]majdrugtr6*majdrugtr66+[#1]majdrugtr7*majdrugtr76+[#1]majdrugtr8*majdrugtr86+[#1]majdrugtr9*majdrugtr96+[#1]majdrugtr10*majdrugtr106+[#1]majdrugtr11*majdrugtr116+[#1]majdrugtr12*majdrugtr126+[#1]majdrugtr13*majdrugtr136+[#1]majdrugtr14*majdrugtr146+[#1]majdrugtr15*majdrugtr156+[#1]majdrugtr16*majdrugtr166 replace pit = exp([#1]lnmktinc*lnmktinc+maj)/(exp([#1]lnmktinc*lnmktinc1+maj1)+exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+maj+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+maj1)+exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+maj1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+maj1)+exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6)) quietly for X in num 2/16: replace majXpit = (majdrugtrX1*exp([#1]lnmktinc*lnmktinc1+maj1)+majdrugtrX2*exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+majdrugtrX3*exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+majdrugtrX4*exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+majdrugtrX5*exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+majdrugtrX6*exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+maj1)+exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1+maj1)+exp([#1]lnmktinc*lnmktinc2+maj2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+maj3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+maj4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+maj5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+maj6+[#1]_Iyearint_6)) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+majX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+majX+[#1]_Iyearint_X)/pitdenom if yearint==X quietly for X in num 2/9: replace p10X = majdrugtrX*pit-pit*majXpit quietly for X in num 10/16: replace p1X = majdrugtrX*pit-pit*majXpit summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p102 p103 p104 p105 p106 p107 p108 p109 p110 p111 p112 p113 p114 p115 p116 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnewmol if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]majdrugtr2,[#1]majdrugtr3,[#1]majdrugtr4,[#1]majdrugtr5,[#1]majdrugtr6,[#1]majdrugtr7,[#1]majdrugtr8,[#1]majdrugtr9,[#1]majdrugtr10,[#1]majdrugtr11,[#1]majdrugtr12,[#1]majdrugtr13,[#1]majdrugtr14,[#1]majdrugtr15,[#1]majdrugtr16,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]majdrugtr2,[#1]majdrugtr3,[#1]majdrugtr4,[#1]majdrugtr5,[#1]majdrugtr6,[#1]majdrugtr7,[#1]majdrugtr8,[#1]majdrugtr9,[#1]majdrugtr10,[#1]majdrugtr11,[#1]majdrugtr12,[#1]majdrugtr13,[#1]majdrugtr14,[#1]majdrugtr15,[#1]majdrugtr16,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 7: add major category trends, linear model (OLS) *************************** * take logs of dep variables, set to zero if missing and add dummy for missing observations foreach kind in appnongen appnewmol { gen ln`kind' = ln(`kind') gen miss`kind' = ln`kind'==. replace ln`kind' = 0 if ln`kind'==. } ****** * Panel A: non generics ****** areg lnappnongen lnmktinc _Iyearint* majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 missappnongen [aw=totcatspend], absorb(drug) robust ****** * Panel B: new molecules ****** areg lnappnewmol lnmktinc _Iyearint* majdrugtr2 majdrugtr3 majdrugtr4 majdrugtr5 majdrugtr6 majdrugtr7 majdrugtr8 majdrugtr9 majdrugtr10 majdrugtr11 majdrugtr12 majdrugtr13 majdrugtr14 majdrugtr15 majdrugtr16 missappnewmol [aw=totcatspend], absorb(drug) robust *************************** * Column 8-9: omit cancer and vascular (categories 11 and 26); omit thyroid, anemia (categories 5 and 21) *************************** ****** * Column 8, Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnongen qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnongen = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] if drug!=11 & drug!=26 ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatspend if drug!=11 & drug!=27 replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/10 12/25 27/33: mkmat p1 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnongen if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display ****** * Column 8, Panel B: new molecules ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnewmol qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnewmol = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] if drug!=11 & drug!=26 ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatspend if drug!=11 & drug!=27 replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/10 12/25 27/33: mkmat p1 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnewmol if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display ****** * Column 9, Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnongen qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnongen = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] if drug!=5 & drug!=21 ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatspend if drug!=5 & drug!=22 replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/4 6/20 22/33: mkmat p1 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnongen if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat32+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display ****** * Column 9, Panel B: new molecules ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnewmol qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnewmol = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] if drug!=5 & drug!=21 ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnmktinc*lnmktinc1)+exp([#1]lnmktinc*lnmktinc2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]_Iyearint_6) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatspend if drug!=5 & drug!=22 replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/4 6/20 22/33: mkmat p1 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnewmol if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat32+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 10: health insurance based market size *************************** ****** * Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnongen qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnongen = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktincins*lnmktincins)/(exp([#1]lnmktincins*lnmktincins1)+exp([#1]lnmktincins*lnmktincins2+[#1]_Iyearint_2)+exp([#1]lnmktincins*lnmktincins3+[#1]_Iyearint_3)+exp([#1]lnmktincins*lnmktincins4+[#1]_Iyearint_4)+exp([#1]lnmktincins*lnmktincins5+[#1]_Iyearint_5)+exp([#1]lnmktincins*lnmktincins6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktincins*lnmktincins+[#1]_Iyearint_X)/(exp([#1]lnmktincins*lnmktincins1)+exp([#1]lnmktincins*lnmktincins2+[#1]_Iyearint_2)+exp([#1]lnmktincins*lnmktincins3+[#1]_Iyearint_3)+exp([#1]lnmktincins*lnmktincins4+[#1]_Iyearint_4)+exp([#1]lnmktincins*lnmktincins5+[#1]_Iyearint_5)+exp([#1]lnmktincins*lnmktincins6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktincins1*exp([#1]lnmktincins*lnmktincins1)+lnmktincins2*exp([#1]lnmktincins*lnmktincins2+[#1]_Iyearint_2)+lnmktincins3*exp([#1]lnmktincins*lnmktincins3+[#1]_Iyearint_3)+lnmktincins4*exp([#1]lnmktincins*lnmktincins4+[#1]_Iyearint_4)+lnmktincins5*exp([#1]lnmktincins*lnmktincins5+[#1]_Iyearint_5)+lnmktincins6*exp([#1]lnmktincins*lnmktincins6+[#1]_Iyearint_6))/(exp([#1]lnmktincins*lnmktincins1)+exp([#1]lnmktincins*lnmktincins2+[#1]_Iyearint_2)+exp([#1]lnmktincins*lnmktincins3+[#1]_Iyearint_3)+exp([#1]lnmktincins*lnmktincins4+[#1]_Iyearint_4)+exp([#1]lnmktincins*lnmktincins5+[#1]_Iyearint_5)+exp([#1]lnmktincins*lnmktincins6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnmktincins*lnmktincins1)+exp([#1]lnmktincins*lnmktincins2+[#1]_Iyearint_2)+exp([#1]lnmktincins*lnmktincins3+[#1]_Iyearint_3)+exp([#1]lnmktincins*lnmktincins4+[#1]_Iyearint_4)+exp([#1]lnmktincins*lnmktincins5+[#1]_Iyearint_5)+exp([#1]lnmktincins*lnmktincins6+[#1]_Iyearint_6) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnmktincins*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktincins*lnmktincinsX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktincins*lnmktincinsX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnongen if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktincins,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktincins,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display ml model d0 condfe (theta: appnongen = lnmktinc lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max ****** * Panel B: new molecules ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnewmol qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnewmol = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktincins*lnmktincins)/(exp([#1]lnmktincins*lnmktincins1)+exp([#1]lnmktincins*lnmktincins2+[#1]_Iyearint_2)+exp([#1]lnmktincins*lnmktincins3+[#1]_Iyearint_3)+exp([#1]lnmktincins*lnmktincins4+[#1]_Iyearint_4)+exp([#1]lnmktincins*lnmktincins5+[#1]_Iyearint_5)+exp([#1]lnmktincins*lnmktincins6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktincins*lnmktincins+[#1]_Iyearint_X)/(exp([#1]lnmktincins*lnmktincins1)+exp([#1]lnmktincins*lnmktincins2+[#1]_Iyearint_2)+exp([#1]lnmktincins*lnmktincins3+[#1]_Iyearint_3)+exp([#1]lnmktincins*lnmktincins4+[#1]_Iyearint_4)+exp([#1]lnmktincins*lnmktincins5+[#1]_Iyearint_5)+exp([#1]lnmktincins*lnmktincins6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktincins1*exp([#1]lnmktincins*lnmktincins1)+lnmktincins2*exp([#1]lnmktincins*lnmktincins2+[#1]_Iyearint_2)+lnmktincins3*exp([#1]lnmktincins*lnmktincins3+[#1]_Iyearint_3)+lnmktincins4*exp([#1]lnmktincins*lnmktincins4+[#1]_Iyearint_4)+lnmktincins5*exp([#1]lnmktincins*lnmktincins5+[#1]_Iyearint_5)+lnmktincins6*exp([#1]lnmktincins*lnmktincins6+[#1]_Iyearint_6))/(exp([#1]lnmktincins*lnmktincins1)+exp([#1]lnmktincins*lnmktincins2+[#1]_Iyearint_2)+exp([#1]lnmktincins*lnmktincins3+[#1]_Iyearint_3)+exp([#1]lnmktincins*lnmktincins4+[#1]_Iyearint_4)+exp([#1]lnmktincins*lnmktincins5+[#1]_Iyearint_5)+exp([#1]lnmktincins*lnmktincins6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnmktincins*lnmktincins1)+exp([#1]lnmktincins*lnmktincins2+[#1]_Iyearint_2)+exp([#1]lnmktincins*lnmktincins3+[#1]_Iyearint_3)+exp([#1]lnmktincins*lnmktincins4+[#1]_Iyearint_4)+exp([#1]lnmktincins*lnmktincins5+[#1]_Iyearint_5)+exp([#1]lnmktincins*lnmktincins6+[#1]_Iyearint_6) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmktincins*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktincins*lnmktincinsX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktincins*lnmktincinsX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnewmol if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktincins,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktincins,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktincins _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 11: IV using lagged market size *************************** ****** * Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnongen qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnongen = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc+[#1]firststiv*firststiv)/(exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]firststiv*firststiv+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6)) replace lwtpit = (firststiv1*exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+firststiv2*exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+firststiv3*exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+firststiv4*exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+firststiv5*exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+firststiv6*exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6)) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]firststiv*firststivX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]firststiv*firststivX+[#1]_Iyearint_X)/pitdenom if yearint==X replace p7 = firststiv*pit-pit*lwtpit summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p7 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnongen if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]firststiv,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]firststiv,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display ****** * Panel B: new molecules ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta wt mleval `theta' = `b', eq(1) qui gen double `y' = appnewmol qui by drug: egen double `p' = sum(exp(`theta')) qui replace `p' = ln(`p') mlsum `lnf' = `y'*(`theta'-`p') end ml model d0 condfe (theta: appnewmol = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc*lnmktinc+[#1]firststiv*firststiv)/(exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]firststiv*firststiv+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1*exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+lnmktinc2*exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+lnmktinc3*exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+lnmktinc6*exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6)) replace lwtpit = (firststiv1*exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+firststiv2*exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+firststiv3*exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+firststiv4*exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+firststiv5*exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+firststiv6*exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6))/(exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6)) replace pitdenom = (exp([#1]lnmktinc*lnmktinc1+[#1]firststiv*firststiv1)+exp([#1]lnmktinc*lnmktinc2+[#1]firststiv*firststiv2+[#1]_Iyearint_2)+exp([#1]lnmktinc*lnmktinc3+[#1]firststiv*firststiv3+[#1]_Iyearint_3)+exp([#1]lnmktinc*lnmktinc4+[#1]firststiv*firststiv4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]firststiv*firststiv5+[#1]_Iyearint_5)+exp([#1]lnmktinc*lnmktinc6+[#1]firststiv*firststiv6+[#1]_Iyearint_6)) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmktinc*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]firststiv*firststivX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]firststiv*firststivX+[#1]_Iyearint_X)/pitdenom if yearint==X replace p7 = firststiv*pit-pit*lwtpit summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p1 p7 p2 p3 p4 p5 p6 if drug==X, matrix(delpX)\mkmat pitinv if drug==X, matrix(pitinvX)\matrix WX = diag(pitinvX)\mkmat totappnewmol if drug==X, matrix(nivecX)\scalar niX = nivecX[1,1]\mkmat wt if drug==X, matrix(wtvecX)\scalar wtX = wtvecX[1,1]\matrix ahatX = niX*wtX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX matrix ahat = ahat1+ahat2+ahat3+ahat4+ahat5+ahat6+ahat7+ahat8+ahat9+ahat10+ahat11+ahat12+ahat13+ahat14+ahat15+ahat16+ahat17+ahat18+ahat19+ahat20+ahat21+ahat22+ahat23+ahat24+ahat25+ahat26+ahat27+ahat28+ahat29+ahat30+ahat31+ahat32+ahat33 matrix bhat = bhat1+bhat2+bhat3+bhat4+bhat5+bhat6+bhat7+bhat8+bhat9+bhat10+bhat11+bhat12+bhat13+bhat14+bhat15+bhat16+bhat17+bhat18+bhat19+bhat20+bhat21+bhat22+bhat23+bhat24+bhat25+bhat26+bhat27+bhat28+bhat29+bhat30+bhat31+bhat32+bhat33 matrix ahatinv = inv(ahat) matrix vhat = ahatinv*bhat*ahatinv matrix B = [#1]lnmktinc,[#1]firststiv,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]firststiv,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc firststiv _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display log close