我是一名经济学学生,试图对劳动力市场模型的参数进行非正统的最大似然估计。
我基本上有两个方程式。一个一阶条件(16)和一个对数似然函数,我希望最大化wrt。 (α,δ,γ)。变量(w,T,n,x,P)是公司观察的一些数据i = 1,...,1470。Eq. 16 - must hold for all observations i=1,2, ...,1470
棘手的是我必须通过(16)计算产品lambda*s_i
的值,假设(alpha,gamma)的某个初始值,然后使用对最大观察值的识别限制i = 1470,那
s_1470 = 0
通过这个eq。 (16)只有1个未知(i = 1469),我可以在R中使用uniroot
命令解决这个问题。之后我可以求解(i = 1468)等等,递归直到(i = 1)
完成此操作后,我希望最大化对数似然函数wrt。 (α,δ,γ)。这里至关重要的是我只能通过为(alpha,gamma)假设一些初始值来解决(16)。
我的问题是我似乎无法使R理解,它应该最大化考虑的可能性函数,(alpha,gamma)通过它对(lambda * s_i)的影响影响似然函数。 )通过(16)计算。
我使用以下代码。我编写了一个函数search_solve
,用于计算(lambda * s_i)&并将它们存储在lambdas
中。 logpdfb
在似然函数中用括号计算术语。
## Likelihoodfunction
loglik<-function(theta,n,x,netwage)
{
delta <- exp(theta[1])
alpha <- exp(theta[2])
gam <- exp(theta[3])
lambdas = matrix(0,nrow(netwage),1)
lambdas <- search_solve(netwage,p)
d <- 1*delta + lambdas * (1-p)
d2 <- exp(-d)
b = logpdfb(x,d2,n)
logl <- colSums(b)
return(-logl)
}
#STARTING VALUE PARAMETERS
start <- matrix(0,3,1);
start[1,1] = -2;
start[2,1] = -5;
start[3,1] = 0.5;
###################################
optim(start,fn=loglik,n=size,x=stayer,netwage=netwage,method="BFGS",hessian = TRUE)
当我使用此代码时,R不会优化wrt。 to(alpha,gamma)和报告的估计值恰好等于起始值。
[,1]
[1,] -1.336792
[2,] -5.000000
[3,] 0.500000
如果考虑到(alpha,gamma)间接影响似然函数,我怎样才能让R理解它应该优化似然函数?
非常感谢任何帮助。 感谢您提前的时间。