Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Resolving "Warning: Convergence not achieved" from Churdle command

    Hi,

    I've recently ran the below code to do a double hurdle model using the churdle command and got a warning that says "Warning: convergence not achieved". Is there anything to address this resolve this warning message. Also, how will this warning message impact my results?

    . use "D:\STATA\stata_crc.dta

    . svyset [pweight = finlwt21]

    pweight: finlwt21
    VCE: linearized
    Single unit: missing
    Strata 1: <one>
    SU 1: <observations>
    FPC 1: <zero>

    . svy: churdle linear yc_clothing_new income2 income3 num_child1 num_child3 age_y
    > 35 age_y68 age_y911 age_y1214 age_y1517 if hw_kids & age_young_member < 16, sel
    > ect (income2 income3 num_child1 num_child3 age_y35 age_y68 age_y911 age_y1214 a
    > ge_y1517) ll(0)
    (running churdle on estimation sample)
    convergence not achieved
    convergence not achieved

    Survey: Cragg hurdle regression

    Number of strata = 1 Number of obs = 20,588
    Number of PSUs = 20,588 Population size = 395,898,862
    Design df = 20,587
    F( 8, 20580) = .
    Prob > F = .

    ---------------------------------------------------------------------------------
    | Linearized
    yc_clothing_new | Coef. Std. Err. t P>|t| [95% Conf. Interval]
    ----------------+----------------------------------------------------------------
    yc_clothing_new |
    income2 | 4046.129 9799.329 0.41 0.680 -15161.33 23253.59
    income3 | 10106.02 11635.27 0.87 0.385 -12700.03 32912.07
    num_child1 | -7395.97 41819.21 -0.18 0.860 -89364.93 74572.99
    num_child3 | 3894.276 7037.29 0.55 0.580 -9899.369 17687.92
    age_y35 | -4210.776 9810.327 -0.43 0.668 -23439.79 15018.24
    age_y68 | -3241.384 7702.141 -0.42 0.674 -18338.19 11855.42
    age_y911 | -2672.251 8715.467 -0.31 0.759 -19755.26 14410.75
    age_y1214 | -6367.869 31684.68 -0.20 0.841 -68472.36 55736.62
    age_y1517 | -5958.211 . . . . .
    _cons | -22451.05 . . . . .
    ----------------+----------------------------------------------------------------
    selection_ll |
    income2 | .1479458 .0247642 5.97 0.000 .099406 .1964856
    income3 | .31905 .0253589 12.58 0.000 .2693445 .3687555
    num_child1 | -.152486 .0250076 -6.10 0.000 -.2015029 -.1034691
    num_child3 | -.0166507 .0245225 -0.68 0.497 -.0647167 .0314154
    age_y35 | -.4497017 .0301637 -14.91 0.000 -.5088249 -.3905786
    age_y68 | -.5273747 .0314537 -16.77 0.000 -.5890266 -.4657229
    age_y911 | -.5260449 .0331876 -15.85 0.000 -.5910952 -.4609947
    age_y1214 | -.6468135 .0331596 -19.51 0.000 -.7118091 -.581818
    age_y1517 | -.7082193 .0570788 -12.41 0.000 -.8200982 -.5963405
    _cons | .9015027 .0274157 32.88 0.000 .8477657 .9552397
    ----------------+----------------------------------------------------------------
    lnsigma |
    _cons | 8.438583 .000027 3.1e+05 0.000 8.43853 8.438636
    ----------------+----------------------------------------------------------------
    /sigma | 4622.001 .1247194 4621.756 4622.245
    ---------------------------------------------------------------------------------
    Warning: convergence not achieved

  • #2
    First, be aware that when convergence is not achieved the results shown are not valid and you should not rely on them as answers to your problem.

    But, they are, in this case, probably helpful in diagnosing the problem. Notice that the output for variable age_y1517 shows missing standard errors, t statistics and confidence intervals. So it is likely that something about this variable is preventing your model from converging. Looking at your series of age_y* variables, I'm guessing that they are indicator ("dummy") variables classifying the responses into age groups. If these are a complete set of such variables (i.e. there is no unrepresented category) then you are trying to estimate a model that contains a set of variables that is colinear with the constant term--and that is a mathematical impossibility. Eliminating one of them from the model to create a reference (base) category would be the solution. If that is not what is going on, perhaps there is some other problem with age_y1517: you should examine its distribution. If it is categorical, perhaps one of the categories is extremely rare in your data. Or if it is continuous perhaps it is on a very different scale than other variables in the model, so that rescaling it would be the solution.

    I should add that if age_y* are indicator variables for age, you would probably be better off replacing all of them with a single variable, call it age_group, that takes on values like 1 for age 3-5, 2 for ages 6-8, 3 for ages 9-11, etc., and then using i.age_group in the regression command instead of those age_y* variables. Stata will create "virtual" indicator variables for the different levels of the age group, and you will also be able to use the -margins- command later on to estimate important outcomes and marginal effects. See -help fvvarlist- for more information about factor-variable notation. Similar considerations might apply to your other variables as well, if they are categorical.

    Finally, in the future, when showing Stata output, please wrap it in code delimiters to enhance readability. If you are not familiar with code delimiters, read FAQ #12 for instructions.

    Comment

    Working...
    X