1 Question: Pente d'une droite de régression avec numpy / pandas

question créée à Wed, May 8, 2019 12:00 AM

J'essaie d'écrire un morceau de code qui donne deux listes de nombres et trouve le coefficient bêta . Cela peut être fait en recherchant la pente de la ligne ou en utilisant la covariance des deux listes. J'ai essayé np.cov() mais cela m'a donné des résultats différents de ceux que j'attendais (la valeur devrait être proche de 1). La fonction 0600350991111101035062 d'Excel est calculée correctement mais j'essaie de faire de même chose en numpy. Comment puis-je calculer la pente avec de nombreux points similaires à ceux de la fonction Excel?

slope     
0
  1. pourriez-vous montrer un exemple minimal de votre code?
    2019-05-08 15: 59: 34Z
  2. @ vlizana Les deux listes que j'ai ont toutes les deux une longueur de > 400, donc je ne peux pas tout coller ici avec la sortie attendue. Un exemple serait la fonction de pente que j'ai liée
    2019-05-08 16: 02: 58Z
1 Réponses                              1                         

Lors de la lecture de la page de WikiPedia sur la régression simple , il est clair que

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

Vous ne calculez que cov (x, y) mais ne divisez pas par var (x)

Une solution serait

# 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
2019-05-08 16: 11: 30Z
bmreturns.cov(stockreturns) / bmreturns.var()

source placée ici