版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012111465/article/details/82017294
import numpy as np
import pandas as pd
def Buishand_U_change_point_detection(inputdata):
inputdata = np.array(inputdata)
inputdata_mean = np.mean(inputdata)
n = inputdata.shape[0]
k = range(n)
Sk = [np.sum(inputdata[0:x+1] - inputdata_mean) for x in k]
sigma = np.sqrt(np.sum((inputdata-np.mean(inputdata))**2)/(n-1))
U = np.sum((Sk[0:(n - 2)]/sigma)**2)/(n * (n + 1))
Ska = np.abs(Sk)
S = np.max(Ska)
K = list(Ska).index(S) + 1
Skk = (Sk/sigma)
return K