红色字体是待估系数,其中i不等于j。
我写的代码如下,d就是d(t-1),d_是d(t):
Dij,2008是2008年的Dij,Dij,2005是2005年的Dij。
replace Y=0 if Y==.|X2005==.|X2008==.
replace X2005=0 if Y==.|X2005==.|X2008==.
replace X2008=0 if Y==.|X2005==.|X2008==.
program define nlabc
if "`1'" == "?" {
global S_1 "alpha beta"
global alpha = 0.8
global beta =-0.2
exit
}
mkmat X2005, mat(I05)
mkmat X2008, mat(I08)
forvalue i = 1/200{
gen expd`i'=exp(d`i'*$beta)
}
mkmat expd1-expd200, mat(D05)
forvalue i = 1/200{
gen expd_`i'=exp(d_`i'*$beta)
}
mkmat expd_1-expd_200, mat(D08)
mat T=J(200,200,1)-I(200)
mat WD05=hadamard(D05,T)
mat WD08=hadamard(D08,T)
mat V=J(200,1,1)
mat A = I05'*WD05*V
mat B = I08'*WD08*V
replace`1' = $alpha*ln(el(B,1,1)/el(A,1,1))
end
nl abc Y if Y!=.
程序运行报错信息为:
(obs = 287)
Iteration 0:error #110 occurred in program nlabc
真的谢谢大家了!以上面的方程为准。不知道下面的怎么删除。