📄 measstatdepend.m
字号:
function [I2XY,I2MaxXY] = MeasStatDepend(X,Y)
% Measure Statistical Dependence 统计依赖测量
% 两个时间序列间统计依赖性测量
% 参考文献:时间序列间统计依赖性测量的一种改进方法(王海燕 李 文① 陈文彦)
if length(X)~=length(Y)
error('两个向量长度必须相等!');
end;
Z(1,:) = X;
Z(2,:) = Y;
N = length(X);
delta = (mean(X)+mean(Y))/10;
w=N*(N-1);
C2XY = 0;
C2X = 0;
C2Y = 0;
K2XY = 0;
HX = 0;
HY = 0;
HK = 0;
for i = 1:N
for j = 1:N
if i~=j
d1 = Z(:,i);
d2 = Z(:,j);
C2XY = C2XY + heaviside(delta-distance1(d1,d2));
d1 = X(:,i);
d2 = X(:,j);
HX = heaviside(delta-distance1(d1,d2));
C2X = C2X + HX;
d1 = Y(:,i);
d2 = Y(:,j);
HY = heaviside(delta-distance1(d1,d2));
C2Y = C2Y + HY;
K2XY = K2XY + (HX*HY);
end;
for k = 1:N
if i~=k
d1 = Y(:,i);
d2 = Y(:,k);
HK = heaviside(delta-distance1(d1,d2));
K2XY = K2XY + (HX*HK);
end;
end;
end;
end;
C2XY = C2XY/w;
C2X = C2X/w;
C2Y = C2Y/w;
K2XY = K2XY/(N*(N-1)^2);
I2XY = LOG2(C2XY/(C2X*C2Y)+2*(1-K2XY/(C2X*C2Y)));
I2MaxXY = min([log2(1/C2X) log2(1/C2Y)]);
function result = heaviside(arg1)
% Hevaside函数
if arg1 < 0
result = 0;
else
result = 1;
end;
function dist = distance1(X,Y)
% 欧拉距离计算
if length(X)~=length(Y)
error('两个向量长度必须相等!');
end;
dist = sqrt(sum((X-Y).^2));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -