program define _glmilnk STB-16 sg16.3 local eta `1' local mu `2' local pow `3' local k `4' cap gen `mu'=. /* in case it doesn't exist */ if ("$S_E_link"=="pow") { if `pow'== 0 { replace `mu' = exp(`eta') } else { replace `mu' = `eta'^(1/`pow') } exit } if "$S_E_fam" == "bin" { if "$S_E_link" == "l" { replace `mu' = 1/(1+exp(-`eta')) } if "$S_E_link" == "p" { replace `mu' = normprob(`eta') } if "$S_E_link" == "c" { replace `mu' = 1-exp(-exp(`eta')) } } if "$S_E_fam" == "poi" { replace `mu' = exp(`eta') } if "$S_E_fam" == "gam" { replace `mu' = 1/`eta' } if "$S_E_fam" == "ivg" { replace `mu' = 1/sqrt(`eta') } if "$S_E_fam" == "nb" { replace `mu' = `k'/(exp(-`eta')-1) } end