我正在尝试最大化自回归过程(AR(1))的对数似然函数
ERS(t) = 1+ 0.3*ERS(t-1) + epsilon(t)
为了估计参数。最大化对数似然涉及找到导数,因此我想到了使用 fminsearch。我在实现中改变了对数可能性的符号。实际的对数似然如下所示。
其中参数集
theta = {rho1 = c = 1, rho2 = 0.3 and rho3 = variance of the noise sigma2_epsilon}
fminsearch
返回
0.808518411146547
1.00012215100964
1.13507247075777
这是不正确的。另一方面,我检查了最小二乘,最小二乘估计接近真实参数。在实现中,我忽略了对数似然的常数项。有人可以帮助纠正代码以及我哪里出错了吗?谢谢你。编码
clc
clear all
global ERS
var_eps = 1;
epsilon = sqrt(var_eps)*randn(5000,1); % Gaussian signal exciting the AR model
theta0 = ones(3,1);
ERS(1) = 0.0;
for t= 2:5000
ERS(t)= 1+ 0.3*ERS(t-1) + epsilon(t-1); %AR(1) model
end
[theta,opt] = fminsearch(@(theta) ll_AR1(theta,ERS),theta0);
function L2 = ll_AR1(theta,Y)
rho0 = theta(1);
rho1 = theta(2);
sigma2_epsilon = theta(3);
T= size(Y,1);
%changed sign
L1 = 0.5*(sigma2_epsilon)^(-1)*(Y(2:end) - rho0 - rho1*(Y(1:end-1))).^2;
L2 = 0.5*log(sigma2_epsilon/(1-rho1.^2)) +0.5*(sigma2_epsilon)^(-1)*(1-rho1.^2)*(Y(1)- (rho0/(1-rho1))).^2 + 0.5*(T-1)*log(sigma2_epsilon) + sum(L1) ; % the log-likelihood function
end