24小时热门版块排行榜    

查看: 630  |  回复: 0

海角七号

金虫 (小有名气)

博士

[求助] 【请教】延时相关分析问题

各位虫友,大家好!
      最近想做两个变量的延时相关分析,请人编了个matlab程序代码,但是感觉结果有些问题,比如,在计算延迟0-12个月的径流与降水量二者的相关系数时,延迟0个月(也就是两个变量同期,不延迟),按理论,同期的径流和降水量的相关系数应该最高,可0个月的延迟相关系数只有0.38,我怀疑是程序的算法有些问题,请高手帮我看看,这个程序到底问题出在哪里,不胜感激!


附程序代码和数据如下

close all;
clear all;
clc;
fid1=fopen('G:\科研工具\Spearman互相关系数\data.txt','r');
data=fscanf(fid1,'%d %f %d %f',[4 inf]);
data=data';
fclose(fid1);
N=length(data(:,2));
tongji=zeros(13,1);
x=zeros(12,1);
y=zeros(12,1);
indx=0;
for i=1:12:N
    X=data(i:i+11,2);
    Y=data(i:i+11,4);
  x=x+X;
  y=y+Y;
indx=indx+1;
end
x=x/indx;
y=y/indx;
x=x-mean(x);
y=y-mean(y);
[c,LAGS]=xcorr(x,y,'coeff');
tongji=tongji+c(11:end);
m=0:12;
plot(m,c(11:end),'-bo');
hold on;
save tongji.mat tongji;

fuzhi1=ones(13,1)*0.01;
fuzhi2=ones(13,1)*0.05;
plot(m,fuzhi1,'--r');
hold on;
plot(m,fuzhi2,'-k');
hold on;
set(gca,'xtick',0:1:12);  
xlabel('滞后时间/月');
ylabel('相关系数');
axis([0,12,-1,1]);
title('spearman相关系数');
legend('r0.01临界值','r0.05临界值');
A=[m',tongji,fuzhi1,fuzhi2];
fid2=fopen('G:\科研工具\Spearman互相关系数\data_deal.txt','w');
fprintf(fid2,'%d  %f  %f  %f \r\n',A');
fclose(fid2);

原数据网盘下载链接:http://pan.baidu.com/s/1pKFtj7d
其中,第一列和第三列是年月时间,第二列是径流数据,第四列是降水量数据。
回复此楼

» 猜你喜欢

人还要要有梦想的,万一实现了呢?
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 海角七号 的主题更新
信息提示
请填处理意见