楼主: care8030
6661 3

[实际应用] 如何在HP滤波法中选择最优的lambda [推广有奖]

  • 5关注
  • 1粉丝

已卖:1566份资源

讲师

22%

还不是VIP/贵宾

-

威望
1
论坛币
14137 个
通用积分
12.0322
学术水平
4 点
热心指数
5 点
信用等级
3 点
经验
1385 点
帖子
99
精华
0
在线时间
217 小时
注册时间
2005-5-15
最后登录
2025-12-17

楼主
care8030 学生认证  发表于 2017-8-6 15:45:11 |AI写论文
100论坛币
目前在做一个HP滤波分析,教材上对HP滤波中lambda的选择,月度数据通常用14400.但是看一些国外的文献中采用的是129600.想请问如何在月度的时间序列中选择最优的lambda?求程序。谢谢!
clear
data=xlsread('D:\china.xlsx');

lambda = 100:10:100000;
N = length(lambda);
TS = zeros(length(data),N);
CS = TS;
for i = 1:N
    [TS(:,i),CS(:,i)] = hpfilter(data(:,2),lambda(i));
end
lambda_s = (std(diff(CS))./std(diff(TS))).^2;
[lambda_opt,maxi] = max(lambda./lambda_s);
[T,C] = hpfilter(data,lambda(maxi));



这样做下来,lambda_opt=87.0130,问题在哪里?求解答。谢谢!

最佳答案

deem 查看完整内容

lambda_s 是lambda./lambda_s的最大值,不是lambda的最大值,应改为但是不必搞个优化值,follow literature就行,对月度数据取129600
关键词:Lambda HP滤波法 lamb HP滤波 Lam

沙发
deem 学生认证  发表于 2017-8-6 15:45:12
lambda_s 是lambda./lambda_s的最大值,不是lambda的最大值,应改为
  1. clear
  2. data=xlsread('D:\china.xlsx');

  3. lambda = 100:10:100000;
  4. N = length(lambda);
  5. TS = zeros(length(data),N);
  6. CS = TS;
  7. for i = 1:N
  8.     [TS(:,i),CS(:,i)] = hpfilter(data(:,2),lambda(i));
  9. end
  10. lambda_s = (std(diff(CS))./std(diff(TS))).^2;
  11. [lambda_opt,maxi] = max(lambda./lambda_s);
  12. lambda_opt = lambda[maxi]
  13. [T,C] = hpfilter(data,lambda(maxi));
复制代码
但是不必搞个优化值,follow literature就行,对月度数据取129600

藤椅
care8030 学生认证  发表于 2017-8-6 15:51:49
并且,lambda设定的是100——100000之间,为什么得到的是87,不在这个范围。

板凳
deem 学生认证  发表于 2017-8-6 16:07:37
λ=129600

Hodrick and Prescott suggest 1600 as a value for λ for quarterly data. Ravn and Uhlig (2002) state that λ should vary by the fourth power of the frequency observation ratio; thus, λ should equal 6.25 for annual data and 129,600 for monthly data

Ravn, Morten; Uhlig, Harald (2002). "On adjusting the Hodrick–Prescott filter for the frequency of observations". The Review of Economics and Statistics. 84 (2): 37.

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 12:11