楼主: vivianssecret
12187 10

请教一个用matlab rolling window做时间序列数据的autocorrelation问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

79%

还不是VIP/贵宾

-

威望
0
论坛币
240 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
23755 点
帖子
30
精华
0
在线时间
188 小时
注册时间
2009-10-10
最后登录
2023-1-25

楼主
vivianssecret 发表于 2010-3-22 03:45:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请教大家一个问题:

我这里有从1994年到2009年的monthly return的时间序列数据,一共大约182个数据,我想用这些数据做出来 60-month rolling-window autocorrelations of returns,如何用matlab做出这样的rolling window of autocorrelation来看autocorrelation随时间变化的趋势呢?具体如何操作呢?如果能做出这样autocorrelation随时间波动的曲线图就更好了!请牛牛多多指教!谢谢先!
二维码

扫码加我 拉你入群

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

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

关键词:correlation autocorr relation rolling MATLAB 数据 MATLAB 序列 Window rolling

沙发
vivianssecret 发表于 2010-3-23 06:41:48
先自己顶一下,继续等待指教!

藤椅
vivianssecret 发表于 2010-3-24 07:06:07
悬赏80论坛币等答案:为表示感谢,我会转让80论坛币给可以指导我正确解答此问题的热心同学!

板凳
epoh 发表于 2010-3-25 10:34:53
建议你可以先参考:
1) matlab autocorr.m
2) Modelling Financial Time Series with S-PLUS
   chap 9 Rolling Analysis of Time Series
   Rolling unit root tests

只是你是作autocorrelation
碰上如matlab范例,这种情形
lag=0    1
lag=1   -0.6487
lag=2    0.3001
lag=3    0.0229

是不是都取lag=1的值,做出rolling-window.

报纸
vivianssecret 发表于 2010-4-7 07:53:00
是的,都取lag=1的值计算,还请详细指教!

地板
qsoft_cn 发表于 2010-4-7 09:40:13
function r=rollingautocorr(input)
% input=rand(100,1);
%numlags,滞后期,rollingwidow,滚动窗口长度
numLags=1;
rollingwindow=60;

for i=1:length(input)-rollingwindow
    y=input(i:i+60);
    nFFT = 2^(nextpow2(length(y))+1);
    F = fft(y-mean(y),nFFT);
    F = F.*conj(F);
    acf = ifft(F);
    acf = acf(1:(numLags+1)); % Retain non-negative lags
    acf = acf./acf(1); % Normalize
    acf = real(acf);
    acf=acf(2);
    r(i)=acf;
end
plot(r)

7
qsoft_cn 发表于 2010-4-7 09:40:39
中间有部分完全抄袭的autocorr.m

8
epoh 发表于 2010-4-7 10:55:24
load garchdata
dem2gbp = price2ret(DEM2GBP);
vi=dem2gbp(1:182,1);
我先任取182个数据充当,
先看一下是不是你要的图形.

60−month rolling−window autocorrelations of returns.pdf (3.94 KB)

9
gssdzc 在职认证  发表于 2010-4-7 20:35:29
呵呵。顶起来

10
qsoft_cn 发表于 2010-4-8 21:51:34
把这个写成函数文件的形式
rollingautocorr.m
///////////////////////////////////////以下是rollingautocorr.m的内容////////////////////////////////
function r=rollingautocorr(input,numLags,rollingwindow)
% input=rand(100,1); %这个是测试用的,我自己没有input的数据,就用随机数造了一个序列
%numlags,滞后期,rollingwidow,滚动窗口长度
%numLags=1;
%rollingwindow=60;

for i=1:length(input)-rollingwindow
    y=input(i:i+60);
    nFFT = 2^(nextpow2(length(y))+1);
    F = fft(y-mean(y),nFFT);
    F = F.*conj(F);
    acf = ifft(F);
    acf = acf(1:(numLags+1)); % Retain non-negative lags
    acf = acf./acf(1); % Normalize
    acf = real(acf);
    acf=acf(2);
    r(i)=acf;
end
plot(r)

//////////////////////////////////////////////////////////////////////////////////////////////

调用的时候在command windows 里面写 rollingautocorr(y,1,60),这几个参数都可以改,y你要预先设定

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-7 11:51