
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。






