我有数字多元数据,其中n >> k
,其中n
是记录数和k
变量。我需要从Python中的这些数据中找到异常记录。
我正在使用马哈拉诺比斯距离和Hotelling T平方来解决此问题。基本上,我实现了以下公式:
其中t2是:
t2方程与马哈拉诺比斯距离相似,所以我使用了scipy的内置距离函数,该函数需要此量的square-root
,因此在这里进行平方。以下是代码:
T2 = (n-k)/((n-1)*k) * (distance.mahalanobis(data_list, pd_data_mean, S)**2)
p_f = 1 - stats.f.cdf(T2,k,n-k)
S
是协方差矩阵的逆矩阵,pd_data_mean
是每个变量的均值向量,data_list
是需要评分的单个记录。我正在使用F分布来获取p值。
我有两个问题:
Hotelling T-squared
值的API。