Calcite | Level 5

## find roots in SAS/IMl

Hi

I have a function of two parameters alpha and beta, I found the MLEs for these two parameters. I have then to create a function of beta only which I need to solve

then use the result to find alpha.  I used bisection method to solve for beta. My problem is that the answer doesn't seem to be alright it always choose the upper limit i.e. every time I change the boundary

I get different solution (  if the interval (a=0.75, b=1.5) then the answer is 1.499999 and if  (a=0.75, b=1) then the answer is 0.99999 and so on. The MLE for the same problem using the same data set has been computed to be 0.9900573, and the true value=1 ). I can't plot the function using the lineplot because I have an old version of SAS, but I picked the (a,b) interval to be around the MLE which is known as I said from previous code. I highly appreciate any advice or suggestions.

my code is attached below

thank you

1 ACCEPTED SOLUTION

Accepted Solutions
SAS Super FREQ

## Re: find roots in SAS/IMl

In your program, the target is 8. The function you are trying to find the root of is Func(B) = W(B) - target.  This function does not have a root on the interval.  Plot it and you will see that  Func(B) < 0 for all B > 0.

Func(B) does have a root near -2.5.

Maybe  Func is implemented incorrectly, or you have specified the target incorrectly.

2 REPLIES 2
SAS Super FREQ

## Re: find roots in SAS/IMl

In your program, the target is 8. The function you are trying to find the root of is Func(B) = W(B) - target.  This function does not have a root on the interval.  Plot it and you will see that  Func(B) < 0 for all B > 0.

Func(B) does have a root near -2.5.

Maybe  Func is implemented incorrectly, or you have specified the target incorrectly.

Calcite | Level 5

## Re: find roots in SAS/IMl

Thank you so much Rick

you were absolutely correct the target was incorrectly specified.

From The DO Loop