《现代气候统计诊断与预测技术》趋势显著性检验

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值