金融分析与风险管理——资本资产定价模型

2023-11-01

金融分析与风险管理——资本资产定价模型

1 系统性风险与非系统性风险

在理论上,股票面临的风险可以抽象的划分为系统性风险与非系统性风险。系统性风险(不可分散风险),也称市场风险,通常是由于公司外部因素引起、与公司正常经营无关的风险;非系统性风险(可分散风险),通常是由于公司自身原因引起的风险。

本文以上证180指数成分股为例演示投资组合的系统性风险与非系统性风险,数据集时间为2016-2018年,已剔除期间上市的股票,最终保留155只股票,在该数据集中,等权重逐步增加投资组合的股票个数,完整的数据可以通过百度网盘获取,提取码:lvzd。其Python程序如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt 

plt.rcParams['font.sans-serif'] = ['SimHei'] #中文显示问题
plt.rcParams['axes.unicode_minus'] = False #负数显示问题

stocks_data = pd.read_excel(r'C:\Users\Administrator\Desktop\上证180指数成分股日收盘价.xlsx',header = 0,index_col = 0)
#观察数据
stocks_data.head()
stocks_data.shape

#计算对数收益率
return_stocks = np.log(stocks_data/stocks_data.shift(1))
return_stocks = return_stocks.dropna()
#获取行数
n = return_stocks.shape[1]
#构建投资组合的波动率一维数组
vol_port = np.zeros(n)

for i in range(1,n+1):
    weight = np.ones(i)/i
    return_cov = 252*return_stocks.iloc[:,:i].cov()
    
    vol_port[i-1] = np.sqrt(np.dot(weight,np.dot(return_cov,weight.T)))
    
N_list = np.arange(n) + 1 #生产1-155的数组

plt.figure(figsize=(8,6))
plt.plot(N_list,vol_port,'+-')
plt.xlabel('投资组合的成分股个数')
plt.ylabel('波动率')
plt.grid('True')

在这里插入图片描述
由上图可知:当投资组合的成分股个数增加到40时,整体的波动率基本维持在20%,20%可以看成市场风险,即系统性风险,因此,通过增加股票个数可以有效分散非系统风险。

2 资本资产定价模型

从理论上来说,理性的投资者不应承担任何非系统性风险,有且仅有系统性风险应该获得补偿,即获取超额收益,基于这个逻辑,就引出了资金资产定价模型,其表达式如下:

E ( R i ) = R f + β i [ E ( R M ) − R f ] E(R_i) = R_f + \beta_i[E(R_M)-R_f] E(Ri)=Rf+βi[E(RM)Rf]

其中, E ( R i ) E(R_i) E(Ri)表示某只股票的预期收益率, β i \beta_i βi表示系统性风险系数, [ E ( R M ) − R f ] [E(R_M)-R_f] [E(RM)Rf]表示市场风险溢价。

上式可以改为如下线性回归形式:

E ( R i ) = α + β i R M f E(R_i) = \alpha + \beta_iR_{Mf} E(Ri)=α+βiRMf

本文以沪深300指数(2016-2018年)作为市场组合(数据可通过百度网盘获取,提取码:763e),使用线性回归(使用statsmodels.api模块的线性回归函数,详情可参照官网介绍)来计算上例中上证180的第一列成分股相应的 β \beta β值,其Python的程序如下:

import statsmodels.api as sm

#读取数据
stocks_index = pd.read_excel(r'C:\Users\Administrator\Desktop\沪深300指数.xlsx',header = 0,index_col = 0)
#计算对数收益率
R_index = np.log(stocks_index/stocks_index.shift(1))
R_index = R_index.dropna()
#数据观测
R_index.describe()

#线性回归添加常数列
R_index_addcons = sm.add_constant(R_index)

model_shjc = sm.OLS(endog=return_stocks.iloc[:,0],exog=R_index_addcons)

resul_shjc = model_shjc.fit()
print('alpha的值:',round(resul_shjc.params[0],4))
print('beta的值:',round(resul_shjc.params[1],4))
#alpha的值: 0.0002
#beta的值: 1.3874

plt.figure(figsize=(8,6))
plt.scatter(R_index,return_stocks.iloc[:,0],label = '日收益率散点图')
plt.plot(R_index,resul_shjc.params[0] + resul_shjc.params[1]*R_index,'r--',label = '日收益率拟合曲线')
plt.xlabel('沪深300日收益率')
plt.ylabel('上证180成分股首列收益率')
plt.legend()
plt.grid('True')

在这里插入图片描述
由上述线性回归结果可知,其表达式如下:

R = 0.0002 + 1.3874 R 300 R = 0.0002 + 1.3874R_{300} R=0.0002+1.3874R300

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

金融分析与风险管理——资本资产定价模型 的相关文章

  • MariaDB安装教程

    注 从MariaDB 10 4 3开始 不再提供预构建的数据目录 并且用户需要运行mysql install db exe来创建数据目录 1 解压到自定义路径 E MariaDB mariadb 10 5 4 winx64 2 将其中的bi
  • java 类之间相互引用实例探索

    本文记录一下自己对类之间相互引用的探索 如有错误 希望不吝赐教 问题一 类之间相互引用依赖会不会引用死循环 不会 例如 A类中声明一个B类的引用 B类中也声明一个A类的引用 因为类之间的引用相当于指针 声明的时候不会分配对象 即使你在A构造
  • Windows下使用Redis(一)安装使用

    一 Redis 是什么 Redis 是一款依据BSD开源协议发行的高性能Key Value存储系统 cache and store 它通常被称为数据结构服务器 因为值 value 可以是 字符串 String 哈希 Map 列表 list
  • Error creating bean with name 'sessionFactory' defined in class path resource [...]

    已解决 spring hibernate 报错原因 applicationContext xml中没有引入实体映射文件 实体映射文件
  • 文盘 Rust -- tonic-Rust grpc 初体验

    gRPC 是开发中常用的开源高性能远程过程调用 RPC 框架 tonic 是基于 HTTP 2 的 gRPC 实现 专注于高性能 互操作性和灵活性 该库的创建是为了对 async await 提供一流的支持 并充当用 Rust 编写的生产系
  • Ceph运维存储 命令管理操作

    分布式存储运维操作 集群服务管理常用命令 统一节点上的ceph conf文件 将admin节点上修改的ceph conf 推送给所有其他节点 overwrite conf强制覆盖 ceph deploy overwrite conf con
  • C++常用头文件小结

    标准 C include
  • spring cloud 大大大大的坑。 Failed to start bean 'eurekaAutoServiceRegistration'

    先说明一下问题 我在做cloud 消费服务的时候 不是我做的我负责改而已 因我们boot 用的是1 5 4的发行版本 然后 cloud和boot的版本不一样又引入了解决的包 最后被我改回来 导致不能启动 在spring boot 中直接启动
  • 自动创建字符设备驱动的设备文件

    目录 问题描述 解决方案 udev 嵌入式中用的是mdev 相关函数 在调用device create前要先用class create创建一个类 Linux内核中有各种类 比如gpio rtc led等 类这个概念在Linux中被抽象成一种
  • SpringBoot默认包扫描机制及使用@ComponentScan指定扫描路径

    SpringBoot默认包扫描机制 标注了 Component和 Component的衍生注解如 Controller Service Repository就可以把当前的Bean加入到IOC容器中 那么SpringBoot是如何知道要去扫描
  • Java基础进阶--注解

    Java基础进阶 注解 什么是注解 元注解 Target Retention 注解的应用场景 APT IDE输入限定检查 字节码编码 注解与反射 什么是注解 注解就是一个标签 可以放在任何地方 一个类 一个方法 一个变量 都可以用注解来标注
  • 基于testNG的通用数据驱动-DataProvider

    上一篇有提过可以通过DataProvider做数据驱动 通过 Test dataProvider abc DataProvider name abc 来获取指定的测试数据 在缺点是测试数据需要保存在代码中 如果想从外部获取参数 需要一个通用
  • 预测性维护(2)

    预测性维护 应用开发 预测性维护 应用开发流程 数据获取 数据处理 特征提取 模型训练 模型部署 预测性维护 应用开发流程 预测性维护应用从开发流程而言 和标准的机器学习类应用有其相似性 通常而言包括如下的五步法 数据获取 数据处理 特征提
  • 分布式一致性协议——CAP Paxos Raft ZAB

    一致性算法 Paxos Raft ZAB 1 1 CAP理论 分布式系统的CAP理论 理论首先把分布式系统中的三个特性进行了如下归纳 一致性 C 在分布式系统中的所有数据备份 在同一时刻是否同样的值 等同于所有节点访问同一份最新的数据副本
  • hibernate框架入门

    1 在IDE中创建java项目 比较简单不再演示 2 创建source folder 命名为Hibernate3 在Hibernate下载文件中找到我们所需要的三个配置文件和所有jar包 拷贝所需jar文件 构建依赖包 3 提供hibern
  • 2207. 字符串中最多数目的子字符串

    leetcode力扣刷题打卡 题目 2207 字符串中最多数目的子字符串 描述 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern 两者都只包含小写英文字母 你可以在 text 中任意

随机推荐

  • 使用Java流进行输入和输出操作

    使用Java流进行输入和输出操作 Java流是一种用于在程序中进行输入和输出操作的重要工具 流可以将数据从一个地方传输到另一个地方 例如从文件读取数据或将数据写入文件 在Java中 流被广泛用于处理输入和输出 以及进行网络通信 文件操作等
  • Python副业兼职,月赚7800元,一天只要两小时 !

    现在学习python的人越来越多了 跟大家聊聊如何利用python搞副业赚钱 想要利用 Python 赚钱的方式还是比较多的 其中接单和投稿算是两种比较简单的方式了 如果你是业余学python爬虫 可以去淘宝上加了找了几个店铺直接问需要爬虫
  • 编译报错:TypeError: Cannot read property ‘styles‘ of undefined at Object.loader

    编译报错 TypeError Cannot read property styles of undefined at Object loader 如下图 因为我的vue loader的版本是17以上 太高了 需要降到15的版本 我重新下的版
  • vue 异步加载远程组件(支持编译less语法)

    本代码已组件化 可以直接使用 说明 本组件可以直接解析 vue文件 为了支持less语法解析 在组件中引入less js 可在less官网下载 组件代码
  • 戴尔r510服务器不显示,戴尔 服务器dell R510 与 dell R710 对比

    戴尔台式机DELL服务器R510与R710的区别 戴尔台式机DELL服务器R510和R710有好多相同之处 1 都是2U服务器 2 都是双CPU服务器 3 所用CPU都是INTEL5500系列CPU 4 所用内存也是同样型号 R410 R5
  • PTA(Basic Level) 1094 谷歌的招聘

    2004 年 7 月 谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌 如下图 用于招聘 内容超级简单 就是一个以 com 结尾的网址 而前面的网址是一个 10 位素数 这个素数是自然常数 e 中最早出现的 10 位连续数字 能找出这个
  • 【点云】Large-scale Point Cloud Semantic Segmentation with Superpoint Graphs

    目录 1 摘要 2 介绍 3 方法 3 1 基于全局能量的集合分割 3 2 建立超点图 3 3 嵌入超点 3 4上下文分割 1 摘要 我们提出一个基于深度学习的框架 来解决大规模点云的语义分割问题 我们认为点云的组织形式可以被SPG Sup
  • 简单了解单点登录及实现方案

    代码演示基于springboot 一 单应用单节点登录认证 任何一个应用系统都离不开登录认证过程 实现登录认证主要目的是对系统的权限管理 在单应用单节点下常用做法通常采用session认证机制 其主要流程如下 客户端访问登录接口 传递用户名
  • i219-v不支持服务器,网络适配器中找不到Intel(R) Ethernet Connection I219-V该怎么解决?在虚拟机配...

    是因为网络适配器权限问题 1 打开网络连接 如下图 2 打开本地连接的属性 选择高级菜单 并将Internet连接共享的勾都打上 3 然后选择无线网卡进行专用网络连接 4 设置之后 您可以看到本地连接有一个手形图标 表明它是一个共版享状态
  • 三极管饱和及深度饱和状态的理解和判断!

    三极管饱和问题总结 1 在实际工作中 常用Ib V R作为判断临界饱和的条件 根据Ib V R算出的Ib值 只是使晶体管进入了初始饱和状态 实际上应该取该值的数倍以上 才能达到真正的饱和 倍数越大 饱和程度就越深 2 集电极电阻 越大越容易
  • 单选按钮input[type=radio],加上disabled后按钮颜色失效,始终默认为灰色

    在前端使用单选按钮input type radio 时 渲染后台数据时将单选按钮设为不可修改 给input加上disabled后 按钮颜色变灰 且通过css修改样式也无法改变 通过百度尝试了类似以下方式的几种修改css样式的常用办法解决 但
  • 【Android学习】导入别人的Android项目到AS中

    更新 最好直接导入 有错误再根据对应错误修改 学习阶段 下载学习他人的项目是必不可少的一步 但是新手又常常会遇到各种奇葩的问题 问题不可怕 可怕是自己退缩 总结下自己的一些经验 望对后来的你有所帮助 一 快速更改 在移植别人项目之前 最好先
  • 华为机试题69-矩阵乘法

    描述 如果A是个x行y列的矩阵 B是个y行z列的矩阵 把A和B相乘 其结果将是另一个x行z列的矩阵C 矩阵的大小不超过100 100 输入描述 第一行包含一个正整数x 代表第一个矩阵的行数 第二行包含一个正整数y 代表第一个矩阵的列数和第二
  • 20210220--CTF小笔记之常见的md5碰撞

    欢迎大家一起来Hacking水友攻防实验室学习 渗透测试 代码审计 免杀逆向 实战分享 靶场靶机 求关注 0e开头的md5和原值 QNKCDZO 0e830400451993494058024219903391 s878926199a 0e
  • 小程序内嵌webview实现支付

    点击上方 青年码农 关注 回复 特效源码 可获取各种资料 目前的一个小程序项目需要把客户之前的h5页面嵌入到现在的小程序中 并且之前的支付功能要正常 小程序提供了webview开放能力供我们使用 但是不允许在webview直接调起微信支付
  • 重载的分析

    前言 在c 中 出现重载的概念 其实就是一个高级语言的象征 他的出现就是机器语言更加的自然化 他其实可以理解位我们自然语言中的动词 它可以和不同的名词起到不同的功能 重载 定义 用一个相同的函数名来定义不同的函数 重载的条件 参数的个数不同
  • CMSIS-RTOS的信号量使用备忘

    说明 因为要使用CMSIS RTOS的信号量 所以需要了解以下几点功能 1 接收信号量时 返回值的意思 2 接收信号量时 如果信号量容器不只为一 那么是否可以再次接收到 3 发送信号量是否有限制 带着以上问题做了一个测试程序 例一 程序代码
  • strace ltrace记录

    strace 安装 常用选项 报错 strace trace system calls and signals ltrace A library call tracer 安装 首次使用可能出现这个提示 就是没安装 yum y install
  • ubuntu 远程服务器文件与本地文件互传

    放在这里自学 cite https blog csdn net Iv zzy article details 109412198 1 从服务器下载文件到本地 scp r 远程服务器用户名 远程IP 需要下载的文件路径 本地存放文件路径 2
  • 金融分析与风险管理——资本资产定价模型

    金融分析与风险管理 资本资产定价模型 1 系统性风险与非系统性风险 2 资本资产定价模型 1 系统性风险与非系统性风险 在理论上 股票面临的风险可以抽象的划分为系统性风险与非系统性风险 系统性风险 不可分散风险 也称市场风险 通常是由于公司