暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python气象数据处理与绘图:Pearson相关系数与时间相关系数

气海无涯 2021-08-18
604

1、导入模块

1import numpy as np
2import pandas as pd
3from scipy.stats import pearsonr

2、读取数据

1df1 = pd.read_excel('/home/kesci/input/weather8094/徐家汇气温.xlsx')
2df1

1df2 = pd.read_excel('/home/kesci/input/weather8094/宝山气温.xlsx')
2df2

3、计算Pearson 系数(Pearson Coefficient)

1# 查看最低、最高、平均温度之间的相关系数
2# 徐家汇站
3df1.corr()

1# 宝山站
2df2.corr()

4、计算Pearson 系数及显著性水平

1# 徐家汇和宝山站最高温度之间的相关系数
2p, r = pearsonr(df1['最高温度'],df2['最高温度'])
3print('相关系数:',p) 
4print('显著性水平:',r)  #显著性水平

输出:
1相关系数: 0.9951712283289834
2显著性水平: 0.0

5、时间相关系数(The First Order Temporal Correlation Coefficient)

这个相关性系数与 Pearson 系数类似,但是略有不同,其定义为:

CORT=1,表示两条时间序列有相同的趋势, 它们会同时上升或者下降,并且变化幅度也是相同的。
CORT=-1,表示两条时间序列有相反的趋势, 它们会相反变化,此消彼长,并且变化幅度也是相同的。
CORT=0,表示两条时间序列的变化没有相关性。

6、自定义写一个相关系数

1def Temporal_Correlation_Coefficient(a,b):
2    diff1 = np.diff(np.array(a))
3    diff2 = np.diff(np.array(b))
4    TCC = np.sum(diff1*diff2)/(np.sqrt(np.sum(pow(diff1,2)))*np.sqrt(np.sum(pow(diff2,2))))
5    return TCC

7、计算时间相关系数

1Temporal_Correlation_Coefficient(df1['最高温度'],df2['最高温度'])



有问题可以到QQ群里进行讨论,我们在那边等大家。

QQ群号:854684131

文章转载自气海无涯,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论