Announcement

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

  • 5-parameter logistic regression

    Hi All

    I am working with immunoassays and need to apply a weighted 5-parameter logistic regression model to standard curve fitting (where a particular "dosage" of a target analyte produces a "response"). However, I can't find enough information for me to understand if it can be done in STATA and how to do it.
    The 5-PL model is the best option for curve fitting in immunoassays (to account for a potentially asymmetric sigmoid-shaped curve). The equation is:
    y=d+ ( (a-d) / (1+(x/c)^b)^g ),
    where a,b,c,d,g are the parameters,
    y is the response,
    x is the dosage on log scale


    I tried to use the non-linear least-squares estimation command like this:
    Code:
    nl (od={d=1}+ ({a=1}-{d=1})/((1+(vegf_stc/{c=1})^{b=1})^{g=1})) [aw=n]
    where od is the response variable, vegf_stc is the dosage variable, and n is the weight variable (number of replicates).

    However, it generated an infinite iteration process (I broke the loop at the 1600th iteration).

    Afterwards I tried to limit the iteration process using:
    Code:
    nl (od={d=1}+ ({a=1}-{d=1})/((1+(vegf_stc/{c=1})^{b=1})^{g=1})) [aw=n], delta(0.02)
    And it produced an output after 107 iterations, which was not what would be expected for the 5PL model (no relation to data: graph attached).


    Could someone help?

    Best regards,
    Attached Files

  • #2
    It's hard to say. There isn't anything obviously wrong with your command. There are a few possibilities:

    1. You may have just picked bad starting values and Stata is having trouble finding a good solution from there. If you have some ideas about what the solution should look like, you could try again using starting values in the ballpark of where you expect the results to be. If you don't have any hunches about that, try graphing the data and see if that gives you a sense of it.

    2. It is possible that your data fail to identify the parameters in the 5-parameter logistic model. If that is the case, you will need to try a different model of the data. Have you explored this graphically? Does it look like a 5 parameter logistic model would fit the data reasonably well?

    You don't really describe the output in enough detail for more specific advice. When you broke the execution at 1600 iterations, was each iteration producing the same results as the one before it? Or was Stata still making some semblance of progress? If the iterations were not changing, it would be helpful to rerun the command adding the -iter()- option specifying a number of iterations that gets you a little past the point where the iteration outputs become the same. Stata will then stop there and produce "results". Those results are not valid, but by examining them you may be able to see that there is one particular parameter it is having difficulty estimating because it is showing absurd values. You might be able to glean similar information from your (delta 0.02) run--you say the results were not what you expected, but you don't say in what way. Showing them might enable someone to make more specific comments.

    Comment


    • #3
      Thank you Clyde, very helpful.

      Comment

      Working...
      X