Изучение методов расчета доверительных интервалов для коэффициента ранговой корреляции Спирмена

Коэффициент ранговой корреляции Спирмена, также известный как ро Спирмена, — это статистический показатель, используемый для оценки силы и направления монотонной связи между двумя переменными. Хотя вычислить точечную оценку ро Спирмена несложно, определение доверительного интервала вокруг оценки дает ценную информацию о точности оценки. В этой статье мы рассмотрим несколько методов расчета доверительных интервалов для ро Спирмена, а также примеры кода на Python.

Метод 1: параметрический подход с использованием преобразования Фишера.
Параметрический подход предполагает, что после применения преобразования Фишера распределение выборочного коэффициента корреляции следует нормальному распределению. Этот метод требует наличия размера выборки и рассчитанного ро Спирмена.

import numpy as np
from scipy.stats import norm
def confidence_interval_spearman_rho_parametric(rho, n, alpha=0.05):
    z = np.arctanh(rho)
    se = 1 / np.sqrt(n - 3)
    z_critical = norm.ppf(1 - alpha / 2)
    lower_limit = np.tanh(z - z_critical * se)
    upper_limit = np.tanh(z + z_critical * se)
    return lower_limit, upper_limit

Метод 2: подход начальной загрузки
Метод начальной загрузки представляет собой непараметрический подход, который оценивает доверительный интервал путем повторной выборки данных с заменой. Он не требует каких-либо предположений относительно основного распределения.

import numpy as np
from scipy.stats import spearmanr
def confidence_interval_spearman_rho_bootstrap(x, y, alpha=0.05, n_bootstraps=1000):
    rho, _ = spearmanr(x, y)
    rho_bootstraps = []
    for _ in range(n_bootstraps):
        indices = np.random.randint(0, len(x), len(x))
        rho_bootstraps.append(spearmanr(x[indices], y[indices])[0])
    lower_limit = np.percentile(rho_bootstraps, (alpha / 2) * 100)
    upper_limit = np.percentile(rho_bootstraps, (1 - alpha / 2) * 100)
    return lower_limit, upper_limit

Метод 3: Точный подход
Точный метод рассчитывает доверительный интервал, используя точное распределение критерия перестановки. Он обеспечивает надежную оценку даже для небольших размеров выборки, но может оказаться дорогостоящим в вычислительном отношении для больших наборов данных.

import numpy as np
from scipy.stats import spearmanr
def confidence_interval_spearman_rho_exact(x, y, alpha=0.05):
    rho, _ = spearmanr(x, y)
    n = len(x)
    rho_permutations = []
    for _ in range(10000):
        perm = np.random.permutation(n)
        rho_permutations.append(spearmanr(x[perm], y)[0])
    rho_permutations.sort()
    lower_limit = rho_permutations[int((alpha / 2) * len(rho_permutations))]
    upper_limit = rho_permutations[int((1 - alpha / 2) * len(rho_permutations))]
    return lower_limit, upper_limit

В этой статье мы исследовали три метода расчета доверительных интервалов для коэффициента ранговой корреляции Спирмена: параметрический подход с использованием преобразования Фишера, бутстреп-подход и точный подход с использованием критериев перестановки. В зависимости от конкретных требований вашего анализа вы можете выбрать подходящий метод. Помните, что выбор метода может зависеть от размера выборки, вычислительных ресурсов и предположений об основном распределении.