Найти - Пользователи
Полная версия: кто знает?
Начало » Python для экспертов » кто знает?
1 2
Еленочка
Мне опять нужна помощь:)
Ребят, кто-нибудь знает как рассчитать ковариационную матрицу?
hellslade
Еленочка
вас интересуют формулы или модуль, позволяющий без лишних телодвижений все расчитать? :)
Еленочка
В модулях такого не нашла, формул много разной сложности, но затрудняюсь в их реализации на Python. Если кто сможет мне помочь буду очень рада :)
hellslade
Еленочка
как я понимаю формулы у вас есть. не могли бы вы привести их? а еще очень хорошо было бы, если б вы показали свой код, тогда вам бы указали на ошибки. потому что “сделайте все за меня” не очень хороший вариант…
Еленочка
не знаю как посчитать формулу для корруляции двух величин 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.
А как воедино это связать не знаю.
hellslade
Еленочка
а для чего у вас функция summa?
как я понимаю по формуле, считать нужно сумму элементов не одной последовательности, а сразу обоих, при этом вычитая среднее значение из каждого элемента. вообще в математике не силен(, поправьте если не так…Но если я прав, то функция должна выглядеть примерно так:
def _sum(a,b):
    t = len(a)
    sum = 0
    for i in range(t):
        sum += (a[i]-ra)*(b[i]-rb)
    return sum
ra, rb определяются ранее, как среднее.
в принципе, делал тоже самое в Excel с помощью встроенных функций из пакета анализа, он вывел 4 числа и одно из них совпало с моим результатом )))))
Еленочка
hellslade, скажи пожалуйста, а у тебя значение получилось больше единицы?
hellslade
Еленочка
вообще получаемое значение зависит от последовательности, иногда больше 0, а иногда меньше.
наверно при расчете ковариации есть какие нибудь фичи, о которых я не знаю…
Еленочка
Разброс значений должен быть от -1 до 1. А у меня намного больше, вот и хотела узнать, какой у вас разброс получился.
Спасибо за код, суть поняла :)
hellslade
насколько я понимаю, от -1 до 1 варьируется индекс корреляции, а ковариация это немного другое)
тему пора на какой-нить математический форум :D
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB