【发布时间】:2014-11-17 22:47:44
【问题描述】:
我正在尝试最大化自回归过程 (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
【问题讨论】:
-
你在 DSP 网站上运气更好:dsp.stackexchange.com。
-
@AnonSubmitter85:我已经问过问题stats.stackexchange.com/questions/124462/…
-
您是否尝试定义参数的初始值和限制?
-
看起来你应该能够推导出 L1 和 L2 的导数。我建议找到它,然后最小化它的平方值。这应该会给你一个凸成本函数,告诉你导数在哪里变为零,这将是临界点,并且可能是函数达到最大值的点。
-
(另一个问题,在收到答案后对其进行了大量破坏性编辑,再次回滚)。
标签: matlab function optimization parameters fminsearch