cyfile / Matlab-miscellanies

各种Matlab代码
0 stars 0 forks source link

variance and correlation #7

Open 213cy opened 8 years ago

213cy commented 8 years ago

untitled

213cy commented 8 years ago
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
n=3;
% 各取三个观察值,各取几个都一样,可以认为对于连续随机变量来说都是无限维的,
% 取三个观察值容易画图.
a=rand(n,1);
b=rand(n,1);
aa=a-mean(a);
bb=b-mean(b);
%%
subplot(121)
hold on
h=1:3;
x=[0,1];
h(1)=line(x,x,x,'color','k','linewidth',5);
y=[a';b'];
z=-[aa';bb'];
u=[0;0];
v=[1;1];
h(2)=quiver3(u,u,u,y(:,1),y(:,2),y(:,3),0,'color','b');
h(3)=quiver3(y(:,1),y(:,2),y(:,3),z(:,1),z(:,2),z(:,3),0,'color','r');
view([104,37])

subplot(122)
copyobj(h,gca);
axis equal
view([90+45,asind(1/sqrt(3))])
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 随机变量的 方差 和 相关系数(统计)
% 这时认为 a 和 b 分别是两个随机变量的三个观察值组成的样本序列,
% 用样本统计量描述总体的统计量
% 随机变量的 方差 和 相关系数都是以 (1 1 1 ...)方向的直线 作为观察直线 进行描述变量之间的关系
% 所以方差是样本序列去均值后的 内积均值 aa'*aa/n
% 相关系数是样本序列去均值后的 夹角余弦 aa'*aa/norm(aa)/norm(aa)

% ---------方差-----------
%%%var(X)%%%  variance 方差
var(a,1),aa'*aa/n %(biased)
var(b,1),bb'*bb/n %(biased)
% ---------协方差-----------
%%%cov(x)%%% Covariance matrix 协方差矩阵
cov(a,1),cov(b,1)
cov(a,b,1) %(biased)
cov([a,b],1)
[aa,bb]'*[aa,bb]/n
% ---------自相关系数(没这种说法)----------
corr(a,a)
corr(a)
corrcoef(a)
aa'*aa/norm(aa)/norm(aa)
1
% ---------相关系数(实际上默认是互相关系数)----------
%%%corrcoef(x,y)%%% correlation coefficients(matrix) 相关系数(矩阵)
corrcoef(a),corrcoef(b)
corrcoef(a,b)
corrcoef([a,b])
([aa,bb]'*[aa,bb])./([norm(aa);norm(bb)]*[norm(aa),norm(bb)])
% %%%%%%%%%
% 使用Statistics Toolbox函数 corr,他和matlab 基础工具箱的corrcoef是一样的
%%%corr(X,Y)%%% linear correlation coefficient 线性相关系数
corr(a,b),aa'*bb/norm(aa)/norm(bb)
corr([a,b]),
Caa=aa/norm(aa);Cbb=bb/norm(bb);[Caa,Cbb]'*[Caa,Cbb]
% %
% corr 可以只计算两个变量的相关系数,而不是像corrcoef给出相关矩阵
corr(a),corr(b)
corr([a,b])
[corr(a),corr(a,b);corr(b,a),corr(b)]
% %%%%%%%%%
% ---------相关系数矩阵 和 协方差矩阵 的关系----------
corrcov(cov(a,b))
corrcov(cov(a,b,1))
mat1=cov(a,b);vec1=sqrt(diag(mat1));mat1./(vec1*vec1')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 随机过程(信号处理)(一下的出现的序列二字都可以换成函数)
% 随机过程任意时刻的取值都是随机变量
% a b 也可以认为是来自一个随机过程的两个时刻的随机变量的三个观察值
% a b 也可以认为是分别来自两个随机过程的两个时刻的随机变量的三个观察值
% 但以下仅认为
% a b 可以认为分别是两个随机过程在连续三个时间点的取值,
% 此时 a b 可以认为是序列也可以认为是函数
% 随机过程的 协方差 和 相关 都是要先确定一系列观察点,得到相应的随机变量,对这些变量的关系的描述
% 他们的取值随观察时刻的不同而不同,所以会形成函数
%
%%%dot(A,B)%%% dot product 内积
% 随机过程的 协方差序列 仍然是以 (1 1 1 ...)方向的直线 作为观察直线 
% 所以是序列去均值后的 内积均值dot(aa,aa),aa'*aa/n
% 随机过程的 (自,互)相关序列 则是以原点(0 0 0 ...) 作为观察点 
% 所以直接是序列的 内积均值 dot(a,a),a'*a/n

% ---------期望序列-----------
% 随机过程各个时刻随机变量的期望组成的序列
% 平稳随机过程该序列衡为常数
% ---------方差序列-----------
% 随机过程各个时刻随机变量的方差组成的序列
% 平稳随机过程该序列衡为常数
% ---------相关序列(实际上没有)-----------
% 纯1

% ---------自协方差序列-----------
%%%xcov(x)%%%   autocovariance sequence 自协方差序列
xcov(a,0,'biased'), aa'*aa/n
xcov(a,0),aa'*aa
xcov(a,0,'coeff') %% 归一化后的自协方差在当前的取值为1
% 对于平稳随机过程A xcov(A) 仅为时间差的函数
% 如果A 还满足各态遍历性 则 可以用一次的观察值序列计算 xcov(A)=xcov(a)
% ---------互协方差序列-----------
%%%xcov(x,y)%%%  cross-covariance sequence 互协方差序列
%%% 描述 两个随机过程 之间 随时间差 变化的性质
xcov(a,b,0,'biased'),xcov(a,b,0)/n,aa'*bb/n
xcov(a,b,0),aa'*bb
% ---------自相关序列-----------
%%%xcorr(x)%%%   autocorrelation sequence 自相关序列
xcorr(a,0,'biased'),a'*a/n
xcorr(a,0),a'*a
xcorr(a,0,'coeff') % 归一化后的自相关序列在当前的取值为1
% 对于平稳随机过程A xcorr(A) 仅为时间差的函数
% 如果A 还满足各态遍历性 则 可以用一次的观察值序列计算 xcorr(A)=xcorr(a)
% ---------互相关序列-----------
%%%xcorr(x,y)%%% cross-correlation sequence 互相关序列(描述时间序列)
xcorr(a,b,0,'biased'),xcorr(a,b,0,'unbiased'),a'*b/n
xcorr(a,b,0),a'*b

% ---------互相关 与 互协方差 之差-----------
xcorr(a,b,0,'biased')-xcov(a,b,0,'biased'),mean(a)*mean(b)

%%%[a,b]'*[a,b]%%%
[a,b]'*[a,b]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 函数的相关系数(数学)
Ca=a/norm(a);Cb=b/norm(b);
Ca'*Cb
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 平稳随机过程即宽平稳随机过程
%
% 一个随机变量 有方差
% 两个随机变量 有协方差 相关系数
% 多个随机变量 有协方差矩阵 相关系数矩阵
%
% 一个随机过程 有期望函数 方差函数 自协方差函数 自相关函数
% 多个随机过程有 互协方差函数 互相关函数