![]() |
После вычисления коэффициента корреляции между двумя переменными обычно имеет смысл проверить его на значимость. Даже если между переменными отсутствует корреляция, на выборке конечного размера почти всегда будет рассчитываться ненулевой коэффициент корреляции - по той же причине, по какой маловероятно выпадение ровно пятьдесяти орлов при ста бросках монеты.
Алгоритмы, представленные на этой странице, позволяют провести три теста на значимость коэффициента корреляции. Первым тестом является двухсторонний тест, в котором проверяется нуль-гипотеза об отсутствии корреляции между двумя переменными. Левосторонний тест проверяет нуль-гипотезу состоящую в том, что между переменными имеется неотрицательная корреляция (т.е. либо нулевая корреляция, либо положительная). Правосторонний тест проверяет нуль-гипотезу о наличии неположительной корреляции.
Проверка на значимость коэффициента корреляции Пирсона осуществляется подпрограммой PearsonCorrelationSignificance. Для работы этой подпрограммы требуется нормальность исследуемых выборок, поскольку хвосты распределения коэффициента корреляции Пирсона вычислены только для нормальных выборок. В случае, если исследуемые выборки незначительно отклоняются от нормальных, тест можно использовать, но его результаты будут менее точны. И, по мере роста отклонения от нормальности, его результаты будут становиться всё менее и менее правдоподобными. Таким образом, если нет уверенности в том, что исследуемые выборки достаточно близки к нормальным, лучше использовать непараметрический коэффициент корреляции - коэффициент ранговой корреляции Спирмена - и соответствующий тест, не требующий нормальности исследуемых выборок. Этот тест осуществляется подпрограммой SpearmanRankCorrelationSignificance.
Как уже было отмечено выше, тест на значимость коэффициента ранговой корреляции не зависит от распределения исследуемых выборок. Ещё одним достоинством непараметрического коэффициента корреляции является то, что он в меньшей мере подвержен влиянию выбросов. В случае, если выборка невелика, один крупный выброс способен привести к увеличению коэффициента корреляции Пирсона и к ошибочному заключению о наличии корреляции там, где её на самом деле нет. Коэффициент ранговой корреляции Спирмена в меньшей мере подвержен воздействию выбросов (независимо от величины выброса, его влияние на коэффициент корреляции ограничено сверху), что делает его незаменимым при обработке зашумленных данных.
| C++ | correlationtests.h | |
| C# | correlationtests.cs | |
| Delphi | correlationtests.pas | |
| FreePascal | correlationtests.pas | |
| VBA | correlationtests.bas |
This article is intended for personal use only.
Исходный код на C#
Исходный код на C++
Исходный код на C++, использующий библиотеки MPFR/GMP.
Исходный код GMP доступен на сайте gmplib.org. Исходный код MPFR доступен на сайте www.mpfr.org.
Исходный код на Free Pascal.
Исходный код на Delphi.
Исходный код на VBA.
|
ALGLIB project, 1999-2010 |