原来是自己大意了:L, y11(i,j)=L1(1,1)*y1(i,j)+L1(2,1)*y2(i,j);应该为 y11(i,j)=L1(1,1)*y1(i,j)+L1(1,2)*y2(i,j);改后计算结果就很接近了
独立随机变量转换为相关随机变量的问题。
4 次查看(过去 30 天)
显示 更早的评论
我想实现的目的是将两相关独立标准正态随机变量转换为给定相关系数的相关正态随机变量。将给定的相关系数矩阵进行乔里斯基分解可获取其下三角矩阵,然后将下三角矩阵乘以两独立标准正态随机变量所组成的矩阵可获取对应的相关随机变量。但是我用matalab计算生成的两列相关变量的相关系数(r(i)=min(min(corrcoef(y11(:,i),y22(:,i))))),发现与原给定的相关系数不一致(给定的相关系数是-0.4179,检验出的相关系数是-0.72左右),不知道问题出在哪,请做过相关计算的高手指点!
程序:
clear;clc;
y1 = load('jfric_normal.txt');
y2 = load('coh_normal.txt');
[m,n]=size(y1);
rhoX1=[1,-0.4179;-0.4179,1];
L=chol(rhoX1);
L1=L';
for j=1:n
for i=1:m
y11(i,j)=L1(1,1)*y1(i,j)+L1(2,1)*y2(i,j);
y22(i,j)=L1(2,1)*y1(i,j)+L1(2,2)*y2(i,j);
end
end
%%检验生成相关变量的相关系数
for i=1:n
r(i)=min(min(corrcoef(y11(:,i),y22(:,i))));
end
0 个评论
采纳的回答
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!