精华内容
下载资源
问答
  • var方差(var和方差的区别)

    千次阅读 2021-01-27 19:08:43
    是方差:Variance : 字头 Var标准差:Standard Deviationvar(X)var(a)怎么计算呀?var(a) = E{a-E(a)}2 ------ 随机变量的方差英文:varance随机变量方差的几何意义是什么?物理意义是什么?二阶中心距,,也叫作...

    是方差:Variance : 字头 Var标准差:Standard Deviation

    var(X)

    var(a)怎么计算呀?

    var(a) = E{a-E(a)}2 ------ 随机变量的方差英文:varance随机变量方差的几何意义是什么?物理意义是什么?二阶中心距,,也叫作方差,它告诉我们一个随机变量在它均.

    是时间序列的var模型还是面板数据的var模型啊时间序列先根据最优滞后阶数做VAR后就可以做脉冲响应和方差分解啦

    variance是总体的方差;而stddev是抽样的样本计算得到的方差。后者是前者的估计。

    Var(lnRR)=1/a+1/b+1/c+1/d 中的Var是什么意思 是方差的意思吗 是有关统计.

    你好!var(x)表示随机变量x的方差。经济数学团队帮你解答,请及时采纳。谢谢!

    Var 英文全称为Variance 汉语翻译 【方差】 解释请见百度百科 方差是各个数据与平均数之差的平方的平均数。在概率论和数理统计中,方差(英文Variance)用来度量随.

    我指的是数学上的,比如Var(a)是表示关于a的什么… 我知道了,是方差的意。

    计算机语言中的var:Pascal: VAR 在Pascal 作为程序的保留字,用于定义变量。 如:var a:integer;(定义变量a,类型为整数) var u:array1.。100of integer;(定义数组u.

    假定X1,X2,。,Xn为来自总体的重置简单随机样本,总体均值为μ、方差σ^2,Xˉ。

    首先有结论:当诸Xi相互独立时,Var(∑Xi)=∑Var(Xi),证明的话用协方差 Var(∑Xi)=Cov(∑Xi,∑Xi)=∑Cov(Xi,Xj)=∑Var(Xi) 然后可得到:Var(1/n·∑Xi) =Cov(1/n·∑.

    中位数就是频率分布直方图面积的一半所对应的值众数就是频率最高的中间值平均数则是每组频率的中间值乘频数再相加

    在matlab里面关于var函数的一段程序及结果: >> %ex1104.m 计算x的方差和。

    这个你具体打开help,分别搜var和std函数就行了,help里边说的很明白很详细,一看就懂。我这里稍微做一下解释:v1=var(x) V = var(X) returns the variance of X for .

    X的方差,记为D(X),Var(X)或DX

    VAR:计算基于给定样本的方差。函数 VAR 假设其参数是样本总体中的一个样本。VARA:计算基于给定样本的方差。不仅数字,文本值和逻辑值(如 TRUE 和 FALSE).

    对了,这两个等式的前提是,X,Y都是独立随机变量。为什么有这两个等式呢.

    你好!用excel检验了下这个公式,发现时不正确的。方差表示离开均值的幅度,想加之后很有可能因为正负方向抵消,导致方差小于二者之后,方差求的是平方数会扩大这.

    没有区别,相等的。两种表达方式。

    已经做出了模型,接下来需要用标准差来计算VaR了,但是我做了预测之后的.

    var的参数方法需要你计算方差,你可以用garch类模型来做。

    尺寸公差:最大极限尺寸=公称尺寸+上偏差最小极限尺寸=公称尺寸+下偏差尺寸公差简称公差,是指最大极限尺寸减最小极限尺寸之差的绝对值,或上偏差减下偏差之差。.

    在excel中使用函数,不知道var和varp都是求方差,但是区别是什么呢?

    var计算基于给定样本的方差.varp计算基于整个样本总体的方差

    求助,期望=0,方差=1,的计算过程。谢谢

    成功次数是随机变量x,x服从二项分布(100,p) x的期望是:ex=100p x的方差是:根号dx=根号[100p(1-p)] 因为p(1-p)所以当p=0.5时,成功次数的标准差最大,最大为5

    var(XY) = var(X)*varYy)+E(X)^2*var(Y)+E(Y)^2*var(X)

    展开全文
  • 1、公式不同var:来计算总体的一个抽样的方差,公式为 sum(( x_i - ave)^2) / ( n-1 );varp:来计算整个总体的方差,它的参数是全部的数据总体, 公式为 sum(( x_i - ave)^2)/ n2、数值上不同在数值上来看, Var是...

    1、公式不同

    var:来计算总体的一个抽样的方差,公式为 sum(( x_i - ave)^2) / ( n-1 );varp:来计算整个总体的方差,它的参数是全部的数据总体, 公式为 sum(( x_i - ave)^2)/ n

    2、数值上不同

    在数值上来看, Var是除以总数n的结果, 而varp是除以n-1的结果。

    3、定义不同

    var被称为随机量的方差, varp被称为样本方差。样本方差的数学期望等于随机量的方差。 前者是随机变量的属性, 但是这个属性有的时候很难精确测定, 于是就通过计算后者来估计。后者是前者的无偏估计量。

    b77e9320ac0cbd3ad8530866d0c04cfc.png

    扩展资料:

    Excel最常用的公式运算技巧总结

    1、查找重复公式:=IF(COUNTIF(A:AA2)>1”重复””")。

    2、用出生年月来计算年龄公式:=TRUNC((DAYS360(H6”

    2009/8/30″FALSE))/3600)。

    3、从输入的18位身份证号的出生年月计算公式:=CONCATENATE(MID(E274)”/”

    MID(E2112)”/”MID(E2132))。

    4、求和: =SUM(K2:K56) ——对K2到K56这一区域进行求和;

    5、平均数: =AVERAGE(K2:K56) ——对K2 K56这一区域求平均数;

    6、排名: =RANK(K2,K$2:K$56) ——对55名学生的成绩进行排名;

    7、等级: =IF(K2>=85”优”IF(K2>=74”良”IF(K2>=60”及格””不及格”)))

    参考资料来源:百度百科-excel函数

    展开全文
  • tushare ID:432833 边际VaR值和成分VaR值定义 VaR:Value at Risks,在险价值,是指未来一段特定的时间内,在市场正常波动的情况下,某一金融资产或投资组合在给定置信水平下可能遭受的最大损失。 (注意:在风险...

    tushare ID:432833

    边际VaR值和成分VaR值定义

    VaR:Value at Risks,在险价值,是指未来一段特定的时间内,在市场正常波动的情况下,某一金融资产或投资组合在给定置信水平下可能遭受的最大损失。
    (注意:在风险管理的现实中,VaR是损失金额,不是损失率/收益率。eg. 某个投资组合在99%的置信水平下的VaR值为1000万美元。)

    边际VaR:边际VaR衡量的是对投资组合中的资产i增加1(美元)的敞口所引起的投资组合VaR值的变化值。

    成分VaR:成分VaR近似等于若该成分被完全剔除掉,投资组合VaR的变化量。可以证明,所有成分VaR的加总等于投资组合的VaR值。

    数据获取

    import tushare as ts
    code_list1 = ['000012','601318','600016','159934']
    #南玻A 中国平安 民生银行 易方达黄金ETF
    for code in code_list1:
        df = ts.get_k_data(code,start='2018-01-01',end='2021-03-18')
        df.to_csv('.../k_data/' + code + '.csv')
    

    下载好的数据长这样:
    用ts.get_k_data获取的原始数据
    Tushare数据接口的具体使用方法可参考接口文档

    数据预处理

    import pandas as pd
    StockPrices = pd.DataFrame()
    ticker_list = ['000012','601318','600016','159934']
    #ticker_list投资组合的成分
    for ticker in ticker_list:
        stock_data = pd.read_csv('.../k_data/' + ticker + '.csv', parse_dates=[1], index_col=1)
        stock_data = stock_data.sort_values(by='date')
        StockPrices[ticker] = stock_data['close']
    StockPrices.index.name = 'date'
    print(StockPrices.head())
    

    只保留收盘价

    import numpy as np
    StockReturns = np.log(StockPrices / StockPrices.shift(1))
    #计算对数收益率
    StockReturns.dropna(inplace=True)
    #丢弃缺失值(第一天)
    StockReturns.head()
    stock_return = StockReturns.copy()
    StockReturns.plot(subplots=True, figsize=(10, 8))
    

    对数收益率波动曲线

    构建投资组合

    portfolio_weights = np.array([0.25, 0.25, 0.25, 0.25])
    #设置投资组合权重
    WeightedReturns = stock_return.mul(portfolio_weights, axis=1)
    # 计算投资组合的收益
    StockReturns['Portfolio'] = WeightedReturns.sum(axis=1)
    

    正态性检验和ARCH效应检验

    import matplotlib.pyplot as plt
    #正态性检验——直方图
    s = StockReturns['Portfolio']
    fig = plt.figure(figsize = (8,4))
    ax = fig.add_subplot()  # 创建子图2
    s.hist(bins=40,alpha = 0.5,ax = ax)
    s.plot(kind = 'kde', secondary_y=True, ax = ax)
    plt.grid()
    

    投资组合对数收益率直方图

    from scipy import stats
    #正态性检验——QQ图
    stats.probplot(StockReturns['Portfolio'], dist="norm", plot=plt)
    plt.show()
    

    投资组合对数收益率QQ图

    from scipy.stats import kstest
    #正态性检验——KS检验
    u = StockReturns['Portfolio'].mean()
    std = StockReturns['Portfolio'].std()
    kstest(StockReturns['Portfolio'], 'norm',(u,std))
    
    from scipy.stats import kstest
    #ARCH效应检验——LB检验
    u = StockReturns['Portfolio'].mean()
    std = StockReturns['Portfolio'].std()
    kstest(StockReturns['Portfolio'], 'norm',(u,std))
    

    从检验结果看,投资组合收益率基本服从正态分布,且存在ARCH效应。

    用均值方差法计算投资组合VaR值

    from scipy.stats import norm
    conf_level1 = 0.01 #选择置信度为99%
    initial_investment = 1000000 #初始投资是100万
    cov_matrix = stock_return.cov() #协方差矩阵
    avg_rets = stock_return.mean()
    port_mean = avg_rets.dot(portfolio_weights) #投资组合的均值
    port_stdev = np.sqrt(portfolio_weights.T.dot(cov_matrix).dot(portfolio_weights)) #投资组合方差
    mean_investment = (1+port_mean) * initial_investment
    stdev_investment = initial_investment * port_stdev #投资组合方差(绝对值)
    cutoff1 = norm.ppf(conf_level1, mean_investment, stdev_investment)
    var_1d1 = initial_investment - cutoff1
    

    计算边际VaR值和成分VaR值

    list_evar = []#边际VaR
    list_cvar = []#成分VaR
    i = 0
    total_cvar = 0
    for ticker in ticker_list:
        evar = var_1d1/initial_investment * (StockReturns['Portfolio'].cov(StockReturns[ticker])/ pow(port_stdev,2))
        list_evar.append(evar)
        cvar = evar*initial_investment*portfolio_weights[i]
        list_cvar.append(cvar)
        total_cvar = cvar+total_cvar
        i = i+1
    

    打印结果如下
    边际VaR和成分VaR
    此处可见,投资组合中各资产的成分VaR值之和与之前计算得到的投资组合VaR值相等。

    展开全文
  • 金融分析与风险管理——风险价值(VaR)1. 风险价值(VaR)简述1.1 Python可视化风险价值2. VaR值的测度方法2.1 方差-协方差法2.2 历史模拟法2.3 蒙特卡洛模拟法3. 回溯检验4. 压力测试5. 压力VaR 1. 风险价值(VaR...

    1. 风险价值(VaR)简述

    风险价值(value at risk,VaR)是指在一定的持有期和给定的置信水平下,利率、汇率、股价等风险因子发生变化时可能对投资组合造成的潜在最大损失。例如:持有期 1 天、置信水平 95% 的情况下,计算得到的 VaR 值为 1000 万元,则表明该投资组合在1天中有 95%的可能性损失不会超过1000万,换句话说,1 天中,有5%的可能性损失会超过 1000 万元。

    VaR的大小取决于两个参数:持有期(N)、置信水平(X)。由于 VaR 度量的是投资组合的亏损,其对应于投资组合盈亏分布的左端尾部,为了表述方便,通常 VaR 值用绝对值表示。

    VaR 的数学表达式如下:

    P r o b ( Δ P < − V a R ) = 1 − X P r o b : 概 率 函 数 Δ P : 投 资 组 合 亏 损 金 额 X : 置 信 水 平 Prob(\Delta P < - VaR) = 1 - X \\[10pt] Prob:概率函数 \\[10pt] \Delta P:投资组合亏损金额 \\[10pt] X:置信水平 Prob(ΔP<VaR)=1XProbΔPX

    根据巴塞尔协议的明确规定:银行需要计算持有期10天、置信水平99%的VaR。在实际计算中,通常先计算 N=1 时的VaR,在计算相同置信水平下 N>1 时的 VaR,其表达式如下:

    N 天 V a R = 1 天 V a R ∗ N N天VaR = 1天VaR*\sqrt{N} NVaR=1VaRN

    上式成立的条件是:投资组合价值在不同交易日之间的变化是相互独立并服从期望值为0的相同正态分布,其他情况下,该等式只是一个近似值。

    1.1 Python可视化风险价值

    利用Python对VaR进行可视化,图中阴影部分右侧的临界值就是对应置信水平的VaR,其程序如下:

    import numpy as np
    import pandas as pd
    import scipy.stats as st
    '''
    st.norm中的子模块
    pdf:概率密度函数
    cdf:累计概率分布函数
    ppf:分位点函数,cdf的反函数
    '''
    
    import matplotlib.pyplot as plt
    
    plt.rcParams['font.sans-serif'] = ['SimHei'] #中文显示问题
    plt.rcParams['axes.unicode_minus'] = False #负数显示问题
    
    
    a = 0.95 #置信水平
    z = st.norm.ppf(q=1-a) #返回q对应的分位点
    x = np.linspace(-4,4,200) #组合的盈亏数组
    y = st.norm.pdf(x) #组合盈亏对应的概率密度数组
    x1 = np.linspace(-4,z,100) #组合最小亏损值与返回的分位点构成的盈亏数组
    y1 = st.norm.pdf(x1)
    
    plt.figure(figsize=(8,6))
    plt.plot(x,y)
    plt.fill_between(x1, y1)
    plt.grid('True')
    

    在这里插入图片描述

    2. VaR值的测度方法

    2.1 方差-协方差法

    数学假定:

    • 1 投资组合的各风险因子服从联合正态分布
    • 2 线性假定,持有期内,投资组合的风险暴露与风险因子之间是线性相关的

    其表达式如下:

    V a R = V p [ z c σ p − E ( R p ) ] E ( R p ) = ∑ w i E ( R i ) σ 2 = W c o v ( R i , R j ) W T V p : 投 资 组 合 的 最 新 价 值 z c : 显 著 性 水 平 c 对 应 的 分 位 数 绝 对 值 E ( R p ) : 投 资 组 合 的 期 望 收 益 VaR = V_p[z_c\sigma_p - E(R_p)] \\[10pt] E(R_p) = \sum w_iE(R_i) \\[10pt] \sigma^2 = Wcov(R_i,R_j)W^{T} \\[10pt] V_p:投资组合的最新价值 \\[10pt] z_c:显著性水平 c 对应的分位数绝对值 \\[10pt] E(R_p):投资组合的期望收益 \\[10pt] VaR=Vp[zcσpE(Rp)]E(Rp)=wiE(Ri)σ2=Wcov(Ri,Rj)WTVp:zccE(Rp)

    本文通过一个案例来说明如何运用方差-协方差法计算投资组合的 VaR,该投资组合有 5 个不同的资产构成,投资组合当前的市值为1亿元,其权重权重配比如下表:

    资产名称贵州茅台交通银行嘉实增强信用基金华夏恒生ETF基金博时标普500ETF基金
    权重0.150.20.50.050.1

    案例中投资组合2015年—2018年完整的数据可以通过百度网盘获取,提取码:zbbx。

    Python程序如下:

    data = pd.read_excel(r'C:\Users\Administrator\Desktop\投资组合配置的资产情况.xlsx',header = 0,index_col = 0)
    
    #初始数据的归一化处理
    R = np.log(data/data.shift(1))
    #处理缺失数据
    R = R.dropna() 
    
    R_mean = R.mean() #计算均值
    R_cov = R.cov() #计算协方差
    R_corr = R.corr() #计算相关系数
    R_vol = R.std() #计算标准差
    
    # 方差协方差方法
    def VaR_VCM(value,Rp,Vp,X,N):
        '''
        Parameters
        ----------
        value : 投资组合的价值
        Rp : 投资组合的日收益率
        Vp : 投资组合的日波动率
        X : 置信水平
        N : 持有天数
        
        '''
        import scipy.stats as st
        import numpy as np
        
        z = np.abs(st.norm.ppf(q=1-X))
        
        return np.sqrt(N)*value*(z*Vp-Rp)
    
    weights = np.array([0.15,0.20,0.5,0.05,0.1])
    #计算投资组合的期望收益率
    Rp_daily = np.sum(weights*R_mean)
    #计算投资组合的日波动率
    Vp_daily = np.sqrt(np.dot(weights,np.dot(R_cov,weights.T)))
    
    print('投资组合日收益率:',Rp_daily)
    print('投资组合日波动率:',Vp_daily)
    
    D1 = 1
    D2 = 10
    X1 = 0.99
    X2 = 0.95
    value_port = 100000000
    
    VaR99_1day_VCM = VaR_VCM(value=value_port, Rp=Rp_daily, Vp=Vp_daily, X=X1, N=D1)
    VaR99_10day_VCM = VaR_VCM(value=value_port, Rp=Rp_daily, Vp=Vp_daily, X=X1, N=D2)
    VaR95_1day_VCM = VaR_VCM(value=value_port, Rp=Rp_daily, Vp=Vp_daily, X=X2, N=D1)
    VaR95_10day_VCM = VaR_VCM(value=value_port, Rp=Rp_daily, Vp=Vp_daily, X=X2, N=D2)
    
    print('1天、99%的VaR:',VaR99_1day_VCM)
    print('10天、99%的VaR:',VaR99_10day_VCM)  
    print('1天、95%的VaR:',VaR95_1day_VCM)
    print('10天、99%的VaR:',VaR95_10day_VCM)  
    

    计算结果表明:持有期10天、置信水平99%的VaR=464.34万;持有期10天、置信水平95%的VaR=325.83万。

    2.2 历史模拟法

    历史模拟法:从当前回溯一定时期投资组合的历史盈亏,并把历史盈亏按照由大到小的顺序排列,从中找出符合给定置信水平的盈亏值。例如:1天、置信水平95%的VaR,把历史盈亏由大到小排列,VaR为95%的位置对应盈亏值的绝对值,或者由小到大排列,VaR为5%位置对应盈亏值的绝对值。

    本文仍然使用上述案例数据进行说明,其Python程序如下:

    #各资产配置
    value_asset = value_port*weights
    #历史交易日投资组合的盈亏值
    Return_history = np.dot(R,value_asset)
    Return_history = pd.DataFrame(Return_history,index=R.index,columns=['投资组合模拟日收益'])
    
    #盈亏数据描述
    Return_history.describe()
    Return_history.plot()
    
    #盈亏数据分布直方图
    plt.hist(Return_history,bins=30)
    plt.grid('True')
    
    #投资组合盈亏值的正态性检验
    #KS检验,返回统计量及P值
    st.kstest(rvs=Return_history['投资组合模拟日收益'], cdf='norm')   
    #AD检验,返回统计量、显著性水平对应的临界值(统计量)、显著性水平
    st.anderson(x=Return_history['投资组合模拟日收益'], dist='norm')   
    #返回统计量及P值
    st.shapiro(Return_history['投资组合模拟日收益'])   
    #返回统计量及P值
    st.normaltest(Return_history['投资组合模拟日收益'])   
    

    在这里插入图片描述
    由频数分布直方图、正态性检验的P值(P<1%)结果可知,投资组合的日收益数据不服从正态分布,运用方差—协方差方法计算的投资组合VaR值会存在偏差。使用历史模拟法的计算程序如下:

    #计算历史模拟的VaR
    VaR99_1day_history = np.abs(np.percentile(a=Return_history['投资组合模拟日收益'],q=(1-X1)*100))
    VaR95_1day_history = np.abs(np.percentile(a=Return_history['投资组合模拟日收益'],q=(1-X2)*100))
    
    VaR99_10day_history = np.sqrt(10)*VaR99_1day_history
    VaR95_10day_history = np.sqrt(10)*VaR95_1day_history
    
    print('1天、99%的VaR:',VaR99_1day_history)
    print('10天、99%的VaR:',VaR99_10day_history)  
    print('1天、95%的VaR:',VaR95_1day_history)
    print('10天、99%的VaR:',VaR95_10day_history)  
    

    计算结果表明:持有期10天、置信水平99%的VaR=675.38万;持有期10天、置信水平95%的VaR=274.21万。

    2.3 蒙特卡洛模拟法

    蒙特卡洛模拟法又称随机抽样或统计试验方法,即从一个给定的分布中,随机抽取随机数并进行计算,该方法能较好地逼近实际分布情况。

    在投资组合的模拟抽样步骤如下:

    • 1 利用第 i i i 个资产的当前价值(最新价值) S i S_i Si 加总计算投资组合的当前价值 S p S_p Sp
    • 2 在第 i i i 个资产价值的日百分比变化 X i X_i Xi 所服从的分布中进行一次抽样得到 x i x_i xi
    • 3 利用抽样获取的 x i x_i xi 计算第 i i i 个资产下一个交易日的收益金额变动 x i S i x_iS_i xiSi
    • 4 计算本次抽样获取的下一交易日投资组合的盈亏 Δ S p = ∑ x i S i \Delta S_p = \sum x_iS_i ΔSp=xiSi
    • 5 重复上述第2-4步,并将获取的 Δ S p \Delta S_p ΔSp按大小顺序排列,从而构建投资组合在下一交易日的盈亏概率分布。
    • 6 计算持有期 1 天、置信水平 X 的 VaR 值,然后计算 N 天 的 V a R N天的VaR NVaR(公式: N 天 V a R = 1 天 V a R ∗ N N天VaR = 1天VaR*\sqrt{N} NVaR=1VaRN

    本文仍然使用上述案例数据进行说明,在模拟过程中,需要用到金融资产价格服从的随机过程公式,即

    S t = S t − Δ t e ( μ − 1 2 σ 2 ) Δ t + σ ε t Δ t S_t = S_{t-\Delta t}e^{(\mu-\frac{1}{2}\sigma^2)\Delta t + \sigma \varepsilon_t\sqrt{\Delta t}} St=StΔte(μ21σ2)Δt+σεtΔt

    上式中 ε t \varepsilon_t εt 的模拟过程中假定服从 t t t 分布或者正态分布。

    其服从 t t t 分布的 Python 程序如下:

    #蒙特卡洛模拟法
    import numpy.random as npr 
    I = 10000 #模拟次数
    #从学生t分布进行I次模拟
    epsilon = npr.standard_t(df=len(R),size=I)
    
    #获取最新收盘价
    S1 = data.iloc[-1,0]  #第一个资产的最新价格
    S2 = data.iloc[-1,1]  
    S3 = data.iloc[-1,2]  
    S4 = data.iloc[-1,3]  
    S5 = data.iloc[-1,4]  
    
    R_mean = R.mean()*252 #投资组合各资产的年化收益
    R_vol = R.std()*np.sqrt(252) #投资组合各资产的年化波动率
    dt = 1/252 #年化单个交易日
    
    #模拟投资组合下一个交易日各资产的收盘价
    S1_new = S1*np.exp((R_mean[0]-0.5*R_vol[0]**2)*dt + R_vol[0]*epsilon*np.sqrt(dt))
    S2_new = S2*np.exp((R_mean[1]-0.5*R_vol[1]**2)*dt + R_vol[1]*epsilon*np.sqrt(dt))
    S3_new = S3*np.exp((R_mean[2]-0.5*R_vol[2]**2)*dt + R_vol[2]*epsilon*np.sqrt(dt))
    S4_new = S4*np.exp((R_mean[3]-0.5*R_vol[3]**2)*dt + R_vol[3]*epsilon*np.sqrt(dt))
    S5_new = S5*np.exp((R_mean[4]-0.5*R_vol[4]**2)*dt + R_vol[4]*epsilon*np.sqrt(dt))
    
    #模拟投资组合下一个交易日各资产的盈亏
    S1_delta = (S1_new/S1 - 1)*value_port*weights[0]
    S2_delta = (S2_new/S2 - 1)*value_port*weights[1]
    S3_delta = (S3_new/S3 - 1)*value_port*weights[2]
    S4_delta = (S4_new/S4 - 1)*value_port*weights[3]
    S5_delta = (S5_new/S5 - 1)*value_port*weights[4]
    #计算投资组合下一个交易日的盈亏
    Sp_delta = S1_delta + S2_delta + S3_delta + S4_delta + S5_delta
    
    #下一交易日投资组合盈亏的可视化
    plt.figure(figsize=(10,8))
    plt.hist(Sp_delta,bins=30)
    plt.ylabel('频数')
    plt.grid(True)
    
    #蒙特卡洛模拟法计算VaR
    VaR99_1day_MS = np.abs(np.percentile(a=Sp_delta,q=(1-X1)*100))    
    VaR95_1day_MS = np.abs(np.percentile(a=Sp_delta,q=(1-X2)*100))
    
    VaR99_10day_MS = np.sqrt(10)*VaR99_1day_MS
    VaR95_10day_MS = np.sqrt(10)*VaR95_1day_MS
    
    #由于抽样随机数的原因,结果可能会有不同
    print('1天、99%的VaR:',VaR99_1day_MS)
    print('10天、99%的VaR:',VaR99_10day_MS)  
    print('1天、95%的VaR:',VaR95_1day_MS)
    print('10天、95%的VaR:',VaR95_10day_MS) 
    

    在这里插入图片描述
    计算结果表明:持有期10天、置信水平99%的VaR=640.81万;持有期10天、置信水平95%的VaR=436.52万。

    其服从正态分布的 Python 程序如下:

    #服从正态分布进行模拟
    epsilon_norm = npr.standard_normal(I)
    
    S_new = np.zeros(shape=(I,len(R_mean)))
    
    S1_new = S1*np.exp((R_mean[0]-0.5*R_vol[0]**2)*dt + R_vol[0]*epsilon*np.sqrt(dt))
    
    for i in range(len(R_mean)):
        S_new[:,i] = data.iloc[-1,i]*np.exp((R_mean[i]-0.5*R_vol[i]**2)*dt + R_vol[i]*epsilon_norm*np.sqrt(dt))
        
    S = np.array(data.iloc[-1])
    
    Sp_delta_norm = (np.dot(S_new/S-1,weights))*value_port
    
    
    plt.figure(figsize=(10,8))
    plt.hist(Sp_delta_norm,bins=30)
    plt.ylabel('频数')
    plt.grid(True)
    
    VaR99_1day_MSnorm = np.abs(np.percentile(a=Sp_delta_norm,q=(1-X1)*100))    
    VaR95_1day_MSnorm = np.abs(np.percentile(a=Sp_delta_norm,q=(1-X2)*100))
    
    VaR99_10day_MSnorm = np.sqrt(10)*VaR99_1day_MSnorm
    VaR95_10day_MSnorm = np.sqrt(10)*VaR95_1day_MSnorm
    
    print('1天、99%的VaR:',VaR99_1day_MSnorm)
    print('10天、99%的VaR:',VaR99_10day_MSnorm)  
    print('1天、95%的VaR:',VaR95_1day_MSnorm)
    print('10天、95%的VaR:',VaR95_10day_MSnorm) 
    

    在这里插入图片描述
    计算结果表明:持有期10天、置信水平99%的VaR=626.17万;持有期10天、置信水平95%的VaR=451.86万。

    3. 回溯检验

    回溯检验又称为后检验,即通过模型获取的VaR与实际发生的损益进行比较,以检验模型的准确性、可靠性,并据此对模型进行改进及优化。

    本文仍然使用上述案例进行说明,其Python程序如下:

    #回溯检测
    Return_2015 = Return_history.loc['2015-01-01':'2015-12-31']
    Return_2016 = Return_history.loc['2016-01-01':'2016-12-31']
    Return_2017 = Return_history.loc['2017-01-01':'2017-12-31']
    Return_2018 = Return_history.loc['2018-01-01':'2018-12-31']
    
    days_2015 = len(Return_2015)
    days_2016 = len(Return_2016)
    days_2017 = len(Return_2017)
    days_2018 = len(Return_2018)
    
    VaR_2015 = pd.DataFrame(-VaR95_1day_VCM*np.ones_like(Return_2015),index=Return_2015.index)
    VaR_2016 = pd.DataFrame(-VaR95_1day_VCM*np.ones_like(Return_2016),index=Return_2016.index)
    VaR_2017 = pd.DataFrame(-VaR95_1day_VCM*np.ones_like(Return_2017),index=Return_2017.index)
    VaR_2018 = pd.DataFrame(-VaR95_1day_VCM*np.ones_like(Return_2018),index=Return_2018.index)
    
    
    plt.figure(figsize=(9,15))
    plt.subplot(4,1,1)
    plt.plot(Return_2015)
    plt.plot(VaR_2015)
    plt.ylabel('频数')
    plt.grid(True)
    
    plt.subplot(4,1,2)
    plt.plot(Return_2016)
    plt.plot(VaR_2016)
    plt.ylabel('频数')
    plt.grid(True)
    
    plt.subplot(4,1,3)
    plt.plot(Return_2017)
    plt.plot(VaR_2017)
    plt.ylabel('频数')
    plt.grid(True)
    
    plt.subplot(4,1,4)
    plt.plot(Return_2018)
    plt.plot(VaR_2018)
    plt.ylabel('频数')
    plt.grid(True)
    
    #计算超出VaR的天数
    dayexcept_2015 = len(Return_2015[Return_2015['投资组合模拟日收益']<-VaR95_1day_VCM])
    dayexcept_2016 = len(Return_2016[Return_2016['投资组合模拟日收益']<-VaR95_1day_VCM])
    dayexcept_2017 = len(Return_2017[Return_2017['投资组合模拟日收益']<-VaR95_1day_VCM])
    dayexcept_2018 = len(Return_2018[Return_2018['投资组合模拟日收益']<-VaR95_1day_VCM])    
    
    print('2015年超出风险天数:',dayexcept_2015)
    print('2015年超出风险天数在全年的占比:',dayexcept_2015/days_2015)
    
    print('2016年超出风险天数:',dayexcept_2016)
    print('2016年超出风险天数在全年的占比:',dayexcept_2016/days_2016)
    
    print('2017年超出风险天数:',dayexcept_2017)
    print('2017年超出风险天数在全年的占比:',dayexcept_2017/days_2017)
    
    print('2018年超出风险天数:',dayexcept_2018)
    print('2018年超出风险天数在全年的占比:',dayexcept_2018/days_2018)
    

    在这里插入图片描述
    计算结果表明:2015年超出风险天数为22天,全年占比为9.05%,明显高于5%;2016年超出风险天数为9天,全年占比为3.69%;2017年超出风险天数为1天,全年占比为0.4%;2018年超出风险天数为6天,全年占比为2.47%。

    4. 压力VaR

    压力测试是一种以定量分析为主的风险分析方法,进而测算在小概率事件及极端情况下可能面临的损失。压力情景通常分为如下两种方法:头脑风暴和历史重现法。

    压力风险价值具体是指当市场变量在一定压力市场条件下通过历史模拟法计算得到的风险价值,其计算步骤与历史模拟法相同。

    本文仍然使用上述案例进行说明,2015年6月持续数月的股灾及2016年1月初的股市熔断可以看做案例数据中的极端情况。其Python程序如下:

    #压力测试
    return_stress = Return_history.loc['2015-06-15':'2016-01-07']
    
    return_stress.describe()
    
    return_zero = pd.DataFrame(np.zeros_like(return_stress),index = return_stress.index)
    
    #投资组合盈亏与0的可视化比较
    plt.figure(figsize=(8,6))
    plt.plot(return_stress)
    plt.plot(return_zero)
    plt.grid(True)
    
    
    SVaR99_1day = np.abs(np.percentile(a=return_stress,q=(1-X1)*100))    
    SVaR95_1day = np.abs(np.percentile(a=return_stress,q=(1-X2)*100)) 
    
    SVaR99_10day = np.sqrt(10)*SVaR99_1day
    SVaR95_10day = np.sqrt(10)*SVaR95_1day
    
    print('1天、99%的VaR:',SVaR99_1day)
    print('10天、99%的VaR:',SVaR99_10day)  
    print('1天、95%的VaR:',SVaR95_1day)
    print('10天、95%的VaR:',SVaR95_10day) 
    

    在这里插入图片描述
    计算结果表明:持有期10天、置信水平99%的压力VaR=1102.12万;持有期10天、置信水平95%的压力VaR=670.14万。

    展开全文
  • matlab 在险价值 VaR 的计算matlab 在险价值 VaR 的计算VaR 模型数据获取历史模拟法蒙特卡罗模拟法参数模型法代码和数据下载VaR 模型Value at Risk 在险价值,即 VaR。是指一定时期内,一定置信水平下,某种资产组合...
  • VAR模型一般几个变量

    千次阅读 2020-12-19 07:50:40
    请问关于VAR模型的滞后阶数怎么确定?滞后阶数越大,自由度就越小.一般根据AIC和SC取值最小准则来确定阶数.如果AIC和SC并不是同时取值最小,采用LR检验进行取舍.如果时序数据样本容量小,这时AIC和SC准则可能需要谨慎,...
  • VAR模型滞后阶数

    千次阅读 2021-01-29 08:55:50
    我用了三个变量,分别有1931个日数据来做var模型,但是在滞后阶数的判定上,选8阶就8阶星号多,选10阶就10星号多。一直到46阶才停止这种现象,请问46阶的话是不是散失了太多的自由度?下图是20阶LLC检验结果。 还有一...
  • Java 10中的var是什么?

    千次阅读 2021-02-26 13:04:44
    小编典典var 两种语言在概念上都有某种相似的目的,但有一些重要的区别。JavaScript是一种动态类型化的语言。变量没有类型信息。它对其包含的内容没有任何限制。它只是一个值的持有人,该值可以是任何类型。Java是一...
  • 关于tkinter StringVar()

    千次阅读 2021-03-17 02:29:21
    这里是代码:-在from tkinter import * def x(): a1.set("") a.withdraw() b.deiconify() def y(): b1.set("") b.withdraw() a.deiconify() a=Tk() a.withdraw() a1=StringVar() b1=StringVar() Entry(a,...
  • 一、知识点介绍1.1 历史模拟法我们在之前有用到Delta-Normal的GARCH和RiskMetrics方法来计算VaR和ES,假设的是残差满足正态分布,对残差进行二次相关序列的建模并拟合残差,能够得到未来的预测值。而这里说的历史...
  • 相信绝大部分人看到这个标题,肯定内心和标题是一个感受吧,什么是varVar是什么意思?怎么用?等等等,大家先别急,var不是一个生僻的函数,甚至说,这是一个会经常见到的函数,它可以跟很多函数搭配使用,甚至在...
  • Java中的var类型

    2021-12-14 23:41:16
    Java中的var是Java10版本新出的特性,用它来定义局部变量 语法: var 变量名=初始值; 1.var不是关键字,相当于一种动态类型; 2.var动态类型是编译器根据变量所赋的值来判断变量的类型; 注意事项: 1.var只能在...
  • Eviews实现var模型

    千次阅读 2021-04-22 14:50:18
    首先打开数据,进入var: 或者 调整参数: 其中: lag表示滞后阶数,判断标准为AIC和SC最小时最合适。 单位元检验,查看表和图: 当var模型所有根模的倒数都小于1,即都在单位圆内,则该模型时稳定的。 由此确定...
  • let与var的区别

    2021-08-05 13:52:28
    1.作用域不一样 var来声明变量,只有函数作用域和全局作用域,没有块级作用域,也就是说可以在代码块{}外部使用。而let可以实现块级作用域,只能在代码块 {} 内有效,在 {} 之外不能访问。 if(1==1){ let a=1 } ...
  • MATLAB中var函数,mean函数的含义及用法详细解释var函数语句我们先来看var函数,MATLAB命令窗输入help var ,可以得到用到方差函数Syntax有:V = var(X);V = var(X,1);V = var(X,w);V = var(X,w,dim);前两个针对向量...
  • idea .var不管用

    千次阅读 2021-05-23 20:59:47
    创建main函数,在main函数下使用
  • 修改.eslintrc.js文件的配置即可: module.exports = { ... rules: { ... '@typescript-eslint/no-var-requires': 0, } }
  • vue3解决no-unused-vars报错

    千次阅读 2021-06-03 21:13:50
    vue3解决no-unused-vars前言添加配置 前言 在上一节,针对 vue3配置了ESLint,此时,App.vue 和 HelloWorld.vue 报了一个 no-unused-vars 的错误。 添加配置 vue3 是尤大写的,参考下尤大的配置:.eslintrc.js { '...
  • but,对于新手来说经常会不小心删除/var/lib/mysql目录,导致重启mysql时找不到/var/lib/mysql。解决方法如下:mkdir /var/lib/mysqchown mysql:mysql /var/lib/mysqlsystemctl start mysql此时如果还是失败,并...
  • 展开全部VAR模型的滞后阶数越大,自由度就越小。一般根据AIC和SC取值最小准则来确定阶62616964757a686964616fe58685e5aeb931333431366363数。如果AIC和SC并不是同时取值最小,采用LR检验进行取舍。时序数据样本容量...
  • /var/crash目录解析

    千次阅读 2021-05-10 21:41:28
    1:生成的crash默认存放在:/var/crash中,控制存放位置的文件是:/var/sysconfig/kdump文件。想要查看crash需要先安装kdump工具,才会有kdump文件,opensuse中是默认不安装的。2:crash 目录中有四个文件分别为:...
  • 在CentOS7开始使用的systemd使用了journal日志,这个日志的管理方式和以往使用syslog的方式不同,可以通过管理工具维护。Linux log日志占用Linux使用df -h检查磁盘文件,可以看到/run目录下有日志目录/run/log/...
  • 在开始之前,请注意,标准VaR计算假定以下条件:收益的正态分布 -VaR假设投资组合的收益是正态分布。对于大多数资产而言,这当然是不现实的,但允许我们使用更为简单的计算来制定基准。(可以对VaR进行修改来说明不同...
  • 源码解析使用方式 任意类型 # 可以是任意类型 T = TypeVar('T') def test(name: T) -> T: print(name) return name test(11) test("aa") # 输出结果 11 aa 指定类型 # 可以是 int,也可以是 str 类型 AA = TypeVar('...
  • JS语句 var a1=10; var a2=20; alert(“a1+a2=”+a1+a2) 将显示( )结果答:a1+a2=1020在jquery中想要找到所有元素的同辈元素,下面哪一个是可以实现的?答:siblings([expr])下列化合物进行磺化反应最困难的是:答:...
  • 清理journal日志 1)只保留近一周的日志 journalctl --vacuum-time=1w 2)只保留500MB的日志 journalctl --vacuum-size=500M
  • golang:var、new、make区别及使用

    千次阅读 2021-04-18 21:12:48
    先整明白go里面的几大变量“类型”(不...(1)对于值类型的变量,我们通过var 声明(包括结构体),系统会默认为他分配内存空间,并赋该类型的零值。如下,我们声明一个int类型变量i,输出为0。 var i int fmt.Println

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,061,840
精华内容 2,024,736
关键字:

var怎么算