[R] Discrete choice model maximum likelihood estimation
Rui Barradas
ruipbarradas at sapo.pt
Mon May 14 17:58:07 CEST 2012
Once again, sorry.
I had a different llfn in my R session and it messed with yours.
llfn <- function(param, a, tt) {
llfn <- sum((a==1)*lL1+(a==2)*lL2+(a==3)*lL3) # sum of logs, it's a
log-likelihood.
return(-llfn)
}
Rui Barradas
infinitehorizon wrote
>
> Hello again,
>
> You are absolutely right about probabilities.. Thanks for reminding me
> about that.
>
> I did exactly how you said but in the end I receive the error : "objective
> function in optim evaluates to length 12 not 1".
> I checked how llfn give a vector instead of scalar, but couldn't figure
> it out.
>
> Can you please tell me how did you obtain those estimates?
> Thanks again,
>
> Best,
>
> Marc
>
>
> Rui Barradas wrote
>>
>> Hello, again.
>>
>> Bug report:
>> 1. Your densities can return negative values, 1 - exp(...) < 0.
>> Shouldn't those be 1 PLUS exp()?
>>
>> P3 <- function(bx,b3,b,tt) {
>> P <- exp(bx*x+b3+b*(tt == 1))/(1+exp(bx*x+b3+b*(tt == 1)))
>> return(P)
>> }
>>
>> And the same for P2 and P1?
>>
>> 2. Include 'a' and 'tt' as llfn parameters and call like the following.
>>
>> llfn <- function(param, a, tt) {
>>
>> [... etc ...]
>> return(-llfn)
>> }
>>
>> start.par <- rep(0, 5)
>> est <- optim(start.par, llfn, gr=NULL, a=a, tt=tt)
>> est
>> $par
>> [1] 4.1776294 -0.9952026 -0.7667640 -0.1933693 0.7325221
>>
>> $value
>> [1] 0
>>
>> $counts
>> function gradient
>> 44 NA
>>
>> $convergence
>> [1] 0
>>
>> $message
>> NULL
>>
>>
>> Note the optimum value of zero, est$value == 0
>>
>> Rui Barradas
>>
>> infinitehorizon wrote
>>>
>>> By the way, in my last post I forgot to return negative of llfn, hence
>>> the llfn will be as follows:
>>>
>>> llfn <- function(param) {
>>>
>>> bx <- param[1]
>>> b1 <- param[2]
>>> b2 <- param[3]
>>> b3 <- param[4]
>>> b <- param[5]
>>>
>>> lL1 <- log(L1(bx,b1,b2,b,tt))
>>> lL2 <- log(L2(bx,b1,b2,b3,b,tt))
>>> lL3 <- log(L3(bx,b1,b2,b3,b,tt))
>>>
>>> llfn <- (a==1)*lL1+(a==2)*lL2+(a==3)*lL3
>>> return(-llfn)
>>> }
>>>
>>> However, it does not fix the problem, I still receive the same error..
>>>
>>
>
--
View this message in context: http://r.789695.n4.nabble.com/Discrete-choice-model-maximum-likelihood-estimation-tp4629877p4629954.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list