У меня проблема с вычислением коэффициента корреляции Пирсона для наборов данных с возможным нулевым стандартным отклонением (т. Е. Все данные имеют одинаковое значение).
Предположим, что у меня есть следующие два набора данных:
float x[] = {2, 2, 2, 3, 2};
float y[] = {2, 2, 2, 2, 2};
Коэффициент корреляции "r" будет рассчитываться с использованием следующего уравнения:
float r = covariance(x, y) / (std_dev(x) * std_dev(y));
Однако, поскольку все данные в наборе данных «y» имеют одинаковое значение, стандартное отклонение std_dev (y) будет равно нулю, а «r» будет неопределенным.
Есть ли решение этой проблемы? Или я должен использовать другие методы для измерения связи данных в этом случае?
correlation
Эндри
источник
источник
Ответы:
«Теория выборки» скажет вам, что такой оценки не существует. Но вы можете получить его, вам просто нужно быть разумным в отношении вашей предыдущей информации и выполнять более сложную математическую работу.
Если вы указали байесовский метод оценки, а апостериор такой же, как и предыдущий, то вы можете сказать, что данные ничего не говорят о параметре. Поскольку вещи могут стать «особенными» для нас, то мы не можем использовать бесконечные пространства параметров. Я предполагаю, что, поскольку вы используете корреляцию Пирсона, у вас есть двумерное нормальное правдоподобие:
где Qi=(xi-
Теперь, чтобы указать, что один набор данных может иметь одно и то же значение, напишите , и тогда мы получим:Yя= у
где s2x=1
И поэтому ваша вероятность зависит от четырех чисел, . Таким образом, вы хотите оценить ρ , поэтому вам нужно умножить на априор и интегрировать неприятные параметры μ x , μ y , σ x , σ y . Теперь, чтобы подготовиться к интеграции, мы «завершим квадрат» ∑s2Икс, у, х¯¯¯, N ρ μИкс, μY, σИкс, σY
источник
Например, если все значения равны, gower (.,.) = 1. Если, с другой стороны, они отличаются только в одном измерении, газонокосилка (.,.) = 0,9. Если они различаются в каждом измерении, gower (.,.) = 0 и так далее.
Конечно, это не показатель корреляции, но он позволяет рассчитать, насколько близок вектор с s> 0 к вектору с s = 0. Конечно, вы можете применять и другие метрики, если они лучше соответствуют вашим целям.
источник
В этом случае корреляция не определена. Если вы должны определить это, я бы определил его как 0, но вместо этого рассмотрим простую среднюю абсолютную разницу.
источник
Этот вопрос задается программистами, поэтому я бы предложил подключить ноль. Нет никаких доказательств корреляции, и нулевая гипотеза будет нулевой (без корреляции). Могут существовать другие знания о контексте, которые обеспечат «типичную» корреляцию в одном контексте, но код может быть повторно использован в другом контексте.
источник