Почему этот набор данных не имеет ковариации?

8

Мое понимание того, как работает ковариация, заключается в том, что коррелированные данные должны иметь несколько высокую ковариацию. Я сталкивался с ситуацией, когда мои данные выглядят коррелированными (как показано на диаграмме рассеяния), но ковариация близка к нулю. Как ковариация данных может быть нулевой, если они коррелированы?

import numpy as np
x1 = np.array([ 0.03551153,  0.01656052,  0.03344669,  0.02551755,  0.02344788,
        0.02904475,  0.03334179,  0.02683399,  0.02966126,  0.03947681,
        0.02537157,  0.03015175,  0.02206443,  0.03590149,  0.03702152,
        0.02697212,  0.03777607,  0.02468797,  0.03489873,  0.02167536])
x2 = np.array([ 0.0372599 ,  0.02398212,  0.03649548,  0.03145494,  0.02925334,
        0.03328783,  0.03638871,  0.03196318,  0.03347346,  0.03874528,
        0.03098697,  0.03357531,  0.02808358,  0.03747998,  0.03804655,
        0.03213286,  0.03827639,  0.02999955,  0.0371424 ,  0.0279254 ])
print np.cov(x1, x2)

array([[  3.95773132e-05,   2.59159589e-05],
       [  2.59159589e-05,   1.72006225e-05]])

введите описание изображения здесь

килоджоулей
источник
4
Подсказка: что происходит, когда вы смотрите на корреляцию? В чем разница между ковариацией и корреляцией?
Алешинг
2
Если вы измеряете числа, которые кажутся маленькими или близкими в определенном масштабе, то различия между ними также будут казаться небольшими, а продукты различий кажутся еще меньшими. Попробуйте умножить все свои данные на а затем повторить вычисления; ковариация должна быть в раз больше10001000000
Генри

Ответы:

14

Величина ковариации зависит от величины данных и того, насколько близко эти точки данных разбросаны по среднему значению этих данных. Это легко увидеть, если взглянуть на формулу:

соvИкс,Yзнак равноΣ(Икся-Икс¯)(Yя-Y¯)N-1

В вашем случае отклонение x1и x2указывает на среднее значение x1и x2:

x1-mean(x1)
 [1]  0.006043341 -0.012907669  0.003978501 -0.003950639 -0.006020309 -0.000423439  0.003873601
 [8] -0.002634199  0.000193071  0.010008621 -0.004096619  0.000683561 -0.007403759  0.006433301
[15]  0.007553331 -0.002496069  0.008307881 -0.004780219  0.005430541 -0.007792829

x2-mean(x2)
 [1]  0.0039622385 -0.0093155415  0.0031978185 -0.0018427215 -0.0040443215 -0.0000098315
 [7]  0.0030910485 -0.0013344815  0.0001757985  0.0054476185 -0.0023106915  0.0002776485
[13] -0.0052140815  0.0041823185  0.0047488885 -0.0011648015  0.0049787285 -0.0032981115
[19]  0.0038447385 -0.0053722615

Теперь, если вы умножите эти два вектора друг на друга, вы, очевидно, получите довольно маленькие числа:

(x1-mean(x1)) * (x2-mean(x2))
 [1] 2.394516e-05 1.202419e-04 1.272252e-05 7.279927e-06 2.434807e-05 4.163041e-09 1.197349e-05
 [8] 3.515290e-06 3.394159e-08 5.452315e-05 9.466023e-06 1.897897e-07 3.860380e-05 2.690611e-05
[15] 3.586993e-05 2.907425e-06 4.136268e-05 1.576570e-05 2.087901e-05 4.186512e-05

Теперь возьмите сумму и разделите на и вы получите ковариацию:N-1

sum((x1-mean(x1)) * (x2-mean(x2))) / (length(x1)-1)
[1] 2.591596e-05

Вот почему величина ковариации мало говорит о силе того, как x1и как x2меняются. Путем стандартизации (или нормализации) ковариации, то есть деления ее на произведение стандартного отклонения x1и x2(очень похоже на ковариацию, т.е. 2.609127e-05),

рзнак равносоvИкс,YsИксsYзнак равноΣ(Икс1-Икс¯)(Yя-Y¯)(N-1)sИксsY

Вы получаете высокий коэффициент корреляции, , который подтверждает то, что вы можете видеть на своем графике.рзнак равно0,99

Стефан
источник
7

Давайте поговорим о том, что можно увидеть из беглого взгляда на сюжет и некоторых проверок на разумность (именно такие вещи можно делать как само собой разумеющееся при просмотре данных, просто вооружившись несколькими основными фактами):

Тем не менее, обратите внимание , давайте сначала , что версия -denominator стандартного отклонения не может превышать половины диапазона (в знаменатель версию можно, но с более , чем несколько не много наблюдений).NN-1

Диапазоны по обеим переменным составляют порядка 0,02 (примерно), поэтому отклонения должны составлять не более половины этого значения в квадрате или около .10-4

Следовательно, наблюдаемые значения отклонений в вашем выводе имеют смысл; они оба меньше этого, но более десятой части.

Абсолютное значение ковариации должно быть не более, чем среднее геометрическое двух дисперсий (в противном случае корреляция может превышать 1). Таким образом, абсолютное значение ковариации не должно превышать произведения диапазонов.14

Поэтому, если диапазон обеих переменных был близок к , мы не могли ожидать, что абсолютная ковариация превысит .0.02(0.02)2/4знак равно10-4

Из этого очень грубого анализа ничего не выглядит удивительным.

Более точный анализ получается из фактического выполнения расчетов с использованием более точных диапазонов, а затем обдумывания форм предельных распределений:
диапазоны чуть меньше и соответственно, поэтому ковариация не должна превышать , но поскольку маргинальные распределения не являются почти симметричными двухточечными, оно должно быть немного меньше этого.0,0230,0158,6×10-5

В самом деле, если мы скажем, что они не так далеки от однородности, ковариация будет ограничена чем-то ближе к 1/12 продукта, а не к 1/4, т. Е. Для примерно одинаковых вариаций с этими диапазонами это будет меньше, чем примерно - но не намного меньше, потому что корреляция высокая. [Эти вариации не одинаковы - они оставлены наклонными - но это достаточно близко для наших нынешних целей.]2,9×10-5

Поэтому, просто взглянув на диапазон каждой переменной и приблизительное представление о предельных распределениях и корреляции на графике, я ожидал бы, что ковариация будет немного меньше, чем . Это на самом деле около .2,9×10-52,6×10-5

(Не так уж и плохо для быстрого расчета за конверт, начиная с диапазонов до двух значащих цифр!)

Glen_b - Восстановить Монику
источник