*********************************************** * run specifications reported in Table 3 * 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 * 10-year data set used for column 2, 5-year data set used for columns 3-10 * Note: the specification for column 8 is not included, which makes use of data from the NBER working paper version * do-file and data set created 5/1/2005 *********************************************** clear set mem 100m set mat 100 set more off set type double log using table3, replace text *********************************************** * column 2: 10-year time intervals *********************************************** ********** * load data and prepare for estimation ********** use public-qje-drugs-10yr, clear * create dummies for time intervals xi i.yearint * set all drugcat counts to zero if missing gen one=1 replace appnongen=0 if appnongen==. replace appnewmol=0 if appnewmol==. * expand market size variable as in table 2 qui for X in num 3/5: gen lnmktincX=lnmktinc if yearint==X sort drugcat yearint qui for X in num 3/5: by drugcat: replace lnmktincX=lnmktincX[_n-1] if lnmktincX==. gsort drugcat -yearint qui for X in num 3/5: by drugcat: replace lnmktincX=lnmktincX[_n-1] if lnmktincX==. * calculate total drug approvals by category foreach kind in appnongen appnewmol { sort drugcat yearint by drugcat: egen tot`kind' = sum(`kind') } ****** * Panel A: non-generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta 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_4 _Iyearint_5, nocons) [aw=totcatspend] ml search ml max sort drug yearint gen pit = exp([#1]lnmktinc*lnmktinc)/(exp([#1]lnmktinc*lnmktinc3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)) if yearint==3 quietly for X in num 4/5: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)) if yearint==X gen pitinv = 1/pit gen wtpit = (lnmktinc3*exp([#1]lnmktinc*lnmktinc3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5))/(exp([#1]lnmktinc*lnmktinc3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)) gen pitdenom = exp([#1]lnmktinc*lnmktinc3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5) gen uit = appnongen - totappnongen*pit summ uit gen p3 = lnmktinc*pit-pit*wtpit quietly for X in num 4/5: gen pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom quietly for X in num 4/5: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatspend gen wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p3 p4 p5 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]_Iyearint_4,[#1]_Iyearint_5 matrix colnames vhat = lnmktinc _Iyearint_4 _Iyearint_5 matrix rownames vhat = lnmktinc _Iyearint_4 _Iyearint_5 matrix colnames B = lnmktinc _Iyearint_4 _Iyearint_5 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]_Iyearint_4,[#1]_Iyearint_5 matrix colnames ahatinv = lnmktinc _Iyearint_4 _Iyearint_5 matrix rownames ahatinv = lnmktinc _Iyearint_4 _Iyearint_5 matrix colnames B = lnmktinc _Iyearint_4 _Iyearint_5 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 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 * current market size ml model d0 condfe (theta: appnewmol = lnmktinc _Iyearint_4 _Iyearint_5, nocons) [aw=totcatspend] ml search ml max sort drug yearint replace pit = exp([#1]lnmktinc*lnmktinc)/(exp([#1]lnmktinc*lnmktinc3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)) if yearint==3 quietly for X in num 4/5: replace pit = exp([#1]lnmktinc*lnmktinc+[#1]_Iyearint_X)/(exp([#1]lnmktinc*lnmktinc3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc3*exp([#1]lnmktinc*lnmktinc3)+lnmktinc4*exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+lnmktinc5*exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5))/(exp([#1]lnmktinc*lnmktinc3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5)) replace pitdenom = exp([#1]lnmktinc*lnmktinc3)+exp([#1]lnmktinc*lnmktinc4+[#1]_Iyearint_4)+exp([#1]lnmktinc*lnmktinc5+[#1]_Iyearint_5) replace uit = appnewmol - totappnewmol*pit summ uit replace p3 = lnmktinc*pit-pit*wtpit quietly for X in num 4/5: replace pX = -pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom quietly for X in num 4/5: replace pX = pit-pit*exp([#1]lnmktinc*lnmktincX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatspend replace wt = totcatspend*r(N) / r(sum) quietly for X in num 1/33: mkmat p3 p4 p5 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]_Iyearint_4,[#1]_Iyearint_5 matrix colnames vhat = lnmktinc _Iyearint_4 _Iyearint_5 matrix rownames vhat = lnmktinc _Iyearint_4 _Iyearint_5 matrix colnames B = lnmktinc _Iyearint_4 _Iyearint_5 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc,[#1]_Iyearint_4,[#1]_Iyearint_5 matrix colnames ahatinv = lnmktinc _Iyearint_4 _Iyearint_5 matrix rownames ahatinv = lnmktinc _Iyearint_4 _Iyearint_5 matrix colnames B = lnmktinc _Iyearint_4 _Iyearint_5 ereturn post B ahatinv ereturn display *********************************************** * Prepare 5-year data set for estimation *********************************************** *************************** * 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 appnongennamcs appnewmolnamcs { replace `kind' = 0 if `kind'==. } * expand market size variables similarly to table 2 foreach kind in lnmktinc lnmkt lnnamcsmkt lnoecdmkt lnmktinc1yr { 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==. } * calculate total drug approvals by category, taking sum over first 5 time periods for lead specifications foreach kind in appnongen appnewmol appnongennamcs appnewmolnamcs { sort drugcat yearint by drugcat: egen tot`kind' = sum(`kind') by drugcat: egen totf`kind' = sum(`kind') if yearint<6 } *************************** * Column 3: population based market size *************************** ****** * Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta 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 = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatuse] ml search ml max sort drug yearint gen pit = exp([#1]lnmkt*lnmkt)/(exp([#1]lnmkt*lnmkt1)+exp([#1]lnmkt*lnmkt2+[#1]_Iyearint_2)+exp([#1]lnmkt*lnmkt3+[#1]_Iyearint_3)+exp([#1]lnmkt*lnmkt4+[#1]_Iyearint_4)+exp([#1]lnmkt*lnmkt5+[#1]_Iyearint_5)+exp([#1]lnmkt*lnmkt6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmkt*lnmkt+[#1]_Iyearint_X)/(exp([#1]lnmkt*lnmkt1)+exp([#1]lnmkt*lnmkt2+[#1]_Iyearint_2)+exp([#1]lnmkt*lnmkt3+[#1]_Iyearint_3)+exp([#1]lnmkt*lnmkt4+[#1]_Iyearint_4)+exp([#1]lnmkt*lnmkt5+[#1]_Iyearint_5)+exp([#1]lnmkt*lnmkt6+[#1]_Iyearint_6)) if yearint==X gen pitinv = 1/pit gen wtpit = (lnmkt1*exp([#1]lnmkt*lnmkt1)+lnmkt2*exp([#1]lnmkt*lnmkt2+[#1]_Iyearint_2)+lnmkt3*exp([#1]lnmkt*lnmkt3+[#1]_Iyearint_3)+lnmkt4*exp([#1]lnmkt*lnmkt4+[#1]_Iyearint_4)+lnmkt5*exp([#1]lnmkt*lnmkt5+[#1]_Iyearint_5)+lnmkt6*exp([#1]lnmkt*lnmkt6+[#1]_Iyearint_6))/(exp([#1]lnmkt*lnmkt1)+exp([#1]lnmkt*lnmkt2+[#1]_Iyearint_2)+exp([#1]lnmkt*lnmkt3+[#1]_Iyearint_3)+exp([#1]lnmkt*lnmkt4+[#1]_Iyearint_4)+exp([#1]lnmkt*lnmkt5+[#1]_Iyearint_5)+exp([#1]lnmkt*lnmkt6+[#1]_Iyearint_6)) gen pitdenom = exp([#1]lnmkt*lnmkt1)+exp([#1]lnmkt*lnmkt2+[#1]_Iyearint_2)+exp([#1]lnmkt*lnmkt3+[#1]_Iyearint_3)+exp([#1]lnmkt*lnmkt4+[#1]_Iyearint_4)+exp([#1]lnmkt*lnmkt5+[#1]_Iyearint_5)+exp([#1]lnmkt*lnmkt6+[#1]_Iyearint_6) gen uit = appnongen - totappnongen*pit summ uit gen p1 = lnmkt*pit-pit*wtpit quietly for X in num 2/6: gen pX = -pit*exp([#1]lnmkt*lnmktX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmkt*lnmktX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatuse gen wt = totcatuse*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]lnmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmkt _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 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 = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatuse] ml search ml max sort drug yearint replace pit = exp([#1]lnmkt*lnmkt)/(exp([#1]lnmkt*lnmkt1)+exp([#1]lnmkt*lnmkt2+[#1]_Iyearint_2)+exp([#1]lnmkt*lnmkt3+[#1]_Iyearint_3)+exp([#1]lnmkt*lnmkt4+[#1]_Iyearint_4)+exp([#1]lnmkt*lnmkt5+[#1]_Iyearint_5)+exp([#1]lnmkt*lnmkt6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmkt*lnmkt+[#1]_Iyearint_X)/(exp([#1]lnmkt*lnmkt1)+exp([#1]lnmkt*lnmkt2+[#1]_Iyearint_2)+exp([#1]lnmkt*lnmkt3+[#1]_Iyearint_3)+exp([#1]lnmkt*lnmkt4+[#1]_Iyearint_4)+exp([#1]lnmkt*lnmkt5+[#1]_Iyearint_5)+exp([#1]lnmkt*lnmkt6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmkt1*exp([#1]lnmkt*lnmkt1)+lnmkt2*exp([#1]lnmkt*lnmkt2+[#1]_Iyearint_2)+lnmkt3*exp([#1]lnmkt*lnmkt3+[#1]_Iyearint_3)+lnmkt4*exp([#1]lnmkt*lnmkt4+[#1]_Iyearint_4)+lnmkt5*exp([#1]lnmkt*lnmkt5+[#1]_Iyearint_5)+lnmkt6*exp([#1]lnmkt*lnmkt6+[#1]_Iyearint_6))/(exp([#1]lnmkt*lnmkt1)+exp([#1]lnmkt*lnmkt2+[#1]_Iyearint_2)+exp([#1]lnmkt*lnmkt3+[#1]_Iyearint_3)+exp([#1]lnmkt*lnmkt4+[#1]_Iyearint_4)+exp([#1]lnmkt*lnmkt5+[#1]_Iyearint_5)+exp([#1]lnmkt*lnmkt6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnmkt*lnmkt1)+exp([#1]lnmkt*lnmkt2+[#1]_Iyearint_2)+exp([#1]lnmkt*lnmkt3+[#1]_Iyearint_3)+exp([#1]lnmkt*lnmkt4+[#1]_Iyearint_4)+exp([#1]lnmkt*lnmkt5+[#1]_Iyearint_5)+exp([#1]lnmkt*lnmkt6+[#1]_Iyearint_6) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmkt*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmkt*lnmktX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmkt*lnmktX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatuse replace wt = totcatuse*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]lnmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 4: NAMCS based market size *************************** ****** * Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta 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 = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatusenamcs] ml search ml max sort drug yearint replace pit = exp([#1]lnnamcsmkt*lnnamcsmkt)/(exp([#1]lnnamcsmkt*lnnamcsmkt1)+exp([#1]lnnamcsmkt*lnnamcsmkt2+[#1]_Iyearint_2)+exp([#1]lnnamcsmkt*lnnamcsmkt3+[#1]_Iyearint_3)+exp([#1]lnnamcsmkt*lnnamcsmkt4+[#1]_Iyearint_4)+exp([#1]lnnamcsmkt*lnnamcsmkt5+[#1]_Iyearint_5)+exp([#1]lnnamcsmkt*lnnamcsmkt6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnnamcsmkt*lnnamcsmkt+[#1]_Iyearint_X)/(exp([#1]lnnamcsmkt*lnnamcsmkt1)+exp([#1]lnnamcsmkt*lnnamcsmkt2+[#1]_Iyearint_2)+exp([#1]lnnamcsmkt*lnnamcsmkt3+[#1]_Iyearint_3)+exp([#1]lnnamcsmkt*lnnamcsmkt4+[#1]_Iyearint_4)+exp([#1]lnnamcsmkt*lnnamcsmkt5+[#1]_Iyearint_5)+exp([#1]lnnamcsmkt*lnnamcsmkt6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnnamcsmkt1*exp([#1]lnnamcsmkt*lnnamcsmkt1)+lnnamcsmkt2*exp([#1]lnnamcsmkt*lnnamcsmkt2+[#1]_Iyearint_2)+lnnamcsmkt3*exp([#1]lnnamcsmkt*lnnamcsmkt3+[#1]_Iyearint_3)+lnnamcsmkt4*exp([#1]lnnamcsmkt*lnnamcsmkt4+[#1]_Iyearint_4)+lnnamcsmkt5*exp([#1]lnnamcsmkt*lnnamcsmkt5+[#1]_Iyearint_5)+lnnamcsmkt6*exp([#1]lnnamcsmkt*lnnamcsmkt6+[#1]_Iyearint_6))/(exp([#1]lnnamcsmkt*lnnamcsmkt1)+exp([#1]lnnamcsmkt*lnnamcsmkt2+[#1]_Iyearint_2)+exp([#1]lnnamcsmkt*lnnamcsmkt3+[#1]_Iyearint_3)+exp([#1]lnnamcsmkt*lnnamcsmkt4+[#1]_Iyearint_4)+exp([#1]lnnamcsmkt*lnnamcsmkt5+[#1]_Iyearint_5)+exp([#1]lnnamcsmkt*lnnamcsmkt6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnnamcsmkt*lnnamcsmkt1)+exp([#1]lnnamcsmkt*lnnamcsmkt2+[#1]_Iyearint_2)+exp([#1]lnnamcsmkt*lnnamcsmkt3+[#1]_Iyearint_3)+exp([#1]lnnamcsmkt*lnnamcsmkt4+[#1]_Iyearint_4)+exp([#1]lnnamcsmkt*lnnamcsmkt5+[#1]_Iyearint_5)+exp([#1]lnnamcsmkt*lnnamcsmkt6+[#1]_Iyearint_6) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnnamcsmkt*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnnamcsmkt*lnnamcsmktX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnnamcsmkt*lnnamcsmktX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatusenamcs replace wt = totcatusenamcs*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]lnnamcsmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnnamcsmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnnamcsmkt _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 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 = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatusenamcs] ml search ml max replace pit = exp([#1]lnnamcsmkt*lnnamcsmkt)/(exp([#1]lnnamcsmkt*lnnamcsmkt1)+exp([#1]lnnamcsmkt*lnnamcsmkt2+[#1]_Iyearint_2)+exp([#1]lnnamcsmkt*lnnamcsmkt3+[#1]_Iyearint_3)+exp([#1]lnnamcsmkt*lnnamcsmkt4+[#1]_Iyearint_4)+exp([#1]lnnamcsmkt*lnnamcsmkt5+[#1]_Iyearint_5)+exp([#1]lnnamcsmkt*lnnamcsmkt6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnnamcsmkt*lnnamcsmkt+[#1]_Iyearint_X)/(exp([#1]lnnamcsmkt*lnnamcsmkt1)+exp([#1]lnnamcsmkt*lnnamcsmkt2+[#1]_Iyearint_2)+exp([#1]lnnamcsmkt*lnnamcsmkt3+[#1]_Iyearint_3)+exp([#1]lnnamcsmkt*lnnamcsmkt4+[#1]_Iyearint_4)+exp([#1]lnnamcsmkt*lnnamcsmkt5+[#1]_Iyearint_5)+exp([#1]lnnamcsmkt*lnnamcsmkt6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnnamcsmkt1*exp([#1]lnnamcsmkt*lnnamcsmkt1)+lnnamcsmkt2*exp([#1]lnnamcsmkt*lnnamcsmkt2+[#1]_Iyearint_2)+lnnamcsmkt3*exp([#1]lnnamcsmkt*lnnamcsmkt3+[#1]_Iyearint_3)+lnnamcsmkt4*exp([#1]lnnamcsmkt*lnnamcsmkt4+[#1]_Iyearint_4)+lnnamcsmkt5*exp([#1]lnnamcsmkt*lnnamcsmkt5+[#1]_Iyearint_5)+lnnamcsmkt6*exp([#1]lnnamcsmkt*lnnamcsmkt6+[#1]_Iyearint_6))/(exp([#1]lnnamcsmkt*lnnamcsmkt1)+exp([#1]lnnamcsmkt*lnnamcsmkt2+[#1]_Iyearint_2)+exp([#1]lnnamcsmkt*lnnamcsmkt3+[#1]_Iyearint_3)+exp([#1]lnnamcsmkt*lnnamcsmkt4+[#1]_Iyearint_4)+exp([#1]lnnamcsmkt*lnnamcsmkt5+[#1]_Iyearint_5)+exp([#1]lnnamcsmkt*lnnamcsmkt6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnnamcsmkt*lnnamcsmkt1)+exp([#1]lnnamcsmkt*lnnamcsmkt2+[#1]_Iyearint_2)+exp([#1]lnnamcsmkt*lnnamcsmkt3+[#1]_Iyearint_3)+exp([#1]lnnamcsmkt*lnnamcsmkt4+[#1]_Iyearint_4)+exp([#1]lnnamcsmkt*lnnamcsmkt5+[#1]_Iyearint_5)+exp([#1]lnnamcsmkt*lnnamcsmkt6+[#1]_Iyearint_6) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnnamcsmkt*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnnamcsmkt*lnnamcsmktX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnnamcsmkt*lnnamcsmktX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatusenamcs replace wt = totcatusenamcs*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]lnnamcsmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnnamcsmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnnamcsmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 5: OECD based market size *************************** ****** * Panel A: non generics ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta 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 = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatuse] ml search ml max sort drug yearint replace pit = exp([#1]lnoecdmkt*lnoecdmkt)/(exp([#1]lnoecdmkt*lnoecdmkt1)+exp([#1]lnoecdmkt*lnoecdmkt2+[#1]_Iyearint_2)+exp([#1]lnoecdmkt*lnoecdmkt3+[#1]_Iyearint_3)+exp([#1]lnoecdmkt*lnoecdmkt4+[#1]_Iyearint_4)+exp([#1]lnoecdmkt*lnoecdmkt5+[#1]_Iyearint_5)+exp([#1]lnoecdmkt*lnoecdmkt6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnoecdmkt*lnoecdmkt+[#1]_Iyearint_X)/(exp([#1]lnoecdmkt*lnoecdmkt1)+exp([#1]lnoecdmkt*lnoecdmkt2+[#1]_Iyearint_2)+exp([#1]lnoecdmkt*lnoecdmkt3+[#1]_Iyearint_3)+exp([#1]lnoecdmkt*lnoecdmkt4+[#1]_Iyearint_4)+exp([#1]lnoecdmkt*lnoecdmkt5+[#1]_Iyearint_5)+exp([#1]lnoecdmkt*lnoecdmkt6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnoecdmkt1*exp([#1]lnoecdmkt*lnoecdmkt1)+lnoecdmkt2*exp([#1]lnoecdmkt*lnoecdmkt2+[#1]_Iyearint_2)+lnoecdmkt3*exp([#1]lnoecdmkt*lnoecdmkt3+[#1]_Iyearint_3)+lnoecdmkt4*exp([#1]lnoecdmkt*lnoecdmkt4+[#1]_Iyearint_4)+lnoecdmkt5*exp([#1]lnoecdmkt*lnoecdmkt5+[#1]_Iyearint_5)+lnoecdmkt6*exp([#1]lnoecdmkt*lnoecdmkt6+[#1]_Iyearint_6))/(exp([#1]lnoecdmkt*lnoecdmkt1)+exp([#1]lnoecdmkt*lnoecdmkt2+[#1]_Iyearint_2)+exp([#1]lnoecdmkt*lnoecdmkt3+[#1]_Iyearint_3)+exp([#1]lnoecdmkt*lnoecdmkt4+[#1]_Iyearint_4)+exp([#1]lnoecdmkt*lnoecdmkt5+[#1]_Iyearint_5)+exp([#1]lnoecdmkt*lnoecdmkt6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnoecdmkt*lnoecdmkt1)+exp([#1]lnoecdmkt*lnoecdmkt2+[#1]_Iyearint_2)+exp([#1]lnoecdmkt*lnoecdmkt3+[#1]_Iyearint_3)+exp([#1]lnoecdmkt*lnoecdmkt4+[#1]_Iyearint_4)+exp([#1]lnoecdmkt*lnoecdmkt5+[#1]_Iyearint_5)+exp([#1]lnoecdmkt*lnoecdmkt6+[#1]_Iyearint_6) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnoecdmkt*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnoecdmkt*lnoecdmktX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnoecdmkt*lnoecdmktX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatuse replace wt = totcatuse*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]lnoecdmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnoecdmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnoecdmkt _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 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 * current market size ml model d0 condfe (theta: appnewmol = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatuse] ml search ml max sort drug yearint replace pit = exp([#1]lnoecdmkt*lnoecdmkt)/(exp([#1]lnoecdmkt*lnoecdmkt1)+exp([#1]lnoecdmkt*lnoecdmkt2+[#1]_Iyearint_2)+exp([#1]lnoecdmkt*lnoecdmkt3+[#1]_Iyearint_3)+exp([#1]lnoecdmkt*lnoecdmkt4+[#1]_Iyearint_4)+exp([#1]lnoecdmkt*lnoecdmkt5+[#1]_Iyearint_5)+exp([#1]lnoecdmkt*lnoecdmkt6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnoecdmkt*lnoecdmkt+[#1]_Iyearint_X)/(exp([#1]lnoecdmkt*lnoecdmkt1)+exp([#1]lnoecdmkt*lnoecdmkt2+[#1]_Iyearint_2)+exp([#1]lnoecdmkt*lnoecdmkt3+[#1]_Iyearint_3)+exp([#1]lnoecdmkt*lnoecdmkt4+[#1]_Iyearint_4)+exp([#1]lnoecdmkt*lnoecdmkt5+[#1]_Iyearint_5)+exp([#1]lnoecdmkt*lnoecdmkt6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnoecdmkt1*exp([#1]lnoecdmkt*lnoecdmkt1)+lnoecdmkt2*exp([#1]lnoecdmkt*lnoecdmkt2+[#1]_Iyearint_2)+lnoecdmkt3*exp([#1]lnoecdmkt*lnoecdmkt3+[#1]_Iyearint_3)+lnoecdmkt4*exp([#1]lnoecdmkt*lnoecdmkt4+[#1]_Iyearint_4)+lnoecdmkt5*exp([#1]lnoecdmkt*lnoecdmkt5+[#1]_Iyearint_5)+lnoecdmkt6*exp([#1]lnoecdmkt*lnoecdmkt6+[#1]_Iyearint_6))/(exp([#1]lnoecdmkt*lnoecdmkt1)+exp([#1]lnoecdmkt*lnoecdmkt2+[#1]_Iyearint_2)+exp([#1]lnoecdmkt*lnoecdmkt3+[#1]_Iyearint_3)+exp([#1]lnoecdmkt*lnoecdmkt4+[#1]_Iyearint_4)+exp([#1]lnoecdmkt*lnoecdmkt5+[#1]_Iyearint_5)+exp([#1]lnoecdmkt*lnoecdmkt6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnoecdmkt*lnoecdmkt1)+exp([#1]lnoecdmkt*lnoecdmkt2+[#1]_Iyearint_2)+exp([#1]lnoecdmkt*lnoecdmkt3+[#1]_Iyearint_3)+exp([#1]lnoecdmkt*lnoecdmkt4+[#1]_Iyearint_4)+exp([#1]lnoecdmkt*lnoecdmkt5+[#1]_Iyearint_5)+exp([#1]lnoecdmkt*lnoecdmkt6+[#1]_Iyearint_6) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnoecdmkt*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnoecdmkt*lnoecdmktX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnoecdmkt*lnoecdmktX+[#1]_Iyearint_X)/pitdenom if yearint==X summ totcatuse replace wt = totcatuse*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]lnoecdmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnoecdmkt,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnoecdmkt _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 6: unweighted *************************** ****** * 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) 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 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]\matrix ahatX = niX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = 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]_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 ****** * Panel B: new molecules ****** capture program drop condfe program define condfe version 7 args todo b lnf tempvar p y theta 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) 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 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]\matrix ahatX = niX*delpX'*WX*delpX\mkmat uit if drug==X, matrix(uhatX)\matrix bhatX = 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]_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 7: single year age groups *************************** ****** * 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 = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc1yr*lnmktinc1yr)/(exp([#1]lnmktinc1yr*lnmktinc1yr1)+exp([#1]lnmktinc1yr*lnmktinc1yr2+[#1]_Iyearint_2)+exp([#1]lnmktinc1yr*lnmktinc1yr3+[#1]_Iyearint_3)+exp([#1]lnmktinc1yr*lnmktinc1yr4+[#1]_Iyearint_4)+exp([#1]lnmktinc1yr*lnmktinc1yr5+[#1]_Iyearint_5)+exp([#1]lnmktinc1yr*lnmktinc1yr6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc1yr*lnmktinc1yr+[#1]_Iyearint_X)/(exp([#1]lnmktinc1yr*lnmktinc1yr1)+exp([#1]lnmktinc1yr*lnmktinc1yr2+[#1]_Iyearint_2)+exp([#1]lnmktinc1yr*lnmktinc1yr3+[#1]_Iyearint_3)+exp([#1]lnmktinc1yr*lnmktinc1yr4+[#1]_Iyearint_4)+exp([#1]lnmktinc1yr*lnmktinc1yr5+[#1]_Iyearint_5)+exp([#1]lnmktinc1yr*lnmktinc1yr6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1yr1*exp([#1]lnmktinc1yr*lnmktinc1yr1)+lnmktinc1yr2*exp([#1]lnmktinc1yr*lnmktinc1yr2+[#1]_Iyearint_2)+lnmktinc1yr3*exp([#1]lnmktinc1yr*lnmktinc1yr3+[#1]_Iyearint_3)+lnmktinc1yr4*exp([#1]lnmktinc1yr*lnmktinc1yr4+[#1]_Iyearint_4)+lnmktinc1yr5*exp([#1]lnmktinc1yr*lnmktinc1yr5+[#1]_Iyearint_5)+lnmktinc1yr6*exp([#1]lnmktinc1yr*lnmktinc1yr6+[#1]_Iyearint_6))/(exp([#1]lnmktinc1yr*lnmktinc1yr1)+exp([#1]lnmktinc1yr*lnmktinc1yr2+[#1]_Iyearint_2)+exp([#1]lnmktinc1yr*lnmktinc1yr3+[#1]_Iyearint_3)+exp([#1]lnmktinc1yr*lnmktinc1yr4+[#1]_Iyearint_4)+exp([#1]lnmktinc1yr*lnmktinc1yr5+[#1]_Iyearint_5)+exp([#1]lnmktinc1yr*lnmktinc1yr6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnmktinc1yr*lnmktinc1yr1)+exp([#1]lnmktinc1yr*lnmktinc1yr2+[#1]_Iyearint_2)+exp([#1]lnmktinc1yr*lnmktinc1yr3+[#1]_Iyearint_3)+exp([#1]lnmktinc1yr*lnmktinc1yr4+[#1]_Iyearint_4)+exp([#1]lnmktinc1yr*lnmktinc1yr5+[#1]_Iyearint_5)+exp([#1]lnmktinc1yr*lnmktinc1yr6+[#1]_Iyearint_6) replace uit = appnongen - totappnongen*pit summ uit replace p1 = lnmktinc1yr*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc1yr*lnmktinc1yrX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc1yr*lnmktinc1yrX+[#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]lnmktinc1yr,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc1yr,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc1yr _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 = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] ml search ml max replace pit = exp([#1]lnmktinc1yr*lnmktinc1yr)/(exp([#1]lnmktinc1yr*lnmktinc1yr1)+exp([#1]lnmktinc1yr*lnmktinc1yr2+[#1]_Iyearint_2)+exp([#1]lnmktinc1yr*lnmktinc1yr3+[#1]_Iyearint_3)+exp([#1]lnmktinc1yr*lnmktinc1yr4+[#1]_Iyearint_4)+exp([#1]lnmktinc1yr*lnmktinc1yr5+[#1]_Iyearint_5)+exp([#1]lnmktinc1yr*lnmktinc1yr6+[#1]_Iyearint_6)) if yearint==1 quietly for X in num 2/6: replace pit = exp([#1]lnmktinc1yr*lnmktinc1yr+[#1]_Iyearint_X)/(exp([#1]lnmktinc1yr*lnmktinc1yr1)+exp([#1]lnmktinc1yr*lnmktinc1yr2+[#1]_Iyearint_2)+exp([#1]lnmktinc1yr*lnmktinc1yr3+[#1]_Iyearint_3)+exp([#1]lnmktinc1yr*lnmktinc1yr4+[#1]_Iyearint_4)+exp([#1]lnmktinc1yr*lnmktinc1yr5+[#1]_Iyearint_5)+exp([#1]lnmktinc1yr*lnmktinc1yr6+[#1]_Iyearint_6)) if yearint==X replace pitinv = 1/pit replace wtpit = (lnmktinc1yr1*exp([#1]lnmktinc1yr*lnmktinc1yr1)+lnmktinc1yr2*exp([#1]lnmktinc1yr*lnmktinc1yr2+[#1]_Iyearint_2)+lnmktinc1yr3*exp([#1]lnmktinc1yr*lnmktinc1yr3+[#1]_Iyearint_3)+lnmktinc1yr4*exp([#1]lnmktinc1yr*lnmktinc1yr4+[#1]_Iyearint_4)+lnmktinc1yr5*exp([#1]lnmktinc1yr*lnmktinc1yr5+[#1]_Iyearint_5)+lnmktinc1yr6*exp([#1]lnmktinc1yr*lnmktinc1yr6+[#1]_Iyearint_6))/(exp([#1]lnmktinc1yr*lnmktinc1yr1)+exp([#1]lnmktinc1yr*lnmktinc1yr2+[#1]_Iyearint_2)+exp([#1]lnmktinc1yr*lnmktinc1yr3+[#1]_Iyearint_3)+exp([#1]lnmktinc1yr*lnmktinc1yr4+[#1]_Iyearint_4)+exp([#1]lnmktinc1yr*lnmktinc1yr5+[#1]_Iyearint_5)+exp([#1]lnmktinc1yr*lnmktinc1yr6+[#1]_Iyearint_6)) replace pitdenom = exp([#1]lnmktinc1yr*lnmktinc1yr1)+exp([#1]lnmktinc1yr*lnmktinc1yr2+[#1]_Iyearint_2)+exp([#1]lnmktinc1yr*lnmktinc1yr3+[#1]_Iyearint_3)+exp([#1]lnmktinc1yr*lnmktinc1yr4+[#1]_Iyearint_4)+exp([#1]lnmktinc1yr*lnmktinc1yr5+[#1]_Iyearint_5)+exp([#1]lnmktinc1yr*lnmktinc1yr6+[#1]_Iyearint_6) replace uit = appnewmol - totappnewmol*pit summ uit replace p1 = lnmktinc1yr*pit-pit*wtpit quietly for X in num 2/6: replace pX = -pit*exp([#1]lnmktinc1yr*lnmktinc1yrX+[#1]_Iyearint_X)/pitdenom quietly for X in num 2/6: replace pX = pit-pit*exp([#1]lnmktinc1yr*lnmktinc1yrX+[#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]lnmktinc1yr,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames vhat = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames vhat = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B vhat ereturn display matrix B = [#1]lnmktinc1yr,[#1]_Iyearint_2,[#1]_Iyearint_3,[#1]_Iyearint_4,[#1]_Iyearint_5,[#1]_Iyearint_6 matrix colnames ahatinv = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix rownames ahatinv = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 matrix colnames B = lnmktinc1yr _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6 ereturn post B ahatinv ereturn display *************************** * Column 9: 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* missappnongen [aw=totcatspend], absorb(drug) robust ****** * Panel B: new molecules ****** areg lnappnewmol lnmktinc _Iyearint* missappnewmol [aw=totcatspend], absorb(drug) robust *************************** * Column 10: drop cardiac (category 10) *************************** ****** * 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 for Y in num 10: ml model d0 condfe (theta: appnongen = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] if drug!=Y\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!=Y\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)\quietly for X in num 1/33: mkmat pitinv if drug==X, matrix(pitinvX)\quietly for X in num 1/33: matrix WX = diag(pitinvX)\quietly for X in num 1/33: mkmat totappnongen if drug==X, matrix(nivecX)\quietly for X in num 1/33: scalar niX = nivecX[1,1]\quietly for X in num 1/33: mkmat wt if drug==X, matrix(wtvecX)\quietly for X in num 1/33: scalar wtX = wtvecX[1,1]\quietly for X in num 1/33: matrix ahatX = niX*wtX*delpX'*WX*delpX\quietly for X in num 1/33: mkmat uit if drug==X, matrix(uhatX)\quietly for X in num 1/33: matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX \matrix ahatY = J(6,6,0)\matrix bhatY = J(6,6,0) \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 = bhat2+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]_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 ****** * 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 for Y in num 10: ml model d0 condfe (theta: appnewmol = lnmktinc _Iyearint_2 _Iyearint_3 _Iyearint_4 _Iyearint_5 _Iyearint_6, nocons) [aw=totcatspend] if drug!=Y\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!=Y\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)\quietly for X in num 1/33: mkmat pitinv if drug==X, matrix(pitinvX)\quietly for X in num 1/33: matrix WX = diag(pitinvX)\quietly for X in num 1/33: mkmat totappnewmol if drug==X, matrix(nivecX)\quietly for X in num 1/33: scalar niX = nivecX[1,1]\quietly for X in num 1/33: mkmat wt if drug==X, matrix(wtvecX)\quietly for X in num 1/33: scalar wtX = wtvecX[1,1]\quietly for X in num 1/33: matrix ahatX = niX*wtX*delpX'*WX*delpX\quietly for X in num 1/33: mkmat uit if drug==X, matrix(uhatX)\quietly for X in num 1/33: matrix bhatX = wtX*wtX*delpX'*WX*uhatX*uhatX'*WX*delpX \matrix ahatY = J(6,6,0)\matrix bhatY = J(6,6,0) \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 = bhat2+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]_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 log close