turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Find a Community

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

04-24-2013 07:14 AM

Hi,

I am working on the Klein-Spady semiparametric estimator.

I am trying to use call NLPNRA to generate a maximum likelihood estimate. IML gives an ERROR message saying that I am taking log of zero. But I checked the arguments in all the log commands, none of them is zero.

Below is the program and the error message. Thanks for your help.

ERROR: (execution) Invalid argument to function.

operation : LOG at line 296 column 45

operands : _TEM1008

_TEM1008 1 row 1 col (numeric)

0

statement : ASSIGN at line 296 column 1

traceback : module LOGLIK at line 296 column 1

ERROR: NEWRAP Optimization cannot be completed.

ERROR: The function value of the objective function cannot be computed at the starting point.

Accepted Solutions

Solution

a week ago

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

04-24-2013 04:42 PM

I don't understand what you are doing well enough to diagnose what is going wrong, but from the error messages I assume that the LINK variable is getting out of the open interval (0,1). If you put in the line

link = choose( link<=0 | link>=1, ., link);

then the algorithm converge. Unless there is a theoretical reason why a quantity cannot be less than zero, it's a good programming practice to protect against taking log(negative_value).

All Replies

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

04-24-2013 09:52 AM

First, look at the following article: Maximum likelihood estimation in SAS/IML - The DO Loop

What are the meanings of your three parameters (for example, location, scale, or shape parameters). Are any of your parameters constrained? If so, see Step 2 in the article.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

04-24-2013 12:43 PM

thank you,

it's just a binary model, the parameters are not constraint and the initial values come from the proc logistic.

the module computes the log likelihood so i don't understand the problem

Solution

a week ago

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

04-24-2013 04:42 PM

I don't understand what you are doing well enough to diagnose what is going wrong, but from the error messages I assume that the LINK variable is getting out of the open interval (0,1). If you put in the line

link = choose( link<=0 | link>=1, ., link);

then the algorithm converge. Unless there is a theoretical reason why a quantity cannot be less than zero, it's a good programming practice to protect against taking log(negative_value).

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

04-24-2013 04:58 PM

thanks for this advice, it's work fine