基于Matlab计算自变量的偏相关系数随时间的变化趋势并绘制置信区间


原理说明

概念:偏相关分析,用于分析当两个变量都与第三个变量相关时,将第三个变量的影响剔除,只分析另外两个变量之间的相关程度。这里的第三个可以是多个变量。
偏相关分析(Partial correlation analysis),简单地说,是在消除其他变量C影响的条件下,计算的A、B两变量之间的相关系数。

在这里插入图片描述
Matlab中,计算偏相关系数所用的函数是partialcorr,使用方法如下:
[R,P] = partialcorr(X,Y,Z); %在控制变量Z的影响下,计算变量X、Y的偏相关系数
读取清理数据:从 Excel 文件中读取数据,并移除包含 NaN 或负数的行。
计算偏相关系数:对于 2007 到 2020 年的每个月,计算特定列的数据与另一列的偏相关系数,过滤掉了 Y 值小于 0 的行。如果找不到符合条件的行,相关系数和 P 值设为 NaN。最后,去除了相关系数数组中的 NaN 值,并将相关系数的绝对值乘以 100。
置信区间绘图:绘制调整趋势后的相关系数 (corr-detrend(corr)) 的线图,并添加置信区间。之后,使用 interp1 进行插值以获得更平滑的曲线,并用 fill 函数添加置信区间的填充色。
设置图例、坐标轴标签和标尺,并对图表进行美化。


代码展示

这段MATLAB脚本的目的是对特定数据集进行预处理和分析,具体是读取数据,移除包含NaN值或负数的行,然后计算特定年份和月份下某两个变量的偏相关性,并对偏相关系数进行可视化处理。以下是代码的详细解释和注释:

clear all;
clc;
close all;

% 导入数据
data = importdata('路径');

% 找出含有NaN值的行
nanRows = any(isnan(data), 2); 
% 找出含有小于0值的行
negativeRows = any(data < 0, 2); 
% 合并两个条件,确定需要删除的行
rowsToRemove = nanRows | negativeRows;
% 删除这些行
data = data(~rowsToRemove, :);

% 初始化相关系数和P值数组
corr = [];
pval = [];

% 遍历20072020年,每年的12个月
for year = 2007:2020
    for mon = 1:12
        % 找出对应年份和月份,且第六列数据大于0的行
        onesRows = find(data(:,1) == year & data(:,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值