贝塔值(beta)的线性回归方法实践

您所在的位置:网站首页 怎么看股票的贝塔系数 贝塔值(beta)的线性回归方法实践

贝塔值(beta)的线性回归方法实践

2024-07-13 15:41| 来源: 网络整理| 查看: 265

贝塔值(beta)的线性回归方法实践# 前言#

在巴菲特都不用beta值,你还用?!中介绍了多种beta值的计算方法,但这些计算方法还是比较偏向于理论而非实际应用。 本文将利用Python和Tushare的股票日线数据来计算线性回归的贝塔值(beta)。 因为这里涉及到Python编程工具的使用,在运行使用的过程中需要一些编程的基础。

线性回归(Linear Regression)#

首先,我们先来分析一下公式的组成部分。贝塔值(beta)等于大市和股票之间的协方差除以大市的方差。 那格力电器(000651)和上证指数(000001)为例:

我们首先调用Tushare的API 获取股票数据;

再通过python计算出其股票价格每日的百分比变化;

利用python中的numpy库计算协方差和方差值;

最后计算贝塔值(beta)。

注册tushare账号

首先,我们需要从Tushare.pro注册一个账号并调用其API获取股票日线数据。可能大多数的童稚是第一次接触Tushare.pro, 那我就直接贴上官方介绍:

Tushare是一个免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资的python财经数据接口包。拥有丰富的数据内容,如股票、基金、期货、数字货币等行情数据,公司财务、基金经理等基本面数据。

调用Tushare的API 获取股票数据# import tushare as ts import pandas as pd pro = ts.pro_api('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') #这里需要填写你注册好的Tushare的TOKEN凭证

因为获取股票数据和大盘指数的接口并不相同,所以要分开来获取:

#先建立一个字典,用来存储股票、指数对应的价格 all_data = {} #获取大盘5年的日线数据 all_data['000001'] = pro.index_daily(ts_code='000001.SH', start_date='20170101', end_date='20190110') #获取个股5年的日线数据 all_data['000651'] = pro.daily(ts_code='000651.SZ', start_date='20170101', end_date='20190110') 计算日线数据百分比变化# #用for循环提取股票、大盘的收盘价格并转换为dataframe的形式 price = pd.DataFrame({tic: data['close'] for tic, data in all_data.items()}) #计算股票价格每日变化 returns = price.pct_change()[1:]

到目前为止,我们已经成功获取了个股和大盘的每日收盘价格并计算其百分比。

计算协方差和方差值# import numpy as np m = returns['000001.SH'] #指数数据 s = returns['000651.SZ'] #个股数据 covariance = np.cov(s,m)[0][1] # 计算两者的协方差 variance = np.var(m) # 计算指数的方差 计算贝塔值(beta)# beta = covariance / variance print(beta) 完整代码# import tushare as ts import pandas as pd import numpy as np pro = ts.pro_api('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') #这里需要填写你注册好的Tushare的TOKEN凭证 all_data = {} all_data['000001'] = pro.index_daily(ts_code='000001.SH', start_date='20140101', end_date='20190110') all_data['000651'] = pro.daily(ts_code='000651.SZ', start_date='20140101', end_date='20190110') price = pd.DataFrame({tic: data['close'] for tic, data in all_data.items()}) returns = price.pct_change()[1:] m = returns['000001'] #指数数据 s = returns['000651'] #个股数据 covariance = np.cov(s,m)[0][1] # 计算两者的协方差 variance = np.var(m) # 计算指数的方差 beta = covariance / variance print('beta值为:',beta) 结果#

上图为最终的运行效果,我们通过线性回归的方法得出贝塔值(beta)为1.1075675



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3