Python金融大数据分析——第11章 统计学(1)正态性检验 笔记第11章 统计学

本文介绍了金融大数据分析中正态性检验的重要性,特别是在投资组合理论、资本性资产定价模型、有效市场假设和期权定价理论中的应用。讨论了正态分布作为金融学主要统计学基础的原因,并通过基准案例展示了正态对数收益率和正态价值的概念。
摘要由CSDN通过智能技术生成
  • 第11章 统计学
    • 11.1 正态性检验
      • 11.1.1 基准案例
      • 11.1.2 现实世界的数据

第11章 统计学

11.1 正态性检验

可以说 , 正态分布是金融学中最重要的分布 , 也是金融理论的主要统计学基础之一。尤其是下面这些金融理论基础 , 在很大程度上依赖于股票市场收益的正态分布。

投资组合理论
当股票收益呈正态分布时,最优化投资组合可以在这样的环境中选择:
只有平均收益和收益的方差(或者波动率)以及不同股票之间的协方差与投资决策(即最优化投资组合构成)相关。

资本性资产定价模型
同样. 当股票收益呈正态分布时 , 单独证券的价格可以很好地以和某种大规模市场指数的关系表示:这种关系通常用单一股票与市场指数的联动指标( β β
)表示。

有效市场假设
有效市场指的是价格反映所有可用信息的市场 , 其中的 “所有”可以是挟义的 ,也可以是广义的(例如 “所有公开信息”或者同时包括 “只为个人所有 ”
的信息);如果这个假设成立 , 股票价格波动将是随机的,而收益呈正态分布。

期权定价理论
布朗运动是随机股票(和其他证券)价格变动的标准、 基准模型:著名的 Black-Scholes-Merton
期权定价公式使用几何布朗运动作为股票在一段时间内随机波动的模型,这种波动造成收益呈正态分布。

上述的理论只是支持金融学中正态性假设重要性的一部分原因。

11.1.1 基准案例

几何布朗运动中的路径特性:

正态对数收益率
在两点之间的对数收益率 l o g S t S s = l o g S t − l o g S s ( 0 <
s < t ) l o g S t S s = l o g S t − l o g S s ( 0 < s < t )

对数-正太价值
在任何时点 t>0 , 价值 S_t 呈正态分布

    import numpy as np
    import scipy.stats as scs
    import statsmodels.api as sm
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    np.random.seed(1000)
    
    
    # 为几何布朗运动生成蒙特卡洛路径
    def gen_paths(S0, r, sigma, T, M, I):
        """
        Generates Monte Carlo paths for geometric Brownian motion.
        :param S0: initial stock/index value
        :param r: constant short rate
        :param sigma: constant volatility
        :param T: final time horizon
        :param M: number of time steps/intervals
        :param I: number of paths to be simulated
        :return:ndarray,shape(M+1,I)
        simulated paths given the parameters
        """
        dt = float(T) / M
        paths = np.zeros((M + 1, I), np.float64)
        paths[0] = S0
        for t in range(1, M + 1):
            rand = np.random.standard_normal(I)
            rand = (rand - rand.meand()) / rand.std()
            paths[t] = paths[t - 1] * np.exp((r - 0.5 * sigma ** 2) * dt + sigma * np.sqrt(dt) * rand)
        return paths
[/code]

下面是蒙特卡洛模拟的一种可能的参数化, 和 gen_paths 函数相结合, 生成25万条路径,每条有 50 个时间步:

```code
    S0 = 100.
    r = 0.05
    sigma = 0.2
    T = 1.0
    M = 50
    I = 250000
    paths = gen_paths(S0, r, sigma, T, M, I)
    
    # 展示前10条模拟路径:
    plt.plot(paths[:, :10])
    plt.grid(True)
    plt.xlabel('time steps')
    plt.ylabel('index level')
[/code]

几何布朗运动的10条模拟路程  
![几何布朗运动的10条模拟路程](https://img-
blog.csdn.net/20180708074435798?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjAxODI1OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

我们主要感兴趣的是对数收益率的分布。

```code
    # 成一个包含所有对数收益率的ndaray对象
    log_returns = np.log(paths[1:] / paths[0:-1])
    # 考虑50个时间步上的第一条模拟路径
    paths[:, 0].round(4)
    # array([ 100.    ,  100.7527,  108.5193,  108.258 ,  102.0603,  102.2424,
    #         104.9457,  108.018 ,  109.4967,  111.2178,  110.6562,  108.7809,
    #         103.3086,  104.2923,  104.8908,  112.0843,  112.0133,  115.4933,
    #         115.5401,  115.0547,  117.1103,  112.3911,  115.136 ,  115.2618,
    #         118.937 ,  117.607 ,  116.4971,  118.4645,  119.9851,  120.5452,
    #         113.0165,  112.4183,  107.3345,  110.4752,  108.1386,  107.5009,
    #         106.6545,  110.8543,  107.9486,  111.291 ,  1
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值