def kendall_t(data):
'''
kendall_t趋势显著性检验,《现代气候统计诊断与预测技术》--魏凤英55页
Parameters
----------
data:一列数据
Returns
-------
1为显著上升;
-1为显著下降;
0为不显著
'''
n = np.size(data, 0) # 数据个数
# 计算秩统计量r
ri = np.zeros([np.size(data, 0) - 1, np.size(data, 1)]) # 长度为数据长度-1
r = np.zeros([np.size(data, 0) - 1, np.size(data, 1)]) # 长度为数据长度-1
for i in range(len(data) - 1):
if data[i + 1, 0] > data[i, 0]:
ri[i, 0] = 1
r[i, 0] = np.sum(ri[0:i, 0])
r[i, 0] = np.sum(ri[0:i + 1, 0])
# 计算统计量Z,Z区间为[-1,1]
z = np.sum(r) * 4 / (n * (n - 1)) - 1
# 计算显著性水平Z0.05
z005 = 1.96 * np.sqrt((4 * n + 10) / (9 * n * (n - 1)))
# 如果|Z|>Z005,则显著
if abs(z) > z005 and z > 0:
significance = 1
elif abs(z) > z005 and z 0:
significance = -1
else:
significance = 0
服务器托管网 return significance
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: #yyds干货盘点# LeetCode程序员面试金典:寻找右区间
1.简述: 给你一个区间数组intervals,其中intervals[i] = [starti, endi],且每个starti都不同。 区间i的右侧区间可以记作区间j,并满足startj>= endi,且startj最小化。注意i可能等于j。 返回一…