百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

量化投资中用到的基础数学概念及用法

toyiye 2024-06-21 12:15 16 浏览 0 评论

下面是量化投资中最常用的数据公式和概念,都是很简单的知识点,没有需要背诵的,只要知道就可以了。

一:数学期望

在日常生活中,我们每做的一件事,都有对它的期望,这里的期望不仅仅只有结果的胜负,也可以和状态有关。

但在数学中,一般指的就是达到结果的期望,最简单的计算是每次可能结果的概率乘以其结果的总和。

数学期望(Expected Value),也叫做均值或期望值,是概率论中一个重要的概念,表示随机变量在一系列可能结果中的

加权平均值。它是一个理论值,用于衡量在大量重复实现或观测中随机变量的平均表现。数学期望可以应用于离散型

和连续型随机变量。

期望 = SUM(事件发生的结果 * 事件发生的概率)

举例:一个人射箭,一共射了5次,分别是10环,8环,8环,7环,5环。

数学期望就是10*0.2 + 8*0.2 + 8*0.2 + 7*0.2 + 5*0.2

期望在金融领域的应用:

期望收益:

在投资组合管理中,期望收益是衡量投资组合预期表现的关键指标。通过计算各种资产的预期收益率和权重,

投资者可以了解投资组合的预期收益。期望收益可以帮助投资者根据风险偏好,投资目标和事件范围来选择合适

的投资组合。

风险度量:

期望在计算风险度量指标,如标准差,价值在险等时也起到关键作用。这些度量指标可以帮助投资者评估投资组合的

风险程度,从而制定相应的风险管理策略。

期权定价:

期望在期权定价模型中扮演者重要角色。期权定价模型需要计算标的资产在到期日的预期价格分布,以估算期权的合理价格。

期望在这一过程中用于计算预期收益率和波动率等参数。


二:方差

方差是衡量数据分布离散程度的统计量,用于表示数据集中各数据值与其平均值之间的差异程度。方差可以帮助我们了解数据的

波动性和不稳定性。方差值越大,波动越大,越不稳定。值越小,波动越小,越稳定。

方差(X) = SUM((X - X.MEAN())**2) / N

在python中numpy.ndarray.var()使用方法:

import numpy as np
a = [5, 6, 12, 9]
var = np.var(a)
print(var)


三:标准差

标准差是一个用来衡量一组数据的离散程度(即数据分布的集中或分散程度)的统计指标。

它是方差的平方根,标准差可以帮助我们了解数据的波动性和不确定性。

标准差越大,波动越大,越不稳定。标准差越小,波动越小,越稳定。

标准差 = sqrt(方差)

在python中numpy.ndarray.std()的使用方法:

import numpy as np
b = [2,4,6,8]
std = np.std(b)
print(std)


四:协方差

协方差(Covariance)是一种衡量两个随机变量之间线性相关性的统计量。如果两个变量的协方差为正值,那么他们在很大程度上是正相关的,

即一个变量增加时,另一个变量也倾向于增加。如果协方差为负值,则表示两个变量大致呈现负相关,即一个变量增加时,另一个变量倾向于减少。

如果协方差接近于零,则表示两个变量之间的相关性较弱。

协方差(x, y) = 期望((X - 期望(x)) * (Y - (期望(y))))

协方差(x, y) = sum(X - x.mean) * (Y - y.mean)) / n-1


五:相关系数

相关系数是一个统计指标,用于衡量两个变量之间的线性关系强度。其数值范围在-1到1之间。相关系数的绝对值越接近1,表示两个变量之间的线性关系越强;

相关系数为0表示两个变量之间没有线性关系;正值表示正相关,即一个变量增加时,另一个变量也增加;负值表示负相关,即一个变量增加时,另一个变量

减少;

Corr(x,y) = cov(x,y) / (std(x) * std(y))

相关系数是量化投资中用的非常多的,比如因子挖掘的时候。所以,我们重点介绍一下相关系数:

df.corr(method='')

注意:

一:

df.corr(method='spearman')

括号内的method有两个参数可选,一个是method='spearman'

spearman 秩相关系数(斯皮尔曼相关系数):皮尔森相关系数主要用于服从正态分布的连续变量,不服从正态分布的变量,分类的关联性可采用spearman

秩相关系数,也称等级相关系数。

spearman系数和pearson系数在效率上等价.

输出范围为-1到+1,0代表无相关性,负值为负相关,正值为正相关。

0<|r|<1表示存在不同程度线性相关。

|r|<=0.3:不存在线性相关

0.3<|r|<=0.5:低度线性相关

0.5<|r|<=0.8:显著线性相关

|r|>0.8:高度线性相关

二:

df.corr(method='pearson')

括号内的method有两个参数可选,第二个是method='pearson'

皮尔森相关系数也称皮尔森积矩相关系数,是一种线性相关系数。

衡量向量相似度的一种方法。

输出范围为-1到+1,0代表无相关性,负值为负相关,正值为正相关。

0<|r|<1表示存在不同程度线性相关。

|r|<=0.3:不存在线性相关

0.3<|r|<=0.5:低度线性相关

0.5<|r|<=0.8:显著线性相关

|r|>0.8:高度线性相关

前提条件:正态分布。做皮尔森之前要先检验两组数据是不是正态分布。

总结:在使用df.corr()做相关系数之前,要先判断两组数据是不是服从正态分布,服从正态分布,使用method='pearson'。不服从正态分布的,使用method='spearman'

三:

K-S检验是否服从正态分布

那么怎么检验两组数据是不是服从正态分布呢?

原假设:数据符合正态分布

kstest(rvs, cdf, args=(), N=20, alternative='two_sided', mode='approx', **kwds)

对于正态性检验,我们只需要手动设置三个参数即可:

rvs:待检验的一组一维数据

cdf:检验方法,例如'norm','expon','rayleigh','gamma',这里我们设置为'norm',即正态性检验

alternative:默认为双尾检验,可以设置为'less'或'greater'作单尾检验

model:'approx'(默认),使用检验统计量的精确分布的近视值,

'asymp':使用检验统计量的渐进分布

'''输出结果中第一个为统计量,第二个为P值(注:统计量越接近0就越表明数据和标准正态分布拟合的越好,

如果P值大于显著性水平,通常是0.05,接受原假设,则判断样本的总体服从正态分布)'''

stats.kstest(a, 'norm')

举例:

'''
直接用算法做KS检验

'''
# scipy 包是一个高级的科学计算库,它和numpy联系很密切,scipy一般都是操控numpy数组来进行科学计算
from scipy import stats

# 样本数据,35位男士的血糖浓度,和楼上的数据一样的。
data = [87, 77, 92, 68,80,78, 84, 77, 81, 80, 80, 77, 92,86, 76, 80, 81, 75, 77, 72, 81, 72, 84, 86, 80, 68, 77, 87, 76, 77, 78, 92, 75, 80, 78]

df = pd.DataFrame(data, columns = ['value'])
u = df['value'].mean()
std = df['value'].std()

stats.kstest(df['value'], 'norm', (u, std))


六:概率分布

概率分布是一个描述随机变量可能取值及其对应概率的数学表达。它是概率论和统计学中的基本概念,用于量化不确定性和随机性。

# 求样本的偏度
df.skew() 
# 求样本的峰度
df.kurt()

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码