电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

MATLAB的ARMA时间序列代码

MATLAB的ARMA时间序列代码_第1页
1/2
MATLAB的ARMA时间序列代码_第2页
2/2
function [yhat , se ] = arimapred(y,phi,theta,d,mu,sa2,l)% ARIMAPRED(Y,PHI,THETA,D,MU,SA2,L) Forecast ARIMA process% INPUTS: 输入% y = observed data; n by 1 y 为观测数据:1—n% phi = vector of AR coefficients; p by 1 回归系数向量% theta = vector of MA coefficients; q by 1% d = order of differencing; 1 by 1 integer% mu = mean of d times differenced y process; 1 by 1% sa2 = variance of "shocks”; 1 by 1 and positive% l = forecast lead time; 1 by 1 positive integer% OUTPUTS:% yhat = point forecasts; l by 1% se = prediction standard deviations; 1 by 1[n m ] = size(y);z = y;if d 〉 0 for k = 1:d z = z(2:(n-k+1)) — z(1:(n-k)); endendacvf = armaacvf(phi,theta,n—d+l);V = toeplitz(acvf);V11 = V(1:(n-d),1:(n—d));V21 = V((n-d+1):(n—d+l),1:(n-d));V22 = V((n—d+1):(n—d+l),(n-d+1):(n-d+l));mu1 = mu*ones(n-d,1);mu2 = mu*ones(l,1);[ zhat Vp ] = blip(z,mu1,mu2,V11,V22,V21);if d==0 yhat = zhat; se = sqrt(diag(Vp));else A = tril(ones(l,l)); B = A^d; Vpy = B*Vp*B’; se = sqrt(diag(Vpy)); dy = [ y(n—d+1) ]; if d > 1 yend = y((n-d+1):n); for k = 2:d yend = diff(yend); dy = [ dy ; yend(1) ]; end end yhat = zhat; for k=1:d yhat = cumsum([ dy(d-k+1) ; yhat ]); end yhat = yhat((d+1):(l+d));end

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

MATLAB的ARMA时间序列代码

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部