----------------------------------------------------------------------------------------------- name: log: U:\projects\misc\logit\logit.txt log type: text opened on: 30 Aug 2013, 11:12:03 . . // Simulate data . clear . set scheme s1mono . set seed 12345678 . set obs 10000 obs was 0, now 10000 . gen x1 = rchi2(1)+2 . . gen pr1 = exp(-1+0.1*x1) /(1+exp(-1+0.1*x1)) . sum pr1 Variable | Obs Mean Std. Dev. Min Max -------------+-------------------------------------------------------- pr1 | 10000 .3318474 .0327643 .3100255 .7149034 . gen y = rbinomial(1, pr1) . . // Program likelihood evaluator . capture program drop logit_lf . program logit_lf 1. version 12 2. args lf xb 3. quietly { 4. replace `lf'=ln(exp(-`xb')/(1+exp(-`xb'))) /* > */ if $ML_y1==0 5. replace `lf'=ln(1/(1+exp(-`xb'))) /* > */ if $ML_y1==1 6. } 7. end . . ml model lf logit_lf (y: y= x1) . ml search initial: log likelihood = -6931.4718 alternative: log likelihood = -6398.2698 rescale: log likelihood = -6398.2698 . ml maximize initial: log likelihood = -6398.2698 rescale: log likelihood = -6398.2698 Iteration 0: log likelihood = -6398.2698 Iteration 1: log likelihood = -6333.3229 Iteration 2: log likelihood = -6333.2547 Iteration 3: log likelihood = -6333.2547 Number of obs = 10000 Wald chi2(1) = 38.57 Log likelihood = -6333.2547 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ y | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- x1 | .0905286 .0145777 6.21 0.000 .0619569 .1191003 _cons | -.9729583 .0488987 -19.90 0.000 -1.068798 -.8771187 ------------------------------------------------------------------------------ . * parameters match simulated data . est sto mylogit . . * compare to Stata's logit . logit y x1 Iteration 0: log likelihood = -6352.3583 Iteration 1: log likelihood = -6333.2996 Iteration 2: log likelihood = -6333.2547 Iteration 3: log likelihood = -6333.2547 Logistic regression Number of obs = 10000 LR chi2(1) = 38.21 Prob > chi2 = 0.0000 Log likelihood = -6333.2547 Pseudo R2 = 0.0030 ------------------------------------------------------------------------------ y | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- x1 | .0905286 .0145777 6.21 0.000 .0619569 .1191003 _cons | -.9729583 .0488987 -19.90 0.000 -1.068798 -.8771187 ------------------------------------------------------------------------------ . est sto logit . . est table mylogit logit, stat(ll) ---------------------------------------- Variable | mylogit logit -------------+-------------------------- x1 | .09052863 .09052863 _cons | -.97295828 -.97295828 -------------+-------------------------- ll | -6333.2547 -6333.2547 ---------------------------------------- . . . log close name: log: U:\projects\misc\logit\logit.txt log type: text closed on: 30 Aug 2013, 11:12:04 -----------------------------------------------------------------------------------------------