Hotelling与PCA的t平方统计

时间:2019-06-18 08:20:25

标签: python statistics pca

在尝试执行PCA和仅保留两个作曲家之后,我试图在比托恩计算Hotelling的t平方统计量。我正在使用sklearn和numpy。

def get_pca(X, n=2, scale=True):
    if scale:
        scale = StandardScaler()
        scale.fit(X)
        X_scaled = scale.transform(X)
    else:
        X_scaled = X

    pca = PCA(n_components=n)
    pca.fit(X_scaled)
    return scale, pca, pca.transform(X_scaled)

def get_mu(T):
    return [np.mean(T[:, k]) for k in range(T.shape[1])]

def get_SD(pcs, mu):
    sigma = np.linalg.inv(np.cov(pcs.T))

    SD = np.zeros(len(pcs), dtype='float')
    for i in range(len(pcs)):
        temp = np.subtract(pcs[i], mu)
        SD[i] = temp.dot(sigma).dot(temp.T)

    return SD

但是我认为这有些问题。计算在我的代码中正确吗?

0 个答案:

没有答案