T-квадрат статистики Хотеллинга с PCA - PullRequest
1 голос
/ 18 июня 2019

Я пытаюсь вычислить t-квадрат статистики Хотеллинга в Pytohn после выполнения PCA и сохранения только двух составляющих.Я использую 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

Но я думаю, что с этим что-то не так.Правильно ли выполнен расчет в моем коде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...