Python脚本计算资产beta给出不正确的结果

时间:2014-02-02 19:49:02

标签: python covariance

我大约一周前开始编程,我完成了代码学院教程并在线观看了一些讲座。我的第一个目标是构建一个交互式投资组合优化计划。

我编写了一个脚本来查找资产的beta(a和b的方差的共同方差b)但是我的结果并没有接近我插入的资产的实际beta值。使用'AAPL'并且'SPY'的结果应该是.75左右,并且它会产生〜.16。

如果可能的话,我也想返回r ^ 2,并在更长的时间内使用月度数据。

这是我的代码:

from pandas.io.data import DataReader
from datetime import datetime
from datetime import date
import numpy

### Enter the stocks to be analyzed

s1 = input('Input the first ticker in quotations: ')
s2 = input('Input the second ticker in quotations: ')


### Pulling stock data from yahoo finance

today = date.today()

stock_one = DataReader((s1),'yahoo', datetime(2013,1,1), today)
stock_two = DataReader((s2),'yahoo', datetime(2013,1,1), today)

a = stock_one['Adj Close']
b = stock_two['Adj Close']

### Calculating the beta for the stock

covariance = numpy.cov(a,b)[0][1]
variance = numpy.var(a)

beta = covariance / variance

print 'The beta for your stock is ' + str(beta)

1 个答案:

答案 0 :(得分:2)

你在这一行上有一个错误:

    variance = numpy.var(a)

应该是:

    variance = numpy.var(b)

由于beta的公式为:

    covar(a,b)/var(b)

按照您编写代码的原始方式,您将获得b的beta而不是a到b。