Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | "Martin Weiss" <martin.weiss1@gmx.de> |
To | <statalist@hsphsun2.harvard.edu> |
Subject | RE: st: RE: margeff after the glm command |
Date | Thu, 13 May 2010 18:46:51 +0200 |
<> -ssc d margeff- chokes on "e(wexp)" left behind by your -firthlogit- version. Do not ask me for the details, though: -margeff- sees "e(wexp)" and substitutes it for the expression reported in your error message, and -exit-s. That is how far I got in my investigation. Joseph may have more insights for you. Have you tried the version on ssc, obtained via -ssc inst firthlogit-? The outcome will be no better, though, just more intelligible: margeff does not support firthlogit; please use -mfx- instead invalid syntax HTH Martin -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Sabrina Carrossa Sent: Donnerstag, 13. Mai 2010 18:25 To: statalist@hsphsun2.harvard.edu Subject: Re: st: RE: margeff after the glm command Ok Martin, I thought that the problem was about executing the margeff command after the glm one, but obviously this is not the case. I just tried to execute the margeff command after the "firthlogit ptogram" (you can find the do file here: http://www.stata.com/statalist/archive/2005-11/msg00786.html), but stata shows " __000006 not found r(111) ". To be more clear, I'd better paste all the commands: *************************************************************** * firstly I execute the following program written by Joseph Coveney *************************************************************** clear set more off input byte uti byte GrpSize byte age byte oc byte vic byte /// vicl byte vis byte dia 1 2 0 0 0 0 1 0 14 16 0 0 1 0 0 0 3 4 0 0 1 0 1 0 10 18 0 0 1 1 0 0 12 30 0 0 1 1 1 0 1 1 0 0 1 1 1 1 44 86 0 1 0 0 0 0 3 3 0 1 0 0 0 1 0 1 0 1 0 0 1 0 15 16 0 1 1 0 0 0 1 1 0 1 1 0 0 1 2 2 0 1 1 0 1 0 7 12 0 1 1 1 0 0 3 9 0 1 1 1 1 0 2 2 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 3 1 0 1 1 0 0 0 4 1 0 1 1 1 0 1 1 1 0 1 1 1 1 5 19 1 1 0 0 0 0 0 1 1 1 0 0 1 0 3 4 1 1 1 0 0 0 0 2 1 1 1 1 1 0 end rename uti count1 generate byte count0 = GrpSize - count1 drop GrpSize reshape long count, i(age-dia) j(positive) drop if count == 0 expand count drop count rename oc oral rename vic condom rename vicl lubri rename vis sperm rename dia diaphrag replace age = !age // Heinze & Ploner flipped this * capture program drop firthlogit program define firthlogit, eclass sortpreserve byable(recall) syntax varlist(min = 1) [if] [in], [or] tempvar hat key split false pseudo_response weight preserve quietly { glm `varlist' , family(binomial) link(logit) `nolog' local depvar `e(depvar)' local indepvarlist = /// subinstr("`varlist'", "`depvar'", "", 1) predict `hat', hat * Splitting generate long `key' = _n generate byte `split' = 2 expand `split' drop `split' bysort `key': generate byte `false' = _n - 1 generate byte `pseudo_response' = `depvar' bysort `key' (`false'): replace `pseudo_response' = /// 1 - `depvar' if _n == _N generate float `weight' = 1 + `hat' / 2 replace `weight' = `hat' / 2 if `false' } * Loop to convergence local last_ll `e(ll)' local criterion = 1 local i = 1 while `criterion' > 10^-4 { quietly { glm `pseudo_response' `indepvarlist' /// [iweight = `weight'], family(binomial) link(logit) local criterion = abs((`last_ll' - e(ll) ) / `last_ll') drop `hat' predict `hat', hat replace `weight' = 1 + `hat' / 2 replace `weight' = `hat' / 2 if `false' } display in smcl as text "Firth", "Last Log-", /// "This Log-", "Fractional" display in smcl as text "Iteration", "likelihood", /// "likelihood", "Change" display in smcl as result "`++i'", `last_ll', /// `e(ll)', `criterion' local last_ll = e(ll) } if "`or'" != "" { glm , eform } else { glm } end * firthlogit positive age-diaphrag exit *************************************************************** * then I try to execute the margeff command *************************************************************** margeff, dummies( age oral condom lubri sperm diaphrag) replace /* but I got the error message: "__000006 not found r(111); */ Hope this is more clear, sabry * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/ * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/