program define zoib_lf version 8.2 args lnf proportion oneinflate zeroinflate ln_phi tempvar mu muprime phi quietly gen double `mu' = invlogit(`proportion') quietly gen double `muprime' = invlogit(-`proportion') quietly gen double `phi' = exp(`ln_phi') quietly replace `lnf' = /// lngamma(`phi') - lngamma(`mu'*`phi')-lngamma(`muprime'*`phi') /// + (`mu'*`phi'-1)*ln($ML_y1) +(`muprime'*`phi'-1)*ln(1-$ML_y1) /// + ln(invlogit(- `oneinflate')) + ln(invlogit( - `zeroinflate')) /// if ($ML_y1 < 1 & $ML_y1 > 0) quietly replace `lnf' = ln(invlogit(`oneinflate')) /// if ($ML_y1 == 1) quietly replace `lnf' = ln(invlogit(`zeroinflate')) /// if ($ML_y1 == 0) end