Коэффициент ранговой корреляции Спирмена, также известный как ро Спирмена, — это статистический показатель, используемый для оценки силы и направления монотонной связи между двумя переменными. Хотя вычислить точечную оценку ро Спирмена несложно, определение доверительного интервала вокруг оценки дает ценную информацию о точности оценки. В этой статье мы рассмотрим несколько методов расчета доверительных интервалов для ро Спирмена, а также примеры кода на 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
В этой статье мы исследовали три метода расчета доверительных интервалов для коэффициента ранговой корреляции Спирмена: параметрический подход с использованием преобразования Фишера, бутстреп-подход и точный подход с использованием критериев перестановки. В зависимости от конкретных требований вашего анализа вы можете выбрать подходящий метод. Помните, что выбор метода может зависеть от размера выборки, вычислительных ресурсов и предположений об основном распределении.