Announcement

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

  • Non-parametric regression, convergence not achieved

    Dear Stata List members,
    I've a highly left-skewed continuous outcome variable and am trying to do a non-parametric regression using the 'local linear regression' method in Stata. However, I get an error message that "convergence not achieved". Would greatly appreciate it if anyone could shed some light on why this error happened and how to fix it. Thank you very much. Is there any other statistical method that might be suitable in this case? Below is some relevant information:

    Outcome: hoos_symptoms_score_1yr,
    Exposure: frail (binary variable),
    N=308.

    Stata code:
    npregress kernel hoos_symptoms_score_1yr i.frail if hip==1, nolog reps(200) seed(12)

    (Note that in the Stata 'results' viewer, "E(Kernel obs)" which is part of the typical Stata output, was not shown...any clue why?).

    Thanks.

    Sincerely
    Musarrat

  • #2
    I would look into the distribution of "frail" how many categories you have? and is there enough data for each category in Frail?
    for instance, what do you get if you do
    Code:
    tabstat hoos_symptons_score_1y if hip==1, by(frail) stats( n mean)

    Comment


    • #3
      Thank you very much, Mr. Rios. 'frail' is binary: frail & non-frail. There are only 29 in the former and 279 in the latter group; means are almost the same in both groups (both with high SDs). Would appreciate your thoughts on the problem I'm having with convergence. Thank you very much. Here is the summary stat:

      Code:
      Summary for variables:    hoos_symptoms_score_1yr
      by categories of:    frail 
      
      frail |         N    mean        sd    min    max
                  
      Non-Frail |       279    89.37276   11.6244    35    100
      Frail |        29    89.31034   13.7402    50    100
                  
      Total |       308    89.36688  11.81446    35    100

      Comment


      • #4
        I dont see any reason wy it would fail.
        However, since you have only one dependent variable, which is a binary variable, I think there will be minimum added value from trying to use a nonparametric regression (npregress).
        In any case, can you post some of the data? I would need to see if i can replicate this error, to be of any help
        Fernando

        Comment


        • #5
          Thanks very much, Mr. Rios! I really appreciate your kindness. After making some arbitrary attempts, I noticed that the convergence issues didn't appear if I added more independent vars/ covariates. I'm a bit surprised why addition of more vars solved the problem... But when I added an interaction term ('frail' with 'previous_hip_knee'), 'npregress' didn't run, showing the below error message, any clues? The output is copied below

          Thanks!
          Sincerely
          MN

          Code:
          . npregress kernel hoos_symptoms_score_1yr frail##previous_hip_knee age i.(gender white back_pain ed_level) xrlson_score an
          > xiety_t depression_t ///
          > if hip==1, reps(200) seed(12) predict(hoos1*, replace)
          (running npregress on estimation sample)
          interactions are unnecessary
              You are estimating an arbitrary function of the regressors. Interactions are accounted for implicitly.
          an error occurred when bootstrap executed npregress
          r(198);

          Comment


          • #6
            Hi Musarrat
            So npregress is a nonparametric estimator. That means that it assumes that the functional form is nonlinear.
            Using an interaction, like what you suggest, would be like trying to impose a redundant nonlinearity.

            This means that once "frail" is included in the specification, npregress kernel will try to fit the "best" model (based on the predictive power) based on linear and nonlinear combinations of your explanatory variables. (it actually uses a local linear predictive mean).
            Bottom line, do not interact anything. npregress will "do it" for you.
            Best
            Fernando

            Comment


            • #7
              Thank you so much for the clarification, Mr. Rios! I greatly appreciate it!
              Sincerely
              MN

              Comment

              Working...
              X