各位好,我现在需要写一个maximum likelihood function,这是一个underreported 的poisson model,所以没有现成的程序。现在的问题是在这个ml中,遇到了一个积分,所以需要用gauss-hermite数值积分的办法解决,请问各位知道怎么实现这个数值积分吗?
likelihood function 是: 对于每个individual的prob function is
g_i=Integral{exp(-exp(X'*beta+sqrt(2)*sigma*v))*Phi((Z'*gamma+sqrt(2)*rho*v)/(sqrt(1-rho^2)))*[exp(X'*beta+sqrt(2)*sigma*v)*Phi((Z'*gamma+sqrt(2)*rho*v)/(sqrt(1-rho^2)))]^(y)exp(-v^2)dv}
我现在有一个小程序program my_truncatedpoisson_lf
version 9.1
args lnf beta gama rho sigma
tempvar a b c d v w
gen `v'=.
gen `w'=.
_GetQuad, avar(`v') wvar(`w') quad(20)
gen double `a'=(`gama'+1/(exp(`rho')+1)*`v'/exp(`sigma'))/sqrt(1-1/((exp(`rho')+1)^2))
gen double `b'=exp(`beta'+`v')*normal(`a')
gen double `c'=1/exp(lnfactorial($ML_y1))*exp(-`sigma')*normalden(`v',0,exp(`sigma'))
gen double `d'=`w'*exp(-`b')*`b'^($ML_y1)*`c'
collapse (sum)`d'
qui replace `lnf'=log(`d')
end
use auto
ml model lf my_truncatedpoisson_lf (beta: mpg= price)(gama: turn)()()
ml maximize
多谢各位了


雷达卡



京公网安备 11010802022788号







