全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
12279 3
2008-06-15
请教
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2008-6-16 15:57:00
下面是我写的一个小程序,希望有用。

function yf=fun(x,lamda)
%Hodrick-Prescott filter
%argin:x: the data need to be filtered, time dimension in the row
%      lamda: define the weight for the trend. default value 1600
%argout: yf: the HP filtered data
%
%by Huabin Wu. Dec 10, 2007
[t,nvar]=size(x);
if t<nvar
    x=x';
end
[t,nvar]=size(x);
if nargin<2
    lamda=1600;
elseif nargin>2
    error('Too many arguments!');
end
if t>4
    d=[lamda -4*lamda 6*lamda+1];
    d=ones(t,1)*d;
    m=diag(d(:,3))+diag(d(1:t-1,2),1)+diag(d(1:t-1,2),-1)...
    +diag(d(1:t-2,1),2)+diag(d(1:t-2,1),-2);
    m(1,1)=1+lamda;       m(1,2)=-2*lamda;
    m(2,1)=-2*lamda;      m(2,2)=5*lamda+1;
    m(t-1,t-1)=5*lamda+1; m(t-1,t)=-2*lamda;
    m(t,t-1)=-2*lamda;    m(t,t)=1+lamda;
    yf=inv(m)*x;
    yf=x-yf;
else
    error('The data is insufficient to be filtered!')
end

[此贴子已经被作者于2008-12-3 21:49:00编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-4 10:54:32
怎么第一句就运行不了啊,呵呵,
Error: Function definitions are not permitted at the prompt or in scripts.
出现这句话,为什么呢?
望大侠指点,谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-21 10:58:08
在Eviews中用hp滤波法
hp滤波主要是滤去周期部分,只留下趋势部分。你打开work file后,选中所要滤波的series,点击procs,拉开菜单再点击
hp filter的选项即可
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群