利用Python计算滑动相关

文摘   2024-10-07 12:03   中国香港  

利用Python计算滑动相关

文末附完整代码

  数据:代码随机生成

作者:第八星系 - 石头人

邮箱:2205455617@qq.com


方法介绍

滑动相关性系数(Sliding correlation coefficient)是一种统计分析方法,它有助于分析数据中衡量变量之间的关系,它可以反应两组变量在不同的时间段内相关性的变化,更好了解二者关系的变化。

计算滑动相关性

import numpy as npimport matplotlib.pyplot as pltfrom scipy.stats import pearsonrimport xarray as xarray
# 随机生成两组[0,1)之间的数用于计算滑动相关性x = np.random.random(40)y = np.random.random(40)print(x, y, x.shape, y.shape)
# 设置步长,并计算每段步长内两组数据的相关性# pearsonr函数会返回相关系数和P值两个值t = 13sli_cor = np.zeros([40])p_value = np.zeros([40])for i in range (int(0+(t-1)/2), int(40-(t-1)/2), 1):    sli_cor[i], p_value[i] = pearsonr(x[int(i-(t-1)/2):int(i+(t-1)/2+1)], y[int(i-(t-1)/2):int(i+(t-1)/2+1)])sli_cor[sli_cor==0] = np.nanyear = np.arange(1981, 2021, 1)


绘图

# 绘图plt.plot(year, sli_cor, marker = '.', markersize = 10)plt.xlim(1981, 2020)plt.ylim(-1, 1)plt.axhline(0.48, label='0.1  显著性水平', color='red', linestyle='--')plt.axhline(-0.48,color='red', linestyle='--')plt.axhline(0.55, label='0.05显著性水平', color='red', linestyle='-')plt.axhline(-0.55,color='red', linestyle='-')
# 设置标题、坐标轴ax1 = plt.gca()ax1.set_title('滑动相关' ,fontname='MicroSoft YaHei', fontsize=20, \              weight='bold', style='italic', loc='left')ax1.set_title('T = 13' ,fontname='MicroSoft YaHei', fontsize=20, \              weight='bold', style='italic', loc='right')ax1.set_xlabel('年份' ,fontname='MicroSoft YaHei', fontsize=15)ax1.set_ylabel('相关系数' ,fontname='MicroSoft YaHei', fontsize=15)ax1.set_xticks([1982, 1989, 1996, 2003, 2010, 2017])ax1.tick_params(axis='both', direction='in')
# 设置图例leg = ax1.legend()leg.get_frame().set_facecolor('white')  # 设置背景颜色为白色leg.get_frame().set_edgecolor('black')  # 设置边框颜色为黑色for text in leg.get_texts():    text.set_fontsize(10)  # 设置字体大小    text.set_fontfamily('MicroSoft YaHei')  # 设置字体名称
# 保存图片plt.savefig("E:/图.png", dpi=600, bbox_inches='tight')plt.show()


图像


完整代码

import numpy as npimport matplotlib.pyplot as pltfrom scipy.stats import pearsonrimport xarray as xarray
# 随机生成两组[0,1)之间的数用于计算滑动相关性x = np.random.random(40)y = np.random.random(40)print(x, y, x.shape, y.shape)
# 设置步长,并计算每段步长内两组数据的相关性# pearsonr函数会返回相关系数和P值两个值t = 13sli_cor = np.zeros([40])p_value = np.zeros([40])for i in range (int(0+(t-1)/2), int(40-(t-1)/2), 1):    sli_cor[i], p_value[i] = pearsonr(x[int(i-(t-1)/2):int(i+(t-1)/2+1)], y[int(i-(t-1)/2):int(i+(t-1)/2+1)])sli_cor[sli_cor==0] = np.nanyear = np.arange(1981, 2021, 1)
# 绘图plt.plot(year, sli_cor, marker = '.', markersize = 10)plt.xlim(1981, 2020)plt.ylim(-1, 1)plt.axhline(0.48, label='0.1  显著性水平', color='red', linestyle='--')plt.axhline(-0.48,color='red', linestyle='--')plt.axhline(0.55, label='0.05显著性水平', color='red', linestyle='-')plt.axhline(-0.55,color='red', linestyle='-')
# 设置标题、坐标轴ax1 = plt.gca()ax1.set_title('滑动相关' ,fontname='MicroSoft YaHei', fontsize=20, \              weight='bold', style='italic', loc='left')ax1.set_title('T = 13' ,fontname='MicroSoft YaHei', fontsize=20, \              weight='bold', style='italic', loc='right')ax1.set_xlabel('年份' ,fontname='MicroSoft YaHei', fontsize=15)ax1.set_ylabel('相关系数' ,fontname='MicroSoft YaHei', fontsize=15)ax1.set_xticks([1982, 1989, 1996, 2003, 2010, 2017])ax1.tick_params(axis='both', direction='in')
# 设置图例leg = ax1.legend()leg.get_frame().set_facecolor('white')  # 设置背景颜色为白色leg.get_frame().set_edgecolor('black')  # 设置边框颜色为黑色for text in leg.get_texts():    text.set_fontsize(10)  # 设置字体大小    text.set_fontfamily('MicroSoft YaHei')  # 设置字体名称
# 保存图片plt.savefig("E:/图.png", dpi=600, bbox_inches='tight')plt.show()

END



本文编辑|枫阁


加微信交流群,请备注:姓名-行业-单位)



声明:本公众号分享的资源均来自于互联网的公开资源,仅供个人学习和研究使用,不代表本人对其版权、真实性、合法性、准确性等方面做出任何保证。任何使用本号分享的资源的个人或组织,需自行承担相应的法律责任和后果;本号不承担任何法律责任和连带责任。使用本号分享的资源即代表您已完全了解并同意本免责声明的所有内容。






上海位温信息科技有限公司

专业的商业气象服务商



(咨询数据详情,可添加微信,请备注:合规数据



可提供气象产品 

  • 全国三千多个基准站

3213 个主要城市站点、每小时发 布 1 次,

每天发布 24 次,每次提供当前整点时刻的

城市站点实况天气(实况产品会在整点后

15 分钟、20 分钟、30 分钟进行数据更新),

要素包括:天气现象、气温、体感温度、风速、

风力、风向、相对湿度、气压、1小时降水量、

10分钟降水量、能见度、日出时间、日落时间、

紫外辐射等要素。

  • 探空气象站

  • 海洋气象站

  • 雷达拼图

  • 卫星云图(风云4、葵花8)

  • 格点实况、再分析资料

  • 数值预报:CMA EC GFS

  • 强对流天气预报

  • 强天气落区预报

    强对流天气(短时强降水/冰雹/雷暴大风)概率预报图

  • 台风、热带气旋

可提供国内与国外各类气象咨询气象服务

本公司提供服务稳定可靠,您值得拥有。




EarthAi
AI4Earth、人工智能、气象数值预报、学术论文!产业资讯等等……
 最新文章