Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
st: ml - could not calculate numerical derivatives missing values encountered
From
Alan Marshall <[email protected]>
To
"[email protected]" <[email protected]>
Subject
st: ml - could not calculate numerical derivatives missing values encountered
Date
Thu, 15 Dec 2011 13:16:29 +0000
Dear Statalist,
I having problems fitting a model to predict rates of specific types of disability for single years of age (0,1,2,......88) using maximum likelihood estimation in stata. I would be very grateful for any advice that can be offered.
I am using a technique from the demography literature, known as relational models, to estimate age specific rates of disability (which are unreliable due to small samples) using age specific rates of limiting long term illness (which are reliable). The model I am fitting involves two parameters α and β that adjust the level and shape of the curve of age specific limiting long term illness rates to represent the curve of age specific disability rates.
I have fitted the model using weighted least squares regession but have been advised that a maximum likelihood model is more appropriate.
I have worked out the log-likelihood function as below. Dx is the number of people with a disability at age x, Nx is the total population at age x and Lx is the logit of the rate of limiting long term illness at age x. I’m fairly confident in this function because if I experiment in Excel with different values of α and β the log likelihood function does appear to be maximised by values of α and β that are very close to the Weighted Least Squares solutions.
Log Likelihood=(2*α*Dx) + (β*Yx*Dx )- (Nx*ln(1+exp(2*(α+βLx)))
(Note this likelihood is summed over all ages x)
I am fitting this model in stata as below:
*line 1
program define Brass
*line 2
args lnf a b
*line 3
Quietly replace `lnf'=2*`a'*${dx_Dis}1+`b'*${Yxl}1*${dx_Dis}1-(${Nx_Dis}1*ln(1+(exp(2*(`a'+`b'*${Yxl}1)))))
*line 4
end
*Line 5
ml model lf Brass (D_OBS_RT=Yxl Nx_Dis dx_Dis) (D_OBS_RT=Yxl Nx_Dis dx_Dis)
*Line 6
ml maximize
Line 3 defines the log likelihood function to be maximised.
Yxl are the log odds of the LLTI rates
dx_Dis is the age specific number of people with a disability, Nx_Dis is the age-specific number of people at each age
Line 5 - I have included two brackets which as I need to estimate two parameters α and β. In each case I think I am predicting the rate of disability (D_OBS_RT) given three variables of dx_Dis (age specific number of people with a disability), Yxl (log odds of limiting long term illness) and Nx_Dis (age specific total population).
The error that is returned from this is:
"could not calculate numerical derivatives
missing values encountered"
Any advice is gratefully received.
Best wishes
Alan Marshall
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/