python实现互补累计概率分布、记忆性、阵发性和活跃度

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/x18835129278/article/details/89957588
import numpy as np


def grand_total(num_days):
    # 计算互补累积概率分布 num_days中存储的是所有的次数,总次数为sum(num_days)
    grand_total = []
    for i in range(1, len(num_days)):
        a = num_days[i:]  # 互补累积概率,单调递减
        p = sum(a) / sum(num_days)
        grand_total.append(p)
    # print(grand_total)
    grand_total.append(0.0)
    return grand_total


def memory(ls):
    ls_per = ls[:len(ls) - 1]
    ls_after = ls[1:len(ls)]
    mean_per = np.mean(ls_per)
    mean_after = np.mean(ls_after)
    sigma1 = 0
    for j in ls_per:
        sigma1 = sigma1 + (j - mean_per) ** 2
    sigma1_per = sigma1 ** 0.5
    sigma2 = 0
    for k in ls_after:
        sigma2 = sigma2 + (k - mean_after) ** 2
    sigma1_after = sigma2 ** 0.5
    sum1 = 0
    for i in range(len(ls) - 1):
        sum1 = sum1 + (ls_per[i] - mean_per) * (ls_after[i] - mean_after) * (
                ((sigma1_per + 0.01) * sigma1_after) ** (-1))
    print('记忆性:', (1 / (len(ls) - 1)) * sum1) 


def zhenfa(ls):
    total = sum(ls)
    lmbda = total / len(ls)  # 间隔时间分布的均值
    # lmbda = len(ls) / total
    print('lmbda参数:', lmbda) 
    # 计算标准差
    sq = 0
    for i in ls:
        sq = sq + (i - lmbda) ** 2
    sq = sq ** 0.5
    print('标准差:', sq)
    B = (sq - lmbda) / (sq + lmbda)
    print('阵发性:', B)  


def huoyuedu(ls):
    # 活跃度
    total = sum(ls)
    A = len(ls) * (total + 0.0) ** (-1)
    print('活跃度:', A) 

猜你喜欢

转载自blog.csdn.net/x18835129278/article/details/89957588