def kendall_t(data):
'''
kendall_t趋势显著性检验,《现代气候统计诊断与预测技术》--魏凤英55页
Parameters
----------
data:为一列数据
Returns
-------
1为显著上升;
-1为显著下降;
0为不显著
'''
n = np.size(data, 0) # 数据个数
# 计算秩统计量ri(统计后面所有数值大于该数值的个数)
ri = np.zeros([np.size(data, 0) - 1, np.size(data, 1)]) # 长度为数据长度-1
for i in range(0, len(data) - 1):
for j in range(i + 1, len(data)):
if data[j] > data[i]:
ri[i, 0] += 1
# 计算统计量Z,Z区间为[-1,1]
z = np.sum(ri) * 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
《现代气候统计诊断与预测技术》趋势显著性检验
于 2023-11-01 15:09:09 首次发布