多语言展示
当前在线:1667今日阅读:39今日分享:10

MATLAB分析数据相关性实例

我们收集到的数据类型(或者变量)之间存在相关性,本经验介绍用MATLAB工具进行分析。
工具/原料

MATLAB

方法/步骤
2

分析思路      我们可以用由观测数据构造的直方图来近似概率密度函数,从而从数据集中估计Cij。我们首先将(di,dj)平面分成许多小格子,用索引s编号。Ns表示bin中的数据对数目。      通过统计在(di,dj)平面的小块中的数据,将数据的散点图转换为对协方差的估计。

3

相关指数定义      当数据表现出某种程度的相关性时,协方差是非零的,但其实际数值取决于数据的整体范围。 通过按方差乘积的平方根缩放,可以将范围归一化为1。

4

于是,已知数据集D,可以通过以下MATLAB命令获得其协方差矩阵C和相关系数矩阵R:C=cov(D); % covarianceR=corrcoef(D); % correlation coefficient

5

实例1:分析某岩石中化学成份含量的相关度(1)注意使用单元格字符串来创建变量名称数组name = { 'SiO2', 'TiO2', 'Al203', 'FeO', 'MgO', 'CaO', 'Na2O', 'K2O' };(2)获取矩阵大小Ns = size(D);N = Ns(1);M = Ns(2);(3)计算相关dbar = mean(D); % 均值C = cov(D); % 协方差sigma = diag(D).^0.5; % stddevR = corrcoef(D); % 相关指数

6

结果分析   可以从下图看到,如SiO2和MgO之间,存在强烈相关。

7

实例2:分析某河流的流量与时间的关系     河流流量与时间序列的相关程序,也可以通过联合概率密度函数来描述。 如果我们将河流在时间ti的流量表示为di,将河流在时间tj的流量表示为dj,那么我们可以说联合概率密度函数p(di,dj)。当时间差t=ti-tj很小时,我们期望di和dj将具有强正相关性。当时间差很大时,我们预计相关性会更弱。下面的散点图,表示了时间间隔为1天和30天的相关程度。

注意事项

改变样本的范围,相关度可能会变化,所以分析时要综合权衡。

推荐信息