Форум сайта python.su
Мне опять нужна помощь:)
Ребят, кто-нибудь знает как рассчитать ковариационную матрицу?
Офлайн
Еленочка
вас интересуют формулы или модуль, позволяющий без лишних телодвижений все расчитать? :)
Офлайн
В модулях такого не нашла, формул много разной сложности, но затрудняюсь в их реализации на Python. Если кто сможет мне помочь буду очень рада :)
Офлайн
Еленочка
как я понимаю формулы у вас есть. не могли бы вы привести их? а еще очень хорошо было бы, если б вы показали свой код, тогда вам бы указали на ошибки. потому что “сделайте все за меня” не очень хороший вариант…
Офлайн
не знаю как посчитать формулу для корруляции двух величин Ra и Rb. Формула такого вида σ12 =1/T* E(Ra - rA)(Rb - rB), Ra и Rb - случайные величины,а точнее последовательности случайных величин, равной длины. rA и rB - средние значения для соответствующих Ra, Rb. T - длина последовательности, E - знак суммы, суммирование идет по всем элементам от 1 до Т.
Как я понимаю:
с 1/Т понятно, есть 1/len(Ra)
со средним значением тоже вроде понятно, ищем как мат.ожидание, average() от Ra,Rb
с суммированием, у меня
def summa(a):
n = len(a)
sumi=i = 0
for i in xrange(len(a)):
sumi = sumi + a
return sumi.
А как воедино это связать не знаю.
Офлайн
Еленочка
а для чего у вас функция summa?
как я понимаю по формуле, считать нужно сумму элементов не одной последовательности, а сразу обоих, при этом вычитая среднее значение из каждого элемента. вообще в математике не силен(, поправьте если не так…Но если я прав, то функция должна выглядеть примерно так:
def _sum(a,b): t = len(a) sum = 0 for i in range(t): sum += (a[i]-ra)*(b[i]-rb) return sum
Офлайн
hellslade, скажи пожалуйста, а у тебя значение получилось больше единицы?
Офлайн
Еленочка
вообще получаемое значение зависит от последовательности, иногда больше 0, а иногда меньше.
наверно при расчете ковариации есть какие нибудь фичи, о которых я не знаю…
Офлайн
Разброс значений должен быть от -1 до 1. А у меня намного больше, вот и хотела узнать, какой у вас разброс получился.
Спасибо за код, суть поняла :)
Офлайн
насколько я понимаю, от -1 до 1 варьируется индекс корреляции, а ковариация это немного другое)
тему пора на какой-нить математический форум :D
Офлайн