*! version 2.1.0 12feb2012 *! author: Partha Deb * version 1.0.0 12jul2007 * version 1.0.0 12jul2007 program studenttreg_lf version 9.2 args todo b lnf g negH g1 g2 tempname xb lnsigma sigma dfpl1 z z2bydf inv1plz2bydf /// G1 G2 h11 h21 h22 H11 H21 H22 mleval `xb' = `b', eq(1) mleval `lnsigma' = `b', eq(2) quietly { gen double `sigma' = exp(`lnsigma') gen double `dfpl1' = $fmm_tdf + 1 gen double `z' = ($ML_y-`xb')/`sigma' gen double `z2bydf' = (`z'^2)/$fmm_tdf gen double `inv1plz2bydf' = 1/(1 + `z2bydf') mlsum `lnf' = ln(tden($fmm_tdf,`z')/`sigma') replace `g1' = `dfpl1' * `inv1plz2bydf' * `z' / ($fmm_tdf*`sigma') replace `g2' = `dfpl1' * `inv1plz2bydf' * `z2bydf' - 1 mlvecsum `lnf' `G1' = `g1', eq(1) mlvecsum `lnf' `G2' = `g2', eq(2) matrix `g' = (`G1', `G2') gen double `h11' = `dfpl1' * `inv1plz2bydf' / ($fmm_tdf*(`sigma'^2)) /// * (`inv1plz2bydf' * 2 * `z2bydf' - 1) gen double `h21' = -2 * `dfpl1' * `inv1plz2bydf' * `z' / ($fmm_tdf*`sigma') /// * (1 - `inv1plz2bydf' * `z2bydf') gen double `h22' = 2 * `dfpl1' * `inv1plz2bydf' * `z2bydf' /// * (`inv1plz2bydf' * `z2bydf' - 1) mlmatsum `lnf' `H11' = -`h11', eq(1,1) mlmatsum `lnf' `H21' = -`h21', eq(2,1) mlmatsum `lnf' `H22' = -`h22', eq(2,2) matrix `negH' = (`H11',`H21'' \ /// `H21',`H22') } end