1 Вопрос: Наклон линии регрессии с использованием numpy / pandas

вопрос создан в Wed, May 8, 2019 12:00 AM

Я пытаюсь написать фрагмент кода, который содержит два списка чисел и находит коэффициент бета . Это можно сделать, найдя наклон линии или используя ковариацию двух списков. Я попытался np.cov(), но это дало мне результаты, отличные от ожидаемых (значение должно быть близко к 1). slope функция Excel рассчитывает его правильно, но я пытаюсь сделать то же самое вещь в NumPy. Как я могу рассчитать наклон со многими точками, похожими на то, что делает функция Excel?

# both of these are lists (same size) of numbers 
bmreturns = merged['Close-bm'].pct_change()
stockreturns = merged['Close-s'].pct_change()

# incorrect value (too small) - maybe because it's normalized
print(bmreturns.cov(stockreturns))

##=SLOPE({2,4,6}, {10,20,30}) = 0.2
    
0
  1. не могли бы вы показать минимальный пример своего кода?
    2019-05-08 15: 59: 34Z
  2. @ vlizana Два моих списка имеют длину &​​gt; 400, поэтому я не могу вставить все это здесь с ожидаемым результатом. Примером может служить функция наклона, которую я связал
    2019-05-08 16: 02: 58Z
1 ответ                              1                         

При чтении страницы WikiPedia по простой регрессии становится ясно, что

beta = cov (x, y) /var (x)

Вы вычисляете только cov (x, y), но не делите на var (x)

Решение будет

bmreturns.cov(stockreturns) / bmreturns.var()

    
0
2019-05-08 16: 11: 30Z
источник размещен Вот