glim_v4.ado
来自「是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到」· ADO 代码 · 共 72 行
ADO
72 行
*! version 1.0.1 28apr2000
program define glim_v4
version 7
args todo eta mu return
if `todo' == -1 { /* Title */
global SGLM_vt "Gamma"
global SGLM_vf "u^2"
global SGLM_mu "glim_mu 0 ."
exit
}
if `todo' == 0 {
gen double `eta' = 1/`mu'
exit
}
if `todo' == 1 { /* V(mu) */
gen double `return' = `mu'*`mu'
exit
}
if `todo' == 2 { /* (d V)/(d mu) */
gen double `return' = 2*`mu'
exit
}
if `todo' == 3 { /* deviance */
local y "$SGLM_y"
if "`y'" == "" {
local y "`e(depvar)'"
}
gen double `return' = -2*(ln(`y'/`mu') - (`y'-`mu')/`mu')
exit
}
if `todo' == 4 { /* Anscombe */
local y "$SGLM_y"
if "`y'" == "" {
local y "`e(depvar)'"
}
gen double `return' = 3*(`y'^(1/3)-`mu'^(1/3))/`mu'^(1/3)
exit
}
if `todo' == 5 { /* ln-likelihood */
local y "$SGLM_y"
if "`y'" == "" {
local y "`e(depvar)'"
}
tempname sig2
if $SGLM_s1 {
scalar `sig2' = $SGLM_s1
}
else {
scalar `sig2' = $SGLM_ph*(($ML_N-$ML_k)/$ML_N)
}
gen double `return' = -`y'/`mu' + ln(1/`mu')
exit
}
if `todo' == 6 { /* Adjustment to deviance */
gen double `return' = 1/(3*sqrt(1/$SGLM_ph))
exit
}
noi di as err "Unknown call to glim variance function"
error 198
end
exit
OLD CODE FOR ln-likelihood
scalar `sig2' = 1/`sig2'
gen double `return' = (`y'/`mu' - ln(`sig2'/`mu') - /*
*/ ((`sig2'-1)/`sig2')*ln(`y') /*
*/ + lngamma(`sig2')/(`sig2'))/(-`sig2')
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?